Get rid of the ICOM_CALL macros.
[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 STDMETHODCALLTYPE QueryInterface(
39         REFIID riid,
40         void** ppvObject) = 0;
41
42     virtual ULONG STDMETHODCALLTYPE AddRef(
43         ) = 0;
44
45     virtual ULONG STDMETHODCALLTYPE 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 (STDMETHODCALLTYPE *QueryInterface)(
59         IUnknown* This,
60         REFIID riid,
61         void** ppvObject);
62
63     ULONG (STDMETHODCALLTYPE *AddRef)(
64         IUnknown* This);
65
66     ULONG (STDMETHODCALLTYPE *Release)(
67         IUnknown* This);
68
69 };
70
71 #define IUnknown_IMETHODS \
72     /*** IUnknown methods ***/ \
73     HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
74     ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
75     ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This);
76
77 /*** IUnknown methods ***/
78 #define IUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
79 #define IUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
80 #define IUnknown_Release(p) (p)->lpVtbl->Release(p)
81
82 #endif
83
84 HRESULT CALLBACK IUnknown_QueryInterface_Proxy(
85     IUnknown* This,
86     REFIID riid,
87     void** ppvObject);
88 void __RPC_STUB IUnknown_QueryInterface_Stub(
89     struct IRpcStubBuffer* This,
90     struct IRpcChannelBuffer* pRpcChannelBuffer,
91     PRPC_MESSAGE pRpcMessage,
92     DWORD* pdwStubPhase);
93 ULONG CALLBACK IUnknown_AddRef_Proxy(
94     IUnknown* This);
95 void __RPC_STUB IUnknown_AddRef_Stub(
96     struct IRpcStubBuffer* This,
97     struct IRpcChannelBuffer* pRpcChannelBuffer,
98     PRPC_MESSAGE pRpcMessage,
99     DWORD* pdwStubPhase);
100 ULONG CALLBACK IUnknown_Release_Proxy(
101     IUnknown* This);
102 void __RPC_STUB IUnknown_Release_Stub(
103     struct IRpcStubBuffer* This,
104     struct IRpcChannelBuffer* pRpcChannelBuffer,
105     PRPC_MESSAGE pRpcMessage,
106     DWORD* pdwStubPhase);
107
108 typedef struct IClassFactory IClassFactory;
109 typedef IClassFactory *LPCLASSFACTORY;
110
111 /*****************************************************************************
112  * IClassFactory interface
113  */
114 DEFINE_GUID(IID_IClassFactory, 0x00000001, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
115 #if defined(__cplusplus) && !defined(CINTERFACE)
116 struct IClassFactory: IUnknown {
117
118     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
119         IUnknown* pUnkOuter,
120         REFIID riid,
121         void** ppvObject) = 0;
122
123     virtual HRESULT STDMETHODCALLTYPE LockServer(
124         BOOL fLock) = 0;
125
126 } ICOM_COM_INTERFACE_ATTRIBUTE;
127 #else
128 typedef struct IClassFactoryVtbl IClassFactoryVtbl;
129 struct IClassFactory {
130     const IClassFactoryVtbl* lpVtbl;
131 };
132 struct IClassFactoryVtbl {
133     ICOM_MSVTABLE_COMPAT_FIELDS
134
135     /*** IUnknown methods ***/
136     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
137         IClassFactory* This,
138         REFIID riid,
139         void** ppvObject);
140
141     ULONG (STDMETHODCALLTYPE *AddRef)(
142         IClassFactory* This);
143
144     ULONG (STDMETHODCALLTYPE *Release)(
145         IClassFactory* This);
146
147     /*** IClassFactory methods ***/
148     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
149         IClassFactory* This,
150         IUnknown* pUnkOuter,
151         REFIID riid,
152         void** ppvObject);
153
154     HRESULT (STDMETHODCALLTYPE *LockServer)(
155         IClassFactory* This,
156         BOOL fLock);
157
158 };
159
160 #define IClassFactory_IMETHODS \
161     /*** IUnknown methods ***/ \
162     HRESULT (STDMETHODCALLTYPE *QueryInterface)(INTERFACE *This, REFIID riid, void** ppvObject); \
163     ULONG (STDMETHODCALLTYPE *AddRef)(INTERFACE *This); \
164     ULONG (STDMETHODCALLTYPE *Release)(INTERFACE *This); \
165     /*** IClassFactory methods ***/ \
166     HRESULT (STDMETHODCALLTYPE *CreateInstance)(INTERFACE *This, IUnknown* pUnkOuter, REFIID riid, void** ppvObject); \
167     HRESULT (STDMETHODCALLTYPE *LockServer)(INTERFACE *This, BOOL fLock);
168
169 /*** IUnknown methods ***/
170 #define IClassFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
171 #define IClassFactory_AddRef(p) (p)->lpVtbl->AddRef(p)
172 #define IClassFactory_Release(p) (p)->lpVtbl->Release(p)
173 /*** IClassFactory methods ***/
174 #define IClassFactory_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
175 #define IClassFactory_LockServer(p,a) (p)->lpVtbl->LockServer(p,a)
176
177 #endif
178
179 HRESULT CALLBACK IClassFactory_RemoteCreateInstance_Proxy(
180     IClassFactory* This,
181     REFIID riid,
182     IUnknown** ppvObject);
183 void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub(
184     struct IRpcStubBuffer* This,
185     struct IRpcChannelBuffer* pRpcChannelBuffer,
186     PRPC_MESSAGE pRpcMessage,
187     DWORD* pdwStubPhase);
188 HRESULT CALLBACK IClassFactory_CreateInstance_Proxy(
189     IClassFactory* This,
190     IUnknown* pUnkOuter,
191     REFIID riid,
192     void** ppvObject);
193 HRESULT __RPC_STUB IClassFactory_CreateInstance_Stub(
194     IClassFactory* This,
195     REFIID riid,
196     IUnknown** ppvObject);
197 HRESULT CALLBACK IClassFactory_RemoteLockServer_Proxy(
198     IClassFactory* This,
199     BOOL fLock);
200 void __RPC_STUB IClassFactory_RemoteLockServer_Stub(
201     struct IRpcStubBuffer* This,
202     struct IRpcChannelBuffer* pRpcChannelBuffer,
203     PRPC_MESSAGE pRpcMessage,
204     DWORD* pdwStubPhase);
205 HRESULT CALLBACK IClassFactory_LockServer_Proxy(
206     IClassFactory* This,
207     BOOL fLock);
208 HRESULT __RPC_STUB IClassFactory_LockServer_Stub(
209     IClassFactory* This,
210     BOOL fLock);
211
212 #ifdef __cplusplus
213 }
214 #endif
215 #endif /* __WIDL_UNKNWN_H */