move mesa32 over to new dir
[reactos.git] / reactos / dll / ole32 / dcom.h
1 /*** Autogenerated by WIDL 0.1 from dcom.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
4
5 #ifndef __WIDL_DCOM_H
6 #define __WIDL_DCOM_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <unknwn.h>
11 typedef MIDL_uhyper ID;
12
13 typedef ID MID;
14
15 typedef ID OXID;
16
17 typedef ID OID;
18
19 typedef ID SETID;
20
21 typedef GUID IPID;
22
23 typedef GUID CID;
24
25 typedef REFGUID REFIPID;
26
27 #define COM_MINOR_VERSION_1 (1)
28
29 #define COM_MINOR_VERSION_2 (2)
30
31 #define COM_MAJOR_VERSION (5)
32
33 #define COM_MINOR_VERSION (3)
34
35 typedef struct tagCOMVERSION {
36 unsigned short MajorVersion;
37 unsigned short MinorVersion;
38 } COMVERSION;
39
40 #define ORPCF_NULL (0)
41
42 #define ORPCF_LOCAL (1)
43
44 #define ORPCF_RESERVED1 (2)
45
46 #define ORPCF_RESERVED2 (4)
47
48 #define ORPCF_RESERVED3 (8)
49
50 #define ORPCF_RESERVED4 (16)
51
52 typedef struct tagORPC_EXTENT {
53 GUID id;
54 unsigned long size;
55 byte data[1];
56 } ORPC_EXTENT;
57
58 typedef struct tagORPC_EXTENT_ARRAY {
59 unsigned long size;
60 unsigned long reserved;
61 ORPC_EXTENT **extent;
62 } ORPC_EXTENT_ARRAY;
63
64 typedef struct tagORPCTHIS {
65 COMVERSION version;
66 unsigned long flags;
67 unsigned long reserved1;
68 CID cid;
69 ORPC_EXTENT_ARRAY *extensions;
70 } ORPCTHIS;
71
72 typedef struct tagORPCTHAT {
73 unsigned long flags;
74 ORPC_EXTENT_ARRAY *extensions;
75 } ORPCTHAT;
76
77 #define NCADG_IP_UDP (0x8)
78
79 #define NCACN_IP_TCP (0x7)
80
81 #define NCADG_IPX (0xe)
82
83 #define NCACN_SPX (0xc)
84
85 #define NCACN_NB_NB (0x12)
86
87 #define NCACN_NB_IPX (0xd)
88
89 #define NCACN_DNET_NSP (0x4)
90
91 #define NCACN_HTTP (0x1f)
92
93 typedef struct tagSTRINGBINDING {
94 unsigned short wTowerId;
95 unsigned short aNetworkAddr[1];
96 } STRINGBINDING;
97
98 #define COM_C_AUTHZ_NONE (0xffff)
99
100 typedef struct tagSECURITYBINDING {
101 unsigned short wAuthnSvc;
102 unsigned short wAuthzSvc;
103 unsigned short aPrincName[1];
104 } SECURITYBINDING;
105
106 typedef struct tagDUALSTRINGARRAY {
107 unsigned short wNumEntries;
108 unsigned short wSecurityOffset;
109 unsigned short aStringArray[1];
110 } DUALSTRINGARRAY;
111
112 #define OBJREF_SIGNATURE (0x574f454d)
113
114 #define OBJREF_STANDARD (0x1)
115
116 #define OBJREF_HANDLER (0x2)
117
118 #define OBJREF_CUSTOM (0x4)
119
120 #define SORF_OXRES1 (0x1)
121
122 #define SORF_OXRES2 (0x20)
123
124 #define SORF_OXRES3 (0x40)
125
126 #define SORF_OXRES4 (0x80)
127
128 #define SORF_OXRES5 (0x100)
129
130 #define SORF_OXRES6 (0x200)
131
132 #define SORF_OXRES7 (0x400)
133
134 #define SORF_OXRES8 (0x800)
135
136 #define SORF_NULL (0x0)
137
138 #define SORF_NOPING (0x1000)
139
140 typedef struct tagSTDOBJREF {
141 unsigned long flags;
142 unsigned long cPublicRefs;
143 OXID oxid;
144 OID oid;
145 IPID ipid;
146 } STDOBJREF;
147
148 typedef struct tagOBJREF {
149 unsigned long signature;
150 unsigned long flags;
151 GUID iid;
152 union {
153 struct OR_STANDARD {
154 STDOBJREF std;
155 DUALSTRINGARRAY saResAddr;
156 } u_standard;
157 struct OR_HANDLER {
158 STDOBJREF std;
159 CLSID clsid;
160 DUALSTRINGARRAY saResAddr;
161 } u_handler;
162 struct OR_CUSTOM {
163 CLSID clsid;
164 unsigned long cbExtension;
165 unsigned long size;
166 byte *pData;
167 } u_custom;
168 } u_objref;
169 } OBJREF;
170
171 typedef struct tagMInterfacePointer {
172 ULONG ulCntData;
173 BYTE abData[1];
174 } MInterfacePointer;
175
176 typedef MInterfacePointer *PMInterfacePointer;
177
178 #ifndef __IRemUnknown_FWD_DEFINED__
179 #define __IRemUnknown_FWD_DEFINED__
180 typedef struct IRemUnknown IRemUnknown;
181 #endif
182
183 typedef IRemUnknown *LPREMUNKNOWN;
184
185 typedef struct tagREMQIRESULT {
186 HRESULT hResult;
187 STDOBJREF std;
188 } REMQIRESULT;
189
190 typedef struct tagREMINTERFACEREF {
191 IPID ipid;
192 unsigned long cPublicRefs;
193 unsigned long cPrivateRefs;
194 } REMINTERFACEREF;
195
196 /*****************************************************************************
197 * IRemUnknown interface
198 */
199 #ifndef __IRemUnknown_INTERFACE_DEFINED__
200 #define __IRemUnknown_INTERFACE_DEFINED__
201
202 DEFINE_GUID(IID_IRemUnknown, 0x00000131, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
203 #if defined(__cplusplus) && !defined(CINTERFACE)
204 struct IRemUnknown : public IUnknown
205 {
206 virtual HRESULT STDMETHODCALLTYPE RemQueryInterface(
207 REFIPID ripid,
208 unsigned long cRefs,
209 unsigned short cIids,
210 IID* iids,
211 REMQIRESULT** ppQIResults) = 0;
212
213 virtual HRESULT STDMETHODCALLTYPE RemAddRef(
214 unsigned short cInterfaceRefs,
215 REMINTERFACEREF* InterfaceRefs,
216 HRESULT* pResults) = 0;
217
218 virtual HRESULT STDMETHODCALLTYPE RemRelease(
219 unsigned short cInterfaceRefs,
220 REMINTERFACEREF* InterfaceRefs) = 0;
221
222 };
223 #else
224 typedef struct IRemUnknownVtbl IRemUnknownVtbl;
225 struct IRemUnknown {
226 const IRemUnknownVtbl* lpVtbl;
227 };
228 struct IRemUnknownVtbl {
229 BEGIN_INTERFACE
230
231 /*** IUnknown methods ***/
232 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
233 IRemUnknown* This,
234 REFIID riid,
235 void** ppvObject);
236
237 ULONG (STDMETHODCALLTYPE *AddRef)(
238 IRemUnknown* This);
239
240 ULONG (STDMETHODCALLTYPE *Release)(
241 IRemUnknown* This);
242
243 /*** IRemUnknown methods ***/
244 HRESULT (STDMETHODCALLTYPE *RemQueryInterface)(
245 IRemUnknown* This,
246 REFIPID ripid,
247 unsigned long cRefs,
248 unsigned short cIids,
249 IID* iids,
250 REMQIRESULT** ppQIResults);
251
252 HRESULT (STDMETHODCALLTYPE *RemAddRef)(
253 IRemUnknown* This,
254 unsigned short cInterfaceRefs,
255 REMINTERFACEREF* InterfaceRefs,
256 HRESULT* pResults);
257
258 HRESULT (STDMETHODCALLTYPE *RemRelease)(
259 IRemUnknown* This,
260 unsigned short cInterfaceRefs,
261 REMINTERFACEREF* InterfaceRefs);
262
263 END_INTERFACE
264 };
265
266 #ifdef COBJMACROS
267 /*** IUnknown methods ***/
268 #define IRemUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
269 #define IRemUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
270 #define IRemUnknown_Release(p) (p)->lpVtbl->Release(p)
271 /*** IRemUnknown methods ***/
272 #define IRemUnknown_RemQueryInterface(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface(p,a,b,c,d,e)
273 #define IRemUnknown_RemAddRef(p,a,b,c) (p)->lpVtbl->RemAddRef(p,a,b,c)
274 #define IRemUnknown_RemRelease(p,a,b) (p)->lpVtbl->RemRelease(p,a,b)
275 #endif
276
277 #endif
278
279 #define IRemUnknown_METHODS \
280 /*** IUnknown methods ***/ \
281 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
282 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
283 STDMETHOD_(ULONG,Release)(THIS) PURE; \
284 /*** IRemUnknown methods ***/ \
285 STDMETHOD_(HRESULT,RemQueryInterface)(THIS_ REFIPID ripid, unsigned long cRefs, unsigned short cIids, IID* iids, REMQIRESULT** ppQIResults) PURE; \
286 STDMETHOD_(HRESULT,RemAddRef)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs, HRESULT* pResults) PURE; \
287 STDMETHOD_(HRESULT,RemRelease)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs) PURE;
288
289 HRESULT CALLBACK IRemUnknown_RemQueryInterface_Proxy(
290 IRemUnknown* This,
291 REFIPID ripid,
292 unsigned long cRefs,
293 unsigned short cIids,
294 IID* iids,
295 REMQIRESULT** ppQIResults);
296 void __RPC_STUB IRemUnknown_RemQueryInterface_Stub(
297 struct IRpcStubBuffer* This,
298 struct IRpcChannelBuffer* pRpcChannelBuffer,
299 PRPC_MESSAGE pRpcMessage,
300 DWORD* pdwStubPhase);
301 HRESULT CALLBACK IRemUnknown_RemAddRef_Proxy(
302 IRemUnknown* This,
303 unsigned short cInterfaceRefs,
304 REMINTERFACEREF* InterfaceRefs,
305 HRESULT* pResults);
306 void __RPC_STUB IRemUnknown_RemAddRef_Stub(
307 struct IRpcStubBuffer* This,
308 struct IRpcChannelBuffer* pRpcChannelBuffer,
309 PRPC_MESSAGE pRpcMessage,
310 DWORD* pdwStubPhase);
311 HRESULT CALLBACK IRemUnknown_RemRelease_Proxy(
312 IRemUnknown* This,
313 unsigned short cInterfaceRefs,
314 REMINTERFACEREF* InterfaceRefs);
315 void __RPC_STUB IRemUnknown_RemRelease_Stub(
316 struct IRpcStubBuffer* This,
317 struct IRpcChannelBuffer* pRpcChannelBuffer,
318 PRPC_MESSAGE pRpcMessage,
319 DWORD* pdwStubPhase);
320
321 #endif /* __IRemUnknown_INTERFACE_DEFINED__ */
322
323 #ifndef __IRemUnknown2_FWD_DEFINED__
324 #define __IRemUnknown2_FWD_DEFINED__
325 typedef struct IRemUnknown2 IRemUnknown2;
326 #endif
327
328 typedef IRemUnknown2 *LPREMUNKNOWN2;
329
330 /*****************************************************************************
331 * IRemUnknown2 interface
332 */
333 #ifndef __IRemUnknown2_INTERFACE_DEFINED__
334 #define __IRemUnknown2_INTERFACE_DEFINED__
335
336 DEFINE_GUID(IID_IRemUnknown2, 0x00000142, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
337 #if defined(__cplusplus) && !defined(CINTERFACE)
338 struct IRemUnknown2 : public IRemUnknown
339 {
340 virtual HRESULT STDMETHODCALLTYPE RemQueryInterface2(
341 REFIPID ripid,
342 unsigned short cIids,
343 IID* iids,
344 HRESULT* phr,
345 MInterfacePointer** ppMIF) = 0;
346
347 };
348 #else
349 typedef struct IRemUnknown2Vtbl IRemUnknown2Vtbl;
350 struct IRemUnknown2 {
351 const IRemUnknown2Vtbl* lpVtbl;
352 };
353 struct IRemUnknown2Vtbl {
354 BEGIN_INTERFACE
355
356 /*** IUnknown methods ***/
357 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
358 IRemUnknown2* This,
359 REFIID riid,
360 void** ppvObject);
361
362 ULONG (STDMETHODCALLTYPE *AddRef)(
363 IRemUnknown2* This);
364
365 ULONG (STDMETHODCALLTYPE *Release)(
366 IRemUnknown2* This);
367
368 /*** IRemUnknown methods ***/
369 HRESULT (STDMETHODCALLTYPE *RemQueryInterface)(
370 IRemUnknown2* This,
371 REFIPID ripid,
372 unsigned long cRefs,
373 unsigned short cIids,
374 IID* iids,
375 REMQIRESULT** ppQIResults);
376
377 HRESULT (STDMETHODCALLTYPE *RemAddRef)(
378 IRemUnknown2* This,
379 unsigned short cInterfaceRefs,
380 REMINTERFACEREF* InterfaceRefs,
381 HRESULT* pResults);
382
383 HRESULT (STDMETHODCALLTYPE *RemRelease)(
384 IRemUnknown2* This,
385 unsigned short cInterfaceRefs,
386 REMINTERFACEREF* InterfaceRefs);
387
388 /*** IRemUnknown2 methods ***/
389 HRESULT (STDMETHODCALLTYPE *RemQueryInterface2)(
390 IRemUnknown2* This,
391 REFIPID ripid,
392 unsigned short cIids,
393 IID* iids,
394 HRESULT* phr,
395 MInterfacePointer** ppMIF);
396
397 END_INTERFACE
398 };
399
400 #ifdef COBJMACROS
401 /*** IUnknown methods ***/
402 #define IRemUnknown2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
403 #define IRemUnknown2_AddRef(p) (p)->lpVtbl->AddRef(p)
404 #define IRemUnknown2_Release(p) (p)->lpVtbl->Release(p)
405 /*** IRemUnknown methods ***/
406 #define IRemUnknown2_RemQueryInterface(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface(p,a,b,c,d,e)
407 #define IRemUnknown2_RemAddRef(p,a,b,c) (p)->lpVtbl->RemAddRef(p,a,b,c)
408 #define IRemUnknown2_RemRelease(p,a,b) (p)->lpVtbl->RemRelease(p,a,b)
409 /*** IRemUnknown2 methods ***/
410 #define IRemUnknown2_RemQueryInterface2(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface2(p,a,b,c,d,e)
411 #endif
412
413 #endif
414
415 #define IRemUnknown2_METHODS \
416 /*** IUnknown methods ***/ \
417 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
418 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
419 STDMETHOD_(ULONG,Release)(THIS) PURE; \
420 /*** IRemUnknown methods ***/ \
421 STDMETHOD_(HRESULT,RemQueryInterface)(THIS_ REFIPID ripid, unsigned long cRefs, unsigned short cIids, IID* iids, REMQIRESULT** ppQIResults) PURE; \
422 STDMETHOD_(HRESULT,RemAddRef)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs, HRESULT* pResults) PURE; \
423 STDMETHOD_(HRESULT,RemRelease)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs) PURE; \
424 /*** IRemUnknown2 methods ***/ \
425 STDMETHOD_(HRESULT,RemQueryInterface2)(THIS_ REFIPID ripid, unsigned short cIids, IID* iids, HRESULT* phr, MInterfacePointer** ppMIF) PURE;
426
427 HRESULT CALLBACK IRemUnknown2_RemQueryInterface2_Proxy(
428 IRemUnknown2* This,
429 REFIPID ripid,
430 unsigned short cIids,
431 IID* iids,
432 HRESULT* phr,
433 MInterfacePointer** ppMIF);
434 void __RPC_STUB IRemUnknown2_RemQueryInterface2_Stub(
435 struct IRpcStubBuffer* This,
436 struct IRpcChannelBuffer* pRpcChannelBuffer,
437 PRPC_MESSAGE pRpcMessage,
438 DWORD* pdwStubPhase);
439
440 #endif /* __IRemUnknown2_INTERFACE_DEFINED__ */
441
442 #if 0
443 /*****************************************************************************
444 * IOXIDResolver interface (v0.0)
445 */
446 DEFINE_GUID(IID_IOXIDResolver, 0x99fcfec4, 0x5260, 0x101b, 0xbb,0xcb, 0x00,0xaa,0x00,0x21,0x34,0x7a);
447 extern RPC_IF_HANDLE IOXIDResolver_v0_0_c_ifspec;
448 extern RPC_IF_HANDLE IOXIDResolver_v0_0_s_ifspec;
449 error_status_t ResolveOxid(
450 handle_t hRpc,
451 OXID* pOxid,
452 unsigned short cRequestedProtseqs,
453 unsigned short arRequestedProtseqs[],
454 DUALSTRINGARRAY** ppdsaOxidBindings,
455 IPID* pipidRemUnknown,
456 DWORD* pAuthnHint);
457 error_status_t SimplePing(
458 handle_t hRpc,
459 SETID* pSetId);
460 error_status_t ComplexPing(
461 handle_t hRpc,
462 SETID* pSetId,
463 unsigned short SequenceNum,
464 unsigned short cAddToSet,
465 unsigned short cDelFromSet,
466 OID AddToSet[],
467 OID DelFromSet[],
468 unsigned short* pPingBackoffFactor);
469 error_status_t ServerAlive(
470 handle_t hRpc);
471 error_status_t ResolveOxid2(
472 handle_t hRpc,
473 OXID* pOxid,
474 unsigned short cRequestedProtseqs,
475 unsigned short arRequestedProtseqs[],
476 DUALSTRINGARRAY** ppdsaOxidBindings,
477 IPID* pipidRemUnknown,
478 DWORD* pAuthnHint,
479 COMVERSION* pComVersion);
480
481 #define MODE_GET_CLASS_OBJECT (0xffffffff)
482
483 /*****************************************************************************
484 * IRemoteActivation interface (v0.0)
485 */
486 DEFINE_GUID(IID_IRemoteActivation, 0x4d9f4ab8, 0x7d1c, 0x11cf, 0x86,0x1e, 0x00,0x20,0xaf,0x6e,0x7c,0x57);
487 extern RPC_IF_HANDLE IRemoteActivation_v0_0_c_ifspec;
488 extern RPC_IF_HANDLE IRemoteActivation_v0_0_s_ifspec;
489 HRESULT RemoteActivation(
490 handle_t hRpc,
491 ORPCTHIS* ORPCthis,
492 ORPCTHAT* ORPCthat,
493 GUID* Clsid,
494 WCHAR* pwszObjectName,
495 MInterfacePointer* pObjectStorage,
496 DWORD ClientImpLevel,
497 DWORD Mode,
498 DWORD Interfaces,
499 IID* pIIDs,
500 unsigned short cRequestedProtseqs,
501 unsigned short RequestedProtseqs[],
502 OXID* pOxid,
503 DUALSTRINGARRAY** ppdsaOxidBindings,
504 IPID* pipidRemUnknown,
505 DWORD* pAuthnHint,
506 COMVERSION* pServerVersion,
507 HRESULT* phr,
508 MInterfacePointer** ppInterfaceData,
509 HRESULT* pResults);
510
511 #endif
512 #ifdef __cplusplus
513 }
514 #endif
515 #endif /* __WIDL_DCOM_H */