- implementation of LdrUnloadDll out of loader/module.c
[wine] / include / unknwn.h
1 /*** Autogenerated by WIDL 0.1 from unknwn.idl - Do not edit ***/
2 #include "rpc.h"
3 #include "rpcndr.h"
4
5 #ifndef __WIDL_UNKNWN_H
6 #define __WIDL_UNKNWN_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include "wtypes.h"
11 #if defined(__cplusplus) && !defined(CINTERFACE)
12  #ifdef ICOM_USE_COM_INTERFACE_ATTRIBUTE
13   #define ICOM_COM_INTERFACE_ATTRIBUTE __attribute__((com_interface))
14  #else
15   #define ICOM_COM_INTERFACE_ATTRIBUTE
16  #endif
17 #else
18  #ifdef ICOM_MSVTABLE_COMPAT
19   #define ICOM_MSVTABLE_COMPAT_FIELDS \
20     long dummyRTTI1; \
21     long dummyRTTI2;
22   #define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE 0,0,
23  #else
24   #define ICOM_MSVTABLE_COMPAT_FIELDS
25   #define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
26  #endif
27 #endif
28 typedef struct IUnknown IUnknown;
29 typedef IUnknown *LPUNKNOWN;
30
31 /*****************************************************************************
32  * IUnknown interface
33  */
34 DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
35 #if defined(__cplusplus) && !defined(CINTERFACE)
36 struct IUnknown {
37
38     virtual HRESULT CALLBACK QueryInterface(
39         REFIID riid,
40         void** ppvObject) = 0;
41
42     virtual ULONG CALLBACK AddRef(
43         ) = 0;
44
45     virtual ULONG CALLBACK Release(
46         ) = 0;
47
48 } ICOM_COM_INTERFACE_ATTRIBUTE;
49 #else
50 typedef struct IUnknownVtbl IUnknownVtbl;
51 struct IUnknown {
52     const IUnknownVtbl* lpVtbl;
53 };
54 struct IUnknownVtbl {
55     ICOM_MSVTABLE_COMPAT_FIELDS
56
57     /*** IUnknown methods ***/
58     HRESULT (CALLBACK *QueryInterface)(
59         IUnknown* This,
60         REFIID riid,
61         void** ppvObject);
62
63     ULONG (CALLBACK *AddRef)(
64         IUnknown* This);
65
66     ULONG (CALLBACK *Release)(
67         IUnknown* This);
68
69 };
70
71 #define IUnknown_IMETHODS \
72     ICOM_METHOD2 (HRESULT,QueryInterface,REFIID,riid,void**,ppvObject) \
73     ICOM_METHOD  (ULONG,AddRef) \
74     ICOM_METHOD  (ULONG,Release)
75
76 /*** IUnknown methods ***/
77 #define IUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
78 #define IUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
79 #define IUnknown_Release(p) (p)->lpVtbl->Release(p)
80
81 #endif
82
83 HRESULT CALLBACK IUnknown_QueryInterface_Proxy(
84     IUnknown* This,
85     REFIID riid,
86     void** ppvObject);
87 void __RPC_STUB IUnknown_QueryInterface_Stub(
88     struct IRpcStubBuffer* This,
89     struct IRpcChannelBuffer* pRpcChannelBuffer,
90     PRPC_MESSAGE pRpcMessage,
91     DWORD* pdwStubPhase);
92 ULONG CALLBACK IUnknown_AddRef_Proxy(
93     IUnknown* This);
94 void __RPC_STUB IUnknown_AddRef_Stub(
95     struct IRpcStubBuffer* This,
96     struct IRpcChannelBuffer* pRpcChannelBuffer,
97     PRPC_MESSAGE pRpcMessage,
98     DWORD* pdwStubPhase);
99 ULONG CALLBACK IUnknown_Release_Proxy(
100     IUnknown* This);
101 void __RPC_STUB IUnknown_Release_Stub(
102     struct IRpcStubBuffer* This,
103     struct IRpcChannelBuffer* pRpcChannelBuffer,
104     PRPC_MESSAGE pRpcMessage,
105     DWORD* pdwStubPhase);
106
107 typedef struct IClassFactory IClassFactory;
108 typedef IClassFactory *LPCLASSFACTORY;
109
110 /*****************************************************************************
111  * IClassFactory interface
112  */
113 DEFINE_GUID(IID_IClassFactory, 0x00000001, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
114 #if defined(__cplusplus) && !defined(CINTERFACE)
115 struct IClassFactory: IUnknown {
116
117     virtual HRESULT CALLBACK CreateInstance(
118         IUnknown* pUnkOuter,
119         REFIID riid,
120         void** ppvObject) = 0;
121
122     virtual HRESULT CALLBACK LockServer(
123         BOOL fLock) = 0;
124
125 } ICOM_COM_INTERFACE_ATTRIBUTE;
126 #else
127 typedef struct IClassFactoryVtbl IClassFactoryVtbl;
128 struct IClassFactory {
129     const IClassFactoryVtbl* lpVtbl;
130 };
131 struct IClassFactoryVtbl {
132     ICOM_MSVTABLE_COMPAT_FIELDS
133
134     /*** IUnknown methods ***/
135     HRESULT (CALLBACK *QueryInterface)(
136         IClassFactory* This,
137         REFIID riid,
138         void** ppvObject);
139
140     ULONG (CALLBACK *AddRef)(
141         IClassFactory* This);
142
143     ULONG (CALLBACK *Release)(
144         IClassFactory* This);
145
146     /*** IClassFactory methods ***/
147     HRESULT (CALLBACK *CreateInstance)(
148         IClassFactory* This,
149         IUnknown* pUnkOuter,
150         REFIID riid,
151         void** ppvObject);
152
153     HRESULT (CALLBACK *LockServer)(
154         IClassFactory* This,
155         BOOL fLock);
156
157 };
158
159 #define IClassFactory_IMETHODS \
160     IUnknown_IMETHODS \
161     ICOM_METHOD3 (HRESULT,CreateInstance,IUnknown*,pUnkOuter,REFIID,riid,void**,ppvObject) \
162     ICOM_METHOD1 (HRESULT,LockServer,BOOL,fLock)
163
164 /*** IUnknown methods ***/
165 #define IClassFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
166 #define IClassFactory_AddRef(p) (p)->lpVtbl->AddRef(p)
167 #define IClassFactory_Release(p) (p)->lpVtbl->Release(p)
168 /*** IClassFactory methods ***/
169 #define IClassFactory_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
170 #define IClassFactory_LockServer(p,a) (p)->lpVtbl->LockServer(p,a)
171
172 #endif
173
174 HRESULT CALLBACK IClassFactory_RemoteCreateInstance_Proxy(
175     IClassFactory* This,
176     REFIID riid,
177     IUnknown** ppvObject);
178 void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub(
179     struct IRpcStubBuffer* This,
180     struct IRpcChannelBuffer* pRpcChannelBuffer,
181     PRPC_MESSAGE pRpcMessage,
182     DWORD* pdwStubPhase);
183 HRESULT CALLBACK IClassFactory_CreateInstance_Proxy(
184     IClassFactory* This,
185     IUnknown* pUnkOuter,
186     REFIID riid,
187     void** ppvObject);
188 HRESULT __RPC_STUB IClassFactory_CreateInstance_Stub(
189     IClassFactory* This,
190     REFIID riid,
191     IUnknown** ppvObject);
192 HRESULT CALLBACK IClassFactory_RemoteLockServer_Proxy(
193     IClassFactory* This,
194     BOOL fLock);
195 void __RPC_STUB IClassFactory_RemoteLockServer_Stub(
196     struct IRpcStubBuffer* This,
197     struct IRpcChannelBuffer* pRpcChannelBuffer,
198     PRPC_MESSAGE pRpcMessage,
199     DWORD* pdwStubPhase);
200 HRESULT CALLBACK IClassFactory_LockServer_Proxy(
201     IClassFactory* This,
202     BOOL fLock);
203 HRESULT __RPC_STUB IClassFactory_LockServer_Stub(
204     IClassFactory* This,
205     BOOL fLock);
206
207 #ifdef __cplusplus
208 }
209 #endif
210 #endif /* __WIDL_UNKNWN_H */