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