1 /*** Autogenerated by WIDL 6.4 from include/inspectable.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __inspectable_h__
17 #define __inspectable_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __IInspectable_FWD_DEFINED__
22 #define __IInspectable_FWD_DEFINED__
23 typedef interface IInspectable IInspectable;
24 #ifdef __cplusplus
25 interface IInspectable;
26 #endif /* __cplusplus */
27 #endif
28 
29 /* Headers for imported files */
30 
31 #include <wtypes.h>
32 #include <hstring.h>
33 #include <unknwn.h>
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 typedef enum TrustLevel {
40     BaseTrust = 0,
41     PartialTrust = 1,
42     FullTrust = 2
43 } TrustLevel;
44 /*****************************************************************************
45  * IInspectable interface
46  */
47 #ifndef __IInspectable_INTERFACE_DEFINED__
48 #define __IInspectable_INTERFACE_DEFINED__
49 
50 DEFINE_GUID(IID_IInspectable, 0xaf86e2e0, 0xb12d, 0x4c6a, 0x9c,0x5a, 0xd7,0xaa,0x65,0x10,0x1e,0x90);
51 #if defined(__cplusplus) && !defined(CINTERFACE)
52 MIDL_INTERFACE("af86e2e0-b12d-4c6a-9c5a-d7aa65101e90")
53 IInspectable : public IUnknown
54 {
55     virtual HRESULT STDMETHODCALLTYPE GetIids(
56         ULONG *iidCount,
57         IID **iids) = 0;
58 
59     virtual HRESULT STDMETHODCALLTYPE GetRuntimeClassName(
60         HSTRING *className) = 0;
61 
62     virtual HRESULT STDMETHODCALLTYPE GetTrustLevel(
63         TrustLevel *trustLevel) = 0;
64 
65 };
66 #ifdef __CRT_UUID_DECL
67 __CRT_UUID_DECL(IInspectable, 0xaf86e2e0, 0xb12d, 0x4c6a, 0x9c,0x5a, 0xd7,0xaa,0x65,0x10,0x1e,0x90)
68 #endif
69 #else
70 typedef struct IInspectableVtbl {
71     BEGIN_INTERFACE
72 
73     /*** IUnknown methods ***/
74     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
75         IInspectable *This,
76         REFIID riid,
77         void **ppvObject);
78 
79     ULONG (STDMETHODCALLTYPE *AddRef)(
80         IInspectable *This);
81 
82     ULONG (STDMETHODCALLTYPE *Release)(
83         IInspectable *This);
84 
85     /*** IInspectable methods ***/
86     HRESULT (STDMETHODCALLTYPE *GetIids)(
87         IInspectable *This,
88         ULONG *iidCount,
89         IID **iids);
90 
91     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
92         IInspectable *This,
93         HSTRING *className);
94 
95     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
96         IInspectable *This,
97         TrustLevel *trustLevel);
98 
99     END_INTERFACE
100 } IInspectableVtbl;
101 
102 interface IInspectable {
103     CONST_VTBL IInspectableVtbl* lpVtbl;
104 };
105 
106 #ifdef COBJMACROS
107 #ifndef WIDL_C_INLINE_WRAPPERS
108 /*** IUnknown methods ***/
109 #define IInspectable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
110 #define IInspectable_AddRef(This) (This)->lpVtbl->AddRef(This)
111 #define IInspectable_Release(This) (This)->lpVtbl->Release(This)
112 /*** IInspectable methods ***/
113 #define IInspectable_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
114 #define IInspectable_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
115 #define IInspectable_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
116 #else
117 /*** IUnknown methods ***/
118 static FORCEINLINE HRESULT IInspectable_QueryInterface(IInspectable* This,REFIID riid,void **ppvObject) {
119     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
120 }
121 static FORCEINLINE ULONG IInspectable_AddRef(IInspectable* This) {
122     return This->lpVtbl->AddRef(This);
123 }
124 static FORCEINLINE ULONG IInspectable_Release(IInspectable* This) {
125     return This->lpVtbl->Release(This);
126 }
127 /*** IInspectable methods ***/
128 static FORCEINLINE HRESULT IInspectable_GetIids(IInspectable* This,ULONG *iidCount,IID **iids) {
129     return This->lpVtbl->GetIids(This,iidCount,iids);
130 }
131 static FORCEINLINE HRESULT IInspectable_GetRuntimeClassName(IInspectable* This,HSTRING *className) {
132     return This->lpVtbl->GetRuntimeClassName(This,className);
133 }
134 static FORCEINLINE HRESULT IInspectable_GetTrustLevel(IInspectable* This,TrustLevel *trustLevel) {
135     return This->lpVtbl->GetTrustLevel(This,trustLevel);
136 }
137 #endif
138 #endif
139 
140 #endif
141 
142 
143 #endif  /* __IInspectable_INTERFACE_DEFINED__ */
144 
145 
146 #if !defined (CINTERFACE) && defined (__cplusplus)
147 extern "C++" {
IID_INS_ARGS_internal(T ** p)148   template<typename T> void **IID_INS_ARGS_internal (T **p) {
149     static_cast<IInspectable *> (*p);
150     return reinterpret_cast<void **> (p);
151   }
152 }
153 
154 #define IID_INS_ARGS(P) __uuidof(**(P)), IID_INS_ARGS_internal(P)
155 #endif
156 /* Begin additional prototypes for all interfaces */
157 
158 ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
159 unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
160 unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
161 void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);
162 
163 /* End additional prototypes */
164 
165 #ifdef __cplusplus
166 }
167 #endif
168 
169 #endif /* __inspectable_h__ */
170