Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/dlls/appxdeploymentclient/private.h
4389 views
1
/* WinRT Windows.Management.Deployment Implementation
2
*
3
* Copyright (C) 2023 Mohamad Al-Jaf
4
*
5
* This library is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU Lesser General Public
7
* License as published by the Free Software Foundation; either
8
* version 2.1 of the License, or (at your option) any later version.
9
*
10
* This library is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
* Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public
16
* License along with this library; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18
*/
19
20
#ifndef __WINE_WINDOWS_MANAGEMENT_DEPLOYMENT_PRIVATE_H
21
#define __WINE_WINDOWS_MANAGEMENT_DEPLOYMENT_PRIVATE_H
22
23
#include <stdarg.h>
24
25
#define COBJMACROS
26
#include "windef.h"
27
#include "winbase.h"
28
#include "winstring.h"
29
30
#include "activation.h"
31
32
#define WIDL_using_Windows_Foundation
33
#define WIDL_using_Windows_Foundation_Collections
34
#include "windows.foundation.h"
35
#define WIDL_using_Windows_Management_Deployment
36
#define WIDL_using_Windows_ApplicationModel
37
#include "windows.management.deployment.h"
38
39
extern IActivationFactory *package_manager_factory;
40
41
#define DEFINE_IINSPECTABLE_( pfx, iface_type, impl_type, impl_from, iface_mem, expr ) \
42
static inline impl_type *impl_from( iface_type *iface ) \
43
{ \
44
return CONTAINING_RECORD( iface, impl_type, iface_mem ); \
45
} \
46
static HRESULT WINAPI pfx##_QueryInterface( iface_type *iface, REFIID iid, void **out ) \
47
{ \
48
impl_type *impl = impl_from( iface ); \
49
return IInspectable_QueryInterface( (IInspectable *)(expr), iid, out ); \
50
} \
51
static ULONG WINAPI pfx##_AddRef( iface_type *iface ) \
52
{ \
53
impl_type *impl = impl_from( iface ); \
54
return IInspectable_AddRef( (IInspectable *)(expr) ); \
55
} \
56
static ULONG WINAPI pfx##_Release( iface_type *iface ) \
57
{ \
58
impl_type *impl = impl_from( iface ); \
59
return IInspectable_Release( (IInspectable *)(expr) ); \
60
} \
61
static HRESULT WINAPI pfx##_GetIids( iface_type *iface, ULONG *iid_count, IID **iids ) \
62
{ \
63
impl_type *impl = impl_from( iface ); \
64
return IInspectable_GetIids( (IInspectable *)(expr), iid_count, iids ); \
65
} \
66
static HRESULT WINAPI pfx##_GetRuntimeClassName( iface_type *iface, HSTRING *class_name ) \
67
{ \
68
impl_type *impl = impl_from( iface ); \
69
return IInspectable_GetRuntimeClassName( (IInspectable *)(expr), class_name ); \
70
} \
71
static HRESULT WINAPI pfx##_GetTrustLevel( iface_type *iface, TrustLevel *trust_level ) \
72
{ \
73
impl_type *impl = impl_from( iface ); \
74
return IInspectable_GetTrustLevel( (IInspectable *)(expr), trust_level ); \
75
}
76
#define DEFINE_IINSPECTABLE( pfx, iface_type, impl_type, base_iface ) \
77
DEFINE_IINSPECTABLE_( pfx, iface_type, impl_type, impl_from_##iface_type, iface_type##_iface, &impl->base_iface )
78
79
#endif
80
81