Get rid of the ICOM_MSVTABLE_COMPAT support, g++ no longer requires
[wine/multimedia.git] / include / unknwn.h
blobf06747b59cbfa03714f1f1bfc59732a05a5b6709
1 /*** Autogenerated by WIDL 0.1 from unknwn.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
5 #ifndef __WIDL_UNKNWN_H
6 #define __WIDL_UNKNWN_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <wtypes.h>
11 #ifndef __IUnknown_FWD_DEFINED__
12 #define __IUnknown_FWD_DEFINED__
13 typedef struct IUnknown IUnknown;
14 #endif
16 typedef IUnknown *LPUNKNOWN;
18 /*****************************************************************************
19 * IUnknown interface
21 #ifndef __IUnknown_INTERFACE_DEFINED__
22 #define __IUnknown_INTERFACE_DEFINED__
24 DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
25 #if defined(__cplusplus) && !defined(CINTERFACE)
26 struct IUnknown
28 BEGIN_INTERFACE
30 virtual HRESULT STDMETHODCALLTYPE QueryInterface(
31 REFIID riid,
32 void** ppvObject) = 0;
34 virtual ULONG STDMETHODCALLTYPE AddRef(
35 ) = 0;
37 virtual ULONG STDMETHODCALLTYPE Release(
38 ) = 0;
40 END_INTERFACE
42 #else
43 typedef struct IUnknownVtbl IUnknownVtbl;
44 struct IUnknown {
45 const IUnknownVtbl* lpVtbl;
47 struct IUnknownVtbl {
48 BEGIN_INTERFACE
50 /*** IUnknown methods ***/
51 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
52 IUnknown* This,
53 REFIID riid,
54 void** ppvObject);
56 ULONG (STDMETHODCALLTYPE *AddRef)(
57 IUnknown* This);
59 ULONG (STDMETHODCALLTYPE *Release)(
60 IUnknown* This);
62 END_INTERFACE
65 #ifdef COBJMACROS
66 /*** IUnknown methods ***/
67 #define IUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
68 #define IUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
69 #define IUnknown_Release(p) (p)->lpVtbl->Release(p)
70 #endif
72 #endif
74 #define IUnknown_METHODS \
75 /*** IUnknown methods ***/ \
76 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
77 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
78 STDMETHOD_(ULONG,Release)(THIS) PURE;
80 HRESULT CALLBACK IUnknown_QueryInterface_Proxy(
81 IUnknown* This,
82 REFIID riid,
83 void** ppvObject);
84 void __RPC_STUB IUnknown_QueryInterface_Stub(
85 struct IRpcStubBuffer* This,
86 struct IRpcChannelBuffer* pRpcChannelBuffer,
87 PRPC_MESSAGE pRpcMessage,
88 DWORD* pdwStubPhase);
89 ULONG CALLBACK IUnknown_AddRef_Proxy(
90 IUnknown* This);
91 void __RPC_STUB IUnknown_AddRef_Stub(
92 struct IRpcStubBuffer* This,
93 struct IRpcChannelBuffer* pRpcChannelBuffer,
94 PRPC_MESSAGE pRpcMessage,
95 DWORD* pdwStubPhase);
96 ULONG CALLBACK IUnknown_Release_Proxy(
97 IUnknown* This);
98 void __RPC_STUB IUnknown_Release_Stub(
99 struct IRpcStubBuffer* This,
100 struct IRpcChannelBuffer* pRpcChannelBuffer,
101 PRPC_MESSAGE pRpcMessage,
102 DWORD* pdwStubPhase);
104 #endif /* __IUnknown_INTERFACE_DEFINED__ */
106 #ifndef __IClassFactory_FWD_DEFINED__
107 #define __IClassFactory_FWD_DEFINED__
108 typedef struct IClassFactory IClassFactory;
109 #endif
111 typedef IClassFactory *LPCLASSFACTORY;
113 /*****************************************************************************
114 * IClassFactory interface
116 #ifndef __IClassFactory_INTERFACE_DEFINED__
117 #define __IClassFactory_INTERFACE_DEFINED__
119 DEFINE_GUID(IID_IClassFactory, 0x00000001, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
120 #if defined(__cplusplus) && !defined(CINTERFACE)
121 struct IClassFactory : public IUnknown
123 virtual HRESULT STDMETHODCALLTYPE CreateInstance(
124 IUnknown* pUnkOuter,
125 REFIID riid,
126 void** ppvObject) = 0;
128 virtual HRESULT STDMETHODCALLTYPE LockServer(
129 BOOL fLock) = 0;
132 #else
133 typedef struct IClassFactoryVtbl IClassFactoryVtbl;
134 struct IClassFactory {
135 const IClassFactoryVtbl* lpVtbl;
137 struct IClassFactoryVtbl {
138 BEGIN_INTERFACE
140 /*** IUnknown methods ***/
141 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
142 IClassFactory* This,
143 REFIID riid,
144 void** ppvObject);
146 ULONG (STDMETHODCALLTYPE *AddRef)(
147 IClassFactory* This);
149 ULONG (STDMETHODCALLTYPE *Release)(
150 IClassFactory* This);
152 /*** IClassFactory methods ***/
153 HRESULT (STDMETHODCALLTYPE *CreateInstance)(
154 IClassFactory* This,
155 IUnknown* pUnkOuter,
156 REFIID riid,
157 void** ppvObject);
159 HRESULT (STDMETHODCALLTYPE *LockServer)(
160 IClassFactory* This,
161 BOOL fLock);
163 END_INTERFACE
166 #ifdef COBJMACROS
167 /*** IUnknown methods ***/
168 #define IClassFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
169 #define IClassFactory_AddRef(p) (p)->lpVtbl->AddRef(p)
170 #define IClassFactory_Release(p) (p)->lpVtbl->Release(p)
171 /*** IClassFactory methods ***/
172 #define IClassFactory_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
173 #define IClassFactory_LockServer(p,a) (p)->lpVtbl->LockServer(p,a)
174 #endif
176 #endif
178 #define IClassFactory_METHODS \
179 /*** IUnknown methods ***/ \
180 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
181 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
182 STDMETHOD_(ULONG,Release)(THIS) PURE; \
183 /*** IClassFactory methods ***/ \
184 STDMETHOD_(HRESULT,CreateInstance)(THIS_ IUnknown* pUnkOuter, REFIID riid, void** ppvObject) PURE; \
185 STDMETHOD_(HRESULT,LockServer)(THIS_ BOOL fLock) PURE;
187 HRESULT CALLBACK IClassFactory_RemoteCreateInstance_Proxy(
188 IClassFactory* This,
189 REFIID riid,
190 IUnknown** ppvObject);
191 void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub(
192 struct IRpcStubBuffer* This,
193 struct IRpcChannelBuffer* pRpcChannelBuffer,
194 PRPC_MESSAGE pRpcMessage,
195 DWORD* pdwStubPhase);
196 HRESULT CALLBACK IClassFactory_CreateInstance_Proxy(
197 IClassFactory* This,
198 IUnknown* pUnkOuter,
199 REFIID riid,
200 void** ppvObject);
201 HRESULT __RPC_STUB IClassFactory_CreateInstance_Stub(
202 IClassFactory* This,
203 REFIID riid,
204 IUnknown** ppvObject);
205 HRESULT CALLBACK IClassFactory_RemoteLockServer_Proxy(
206 IClassFactory* This,
207 BOOL fLock);
208 void __RPC_STUB IClassFactory_RemoteLockServer_Stub(
209 struct IRpcStubBuffer* This,
210 struct IRpcChannelBuffer* pRpcChannelBuffer,
211 PRPC_MESSAGE pRpcMessage,
212 DWORD* pdwStubPhase);
213 HRESULT CALLBACK IClassFactory_LockServer_Proxy(
214 IClassFactory* This,
215 BOOL fLock);
216 HRESULT __RPC_STUB IClassFactory_LockServer_Stub(
217 IClassFactory* This,
218 BOOL fLock);
220 #endif /* __IClassFactory_INTERFACE_DEFINED__ */
222 #ifdef __cplusplus
224 #endif
225 #endif /* __WIDL_UNKNWN_H */