All filenames containing a ":" are invalid on Win9x and 2000 but are
[wine.git] / include / unknwn.h
blobc9296bd9bd1a17475ff03943ad3a18a3cce3e838
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 #define __WINE_INCLUDE_UNKNWN
12 #include "wine/obj_base.h"
13 #undef __WINE_INCLUDE_UNKNWN
14 #if defined(__cplusplus) && !defined(CINTERFACE)
15 #ifdef ICOM_USE_COM_INTERFACE_ATTRIBUTE
16 #define ICOM_COM_INTERFACE_ATTRIBUTE __attribute__((com_interface))
17 #else
18 #define ICOM_COM_INTERFACE_ATTRIBUTE
19 #endif
20 #else
21 #ifdef ICOM_MSVTABLE_COMPAT
22 #define ICOM_MSVTABLE_COMPAT_FIELDS \
23 long dummyRTTI1; \
24 long dummyRTTI2;
25 #define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE 0,0,
26 #else
27 #define ICOM_MSVTABLE_COMPAT_FIELDS
28 #define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
29 #endif
30 #endif
31 typedef struct IUnknown IUnknown;
32 typedef IUnknown *LPUNKNOWN;
34 /*****************************************************************************
35 * IUnknown interface
37 DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
38 #if defined(__cplusplus) && !defined(CINTERFACE)
39 struct IUnknown {
41 virtual HRESULT CALLBACK QueryInterface(
42 REFIID riid,
43 void** ppvObject) = 0;
45 virtual ULONG CALLBACK AddRef(
46 ) = 0;
48 virtual ULONG CALLBACK Release(
49 ) = 0;
51 } ICOM_COM_INTERFACE_ATTRIBUTE;
52 #else
53 typedef struct IUnknownVtbl IUnknownVtbl;
54 struct IUnknown {
55 const IUnknownVtbl* lpVtbl;
57 struct IUnknownVtbl {
58 ICOM_MSVTABLE_COMPAT_FIELDS
60 /*** IUnknown methods ***/
61 HRESULT (CALLBACK *QueryInterface)(
62 IUnknown* This,
63 REFIID riid,
64 void** ppvObject);
66 ULONG (CALLBACK *AddRef)(
67 IUnknown* This);
69 ULONG (CALLBACK *Release)(
70 IUnknown* This);
74 #define IUnknown_IMETHODS \
75 ICOM_METHOD2 (HRESULT,QueryInterface,REFIID,riid,void**,ppvObject) \
76 ICOM_METHOD (ULONG,AddRef) \
77 ICOM_METHOD (ULONG,Release)
79 /*** IUnknown methods ***/
80 #define IUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
81 #define IUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
82 #define IUnknown_Release(p) (p)->lpVtbl->Release(p)
84 #endif
86 HRESULT CALLBACK IUnknown_QueryInterface_Proxy(
87 IUnknown* This,
88 REFIID riid,
89 void** ppvObject);
90 void __RPC_STUB IUnknown_QueryInterface_Stub(
91 struct IRpcStubBuffer* This,
92 struct IRpcChannelBuffer* pRpcChannelBuffer,
93 PRPC_MESSAGE pRpcMessage,
94 DWORD* pdwStubPhase);
95 ULONG CALLBACK IUnknown_AddRef_Proxy(
96 IUnknown* This);
97 void __RPC_STUB IUnknown_AddRef_Stub(
98 struct IRpcStubBuffer* This,
99 struct IRpcChannelBuffer* pRpcChannelBuffer,
100 PRPC_MESSAGE pRpcMessage,
101 DWORD* pdwStubPhase);
102 ULONG CALLBACK IUnknown_Release_Proxy(
103 IUnknown* This);
104 void __RPC_STUB IUnknown_Release_Stub(
105 struct IRpcStubBuffer* This,
106 struct IRpcChannelBuffer* pRpcChannelBuffer,
107 PRPC_MESSAGE pRpcMessage,
108 DWORD* pdwStubPhase);
110 typedef struct IClassFactory IClassFactory;
111 typedef IClassFactory *LPCLASSFACTORY;
113 /*****************************************************************************
114 * IClassFactory interface
116 DEFINE_GUID(IID_IClassFactory, 0x00000001, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
117 #if defined(__cplusplus) && !defined(CINTERFACE)
118 struct IClassFactory: IUnknown {
120 virtual HRESULT CALLBACK CreateInstance(
121 IUnknown* pUnkOuter,
122 REFIID riid,
123 void** ppvObject) = 0;
125 virtual HRESULT CALLBACK LockServer(
126 BOOL fLock) = 0;
128 } ICOM_COM_INTERFACE_ATTRIBUTE;
129 #else
130 typedef struct IClassFactoryVtbl IClassFactoryVtbl;
131 struct IClassFactory {
132 const IClassFactoryVtbl* lpVtbl;
134 struct IClassFactoryVtbl {
135 ICOM_MSVTABLE_COMPAT_FIELDS
137 /*** IUnknown methods ***/
138 HRESULT (CALLBACK *QueryInterface)(
139 IClassFactory* This,
140 REFIID riid,
141 void** ppvObject);
143 ULONG (CALLBACK *AddRef)(
144 IClassFactory* This);
146 ULONG (CALLBACK *Release)(
147 IClassFactory* This);
149 /*** IClassFactory methods ***/
150 HRESULT (CALLBACK *CreateInstance)(
151 IClassFactory* This,
152 IUnknown* pUnkOuter,
153 REFIID riid,
154 void** ppvObject);
156 HRESULT (CALLBACK *LockServer)(
157 IClassFactory* This,
158 BOOL fLock);
162 #define IClassFactory_IMETHODS \
163 IUnknown_IMETHODS \
164 ICOM_METHOD3 (HRESULT,CreateInstance,IUnknown*,pUnkOuter,REFIID,riid,void**,ppvObject) \
165 ICOM_METHOD1 (HRESULT,LockServer,BOOL,fLock)
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)
175 #endif
177 HRESULT CALLBACK IClassFactory_RemoteCreateInstance_Proxy(
178 IClassFactory* This,
179 REFIID riid,
180 IUnknown** ppvObject);
181 void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub(
182 struct IRpcStubBuffer* This,
183 struct IRpcChannelBuffer* pRpcChannelBuffer,
184 PRPC_MESSAGE pRpcMessage,
185 DWORD* pdwStubPhase);
186 HRESULT CALLBACK IClassFactory_CreateInstance_Proxy(
187 IClassFactory* This,
188 IUnknown* pUnkOuter,
189 REFIID riid,
190 void** ppvObject);
191 HRESULT __RPC_STUB IClassFactory_CreateInstance_Stub(
192 IClassFactory* This,
193 REFIID riid,
194 IUnknown** ppvObject);
195 HRESULT CALLBACK IClassFactory_RemoteLockServer_Proxy(
196 IClassFactory* This,
197 BOOL fLock);
198 void __RPC_STUB IClassFactory_RemoteLockServer_Stub(
199 struct IRpcStubBuffer* This,
200 struct IRpcChannelBuffer* pRpcChannelBuffer,
201 PRPC_MESSAGE pRpcMessage,
202 DWORD* pdwStubPhase);
203 HRESULT CALLBACK IClassFactory_LockServer_Proxy(
204 IClassFactory* This,
205 BOOL fLock);
206 HRESULT __RPC_STUB IClassFactory_LockServer_Stub(
207 IClassFactory* This,
208 BOOL fLock);
210 #ifdef __cplusplus
212 #endif
213 #endif /* __WIDL_UNKNWN_H */