Moved most of the 16-bit task support and NE module loader to
[wine/multimedia.git] / dlls / ole32 / dcom.h
blob45124d3411da73eda24d1baaf739e6451d0d3067
1 /*** Autogenerated by WIDL 0.1 from dcom.idl - Do not edit ***/
2 #include "rpc.h"
3 #include "rpcndr.h"
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;
13 typedef ID MID;
15 typedef ID OXID;
17 typedef ID OID;
19 typedef ID SETID;
21 typedef GUID IPID;
23 typedef GUID CID;
25 typedef REFGUID REFIPID;
27 #define COM_MINOR_VERSION_1 (1)
29 #define COM_MINOR_VERSION_2 (2)
31 #define COM_MAJOR_VERSION (5)
33 #define COM_MINOR_VERSION (3)
35 typedef struct tagCOMVERSION {
36 unsigned short MajorVersion;
37 unsigned short MinorVersion;
38 } COMVERSION;
40 #define ORPCF_NULL (0)
42 #define ORPCF_LOCAL (1)
44 #define ORPCF_RESERVED1 (2)
46 #define ORPCF_RESERVED2 (4)
48 #define ORPCF_RESERVED3 (8)
50 #define ORPCF_RESERVED4 (16)
52 typedef struct tagORPC_EXTENT {
53 GUID id;
54 unsigned long size;
55 byte data[1];
56 } ORPC_EXTENT;
58 typedef struct tagORPC_EXTENT_ARRAY {
59 unsigned long size;
60 unsigned long reserved;
61 ORPC_EXTENT **extent;
62 } ORPC_EXTENT_ARRAY;
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;
72 typedef struct tagORPCTHAT {
73 unsigned long flags;
74 ORPC_EXTENT_ARRAY *extensions;
75 } ORPCTHAT;
77 #define NCADG_IP_UDP (0x8)
79 #define NCACN_IP_TCP (0x7)
81 #define NCADG_IPX (0xe)
83 #define NCACN_SPX (0xc)
85 #define NCACN_NB_NB (0x12)
87 #define NCACN_NB_IPX (0xd)
89 #define NCACN_DNET_NSP (0x4)
91 #define NCACN_HTTP (0x1f)
93 typedef struct tagSTRINGBINDING {
94 unsigned short wTowerId;
95 unsigned short aNetworkAddr[1];
96 } STRINGBINDING;
98 #define COM_C_AUTHZ_NONE (0xffff)
100 typedef struct tagSECURITYBINDING {
101 unsigned short wAuthnSvc;
102 unsigned short wAuthzSvc;
103 unsigned short aPrincName[1];
104 } SECURITYBINDING;
106 typedef struct tagDUALSTRINGARRAY {
107 unsigned short wNumEntries;
108 unsigned short wSecurityOffset;
109 unsigned short aStringArray[1];
110 } DUALSTRINGARRAY;
112 #define OBJREF_SIGNATURE (0x574f454d)
114 #define OBJREF_STANDARD (0x1)
116 #define OBJREF_HANDLER (0x2)
118 #define OBJREF_CUSTOM (0x4)
120 #define SORF_OXRES1 (0x1)
122 #define SORF_OXRES2 (0x20)
124 #define SORF_OXRES3 (0x40)
126 #define SORF_OXRES4 (0x80)
128 #define SORF_OXRES5 (0x100)
130 #define SORF_OXRES6 (0x200)
132 #define SORF_OXRES7 (0x400)
134 #define SORF_OXRES8 (0x800)
136 #define SORF_NULL (0x0)
138 #define SORF_NOPING (0x1000)
140 typedef struct tagSTDOBJREF {
141 unsigned long flags;
142 unsigned long cPublicRefs;
143 OXID oxid;
144 OID oid;
145 IPID ipid;
146 } STDOBJREF;
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;
171 typedef struct tagMInterfacePointer {
172 ULONG ulCntData;
173 BYTE abData[1];
174 } MInterfacePointer;
176 typedef MInterfacePointer *PMInterfacePointer;
178 typedef struct IRemUnknown IRemUnknown;
179 typedef IRemUnknown *LPREMUNKNOWN;
181 typedef struct tagREMQIRESULT {
182 HRESULT hResult;
183 STDOBJREF std;
184 } REMQIRESULT;
186 typedef struct tagREMINTERFACEREF {
187 IPID ipid;
188 unsigned long cPublicRefs;
189 unsigned long cPrivateRefs;
190 } REMINTERFACEREF;
192 /*****************************************************************************
193 * IRemUnknown interface
195 DEFINE_GUID(IID_IRemUnknown, 0x00000131, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
196 #if defined(__cplusplus) && !defined(CINTERFACE)
197 struct IRemUnknown : public IUnknown
199 virtual HRESULT STDMETHODCALLTYPE RemQueryInterface(
200 REFIPID ripid,
201 unsigned long cRefs,
202 unsigned short cIids,
203 IID* iids,
204 REMQIRESULT** ppQIResults) = 0;
206 virtual HRESULT STDMETHODCALLTYPE RemAddRef(
207 unsigned short cInterfaceRefs,
208 REMINTERFACEREF* InterfaceRefs,
209 HRESULT* pResults) = 0;
211 virtual HRESULT STDMETHODCALLTYPE RemRelease(
212 unsigned short cInterfaceRefs,
213 REMINTERFACEREF* InterfaceRefs) = 0;
216 #else
217 typedef struct IRemUnknownVtbl IRemUnknownVtbl;
218 struct IRemUnknown {
219 const IRemUnknownVtbl* lpVtbl;
221 struct IRemUnknownVtbl {
222 ICOM_MSVTABLE_COMPAT_FIELDS
224 /*** IUnknown methods ***/
225 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
226 IRemUnknown* This,
227 REFIID riid,
228 void** ppvObject);
230 ULONG (STDMETHODCALLTYPE *AddRef)(
231 IRemUnknown* This);
233 ULONG (STDMETHODCALLTYPE *Release)(
234 IRemUnknown* This);
236 /*** IRemUnknown methods ***/
237 HRESULT (STDMETHODCALLTYPE *RemQueryInterface)(
238 IRemUnknown* This,
239 REFIPID ripid,
240 unsigned long cRefs,
241 unsigned short cIids,
242 IID* iids,
243 REMQIRESULT** ppQIResults);
245 HRESULT (STDMETHODCALLTYPE *RemAddRef)(
246 IRemUnknown* This,
247 unsigned short cInterfaceRefs,
248 REMINTERFACEREF* InterfaceRefs,
249 HRESULT* pResults);
251 HRESULT (STDMETHODCALLTYPE *RemRelease)(
252 IRemUnknown* This,
253 unsigned short cInterfaceRefs,
254 REMINTERFACEREF* InterfaceRefs);
258 /*** IUnknown methods ***/
259 #define IRemUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
260 #define IRemUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
261 #define IRemUnknown_Release(p) (p)->lpVtbl->Release(p)
262 /*** IRemUnknown methods ***/
263 #define IRemUnknown_RemQueryInterface(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface(p,a,b,c,d,e)
264 #define IRemUnknown_RemAddRef(p,a,b,c) (p)->lpVtbl->RemAddRef(p,a,b,c)
265 #define IRemUnknown_RemRelease(p,a,b) (p)->lpVtbl->RemRelease(p,a,b)
267 #endif
269 #define IRemUnknown_METHODS \
270 ICOM_MSVTABLE_COMPAT_FIELDS \
271 /*** IUnknown methods ***/ \
272 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
273 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
274 STDMETHOD_(ULONG,Release)(THIS) PURE; \
275 /*** IRemUnknown methods ***/ \
276 STDMETHOD_(HRESULT,RemQueryInterface)(THIS_ REFIPID ripid, unsigned long cRefs, unsigned short cIids, IID* iids, REMQIRESULT** ppQIResults) PURE; \
277 STDMETHOD_(HRESULT,RemAddRef)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs, HRESULT* pResults) PURE; \
278 STDMETHOD_(HRESULT,RemRelease)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs) PURE;
280 HRESULT CALLBACK IRemUnknown_RemQueryInterface_Proxy(
281 IRemUnknown* This,
282 REFIPID ripid,
283 unsigned long cRefs,
284 unsigned short cIids,
285 IID* iids,
286 REMQIRESULT** ppQIResults);
287 void __RPC_STUB IRemUnknown_RemQueryInterface_Stub(
288 struct IRpcStubBuffer* This,
289 struct IRpcChannelBuffer* pRpcChannelBuffer,
290 PRPC_MESSAGE pRpcMessage,
291 DWORD* pdwStubPhase);
292 HRESULT CALLBACK IRemUnknown_RemAddRef_Proxy(
293 IRemUnknown* This,
294 unsigned short cInterfaceRefs,
295 REMINTERFACEREF* InterfaceRefs,
296 HRESULT* pResults);
297 void __RPC_STUB IRemUnknown_RemAddRef_Stub(
298 struct IRpcStubBuffer* This,
299 struct IRpcChannelBuffer* pRpcChannelBuffer,
300 PRPC_MESSAGE pRpcMessage,
301 DWORD* pdwStubPhase);
302 HRESULT CALLBACK IRemUnknown_RemRelease_Proxy(
303 IRemUnknown* This,
304 unsigned short cInterfaceRefs,
305 REMINTERFACEREF* InterfaceRefs);
306 void __RPC_STUB IRemUnknown_RemRelease_Stub(
307 struct IRpcStubBuffer* This,
308 struct IRpcChannelBuffer* pRpcChannelBuffer,
309 PRPC_MESSAGE pRpcMessage,
310 DWORD* pdwStubPhase);
312 typedef struct IRemUnknown2 IRemUnknown2;
313 typedef IRemUnknown2 *LPREMUNKNOWN2;
315 /*****************************************************************************
316 * IRemUnknown2 interface
318 DEFINE_GUID(IID_IRemUnknown2, 0x00000142, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
319 #if defined(__cplusplus) && !defined(CINTERFACE)
320 struct IRemUnknown2 : public IRemUnknown
322 virtual HRESULT STDMETHODCALLTYPE RemQueryInterface2(
323 REFIPID ripid,
324 unsigned short cIids,
325 IID* iids,
326 HRESULT* phr,
327 MInterfacePointer** ppMIF) = 0;
330 #else
331 typedef struct IRemUnknown2Vtbl IRemUnknown2Vtbl;
332 struct IRemUnknown2 {
333 const IRemUnknown2Vtbl* lpVtbl;
335 struct IRemUnknown2Vtbl {
336 ICOM_MSVTABLE_COMPAT_FIELDS
338 /*** IUnknown methods ***/
339 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
340 IRemUnknown2* This,
341 REFIID riid,
342 void** ppvObject);
344 ULONG (STDMETHODCALLTYPE *AddRef)(
345 IRemUnknown2* This);
347 ULONG (STDMETHODCALLTYPE *Release)(
348 IRemUnknown2* This);
350 /*** IRemUnknown methods ***/
351 HRESULT (STDMETHODCALLTYPE *RemQueryInterface)(
352 IRemUnknown2* This,
353 REFIPID ripid,
354 unsigned long cRefs,
355 unsigned short cIids,
356 IID* iids,
357 REMQIRESULT** ppQIResults);
359 HRESULT (STDMETHODCALLTYPE *RemAddRef)(
360 IRemUnknown2* This,
361 unsigned short cInterfaceRefs,
362 REMINTERFACEREF* InterfaceRefs,
363 HRESULT* pResults);
365 HRESULT (STDMETHODCALLTYPE *RemRelease)(
366 IRemUnknown2* This,
367 unsigned short cInterfaceRefs,
368 REMINTERFACEREF* InterfaceRefs);
370 /*** IRemUnknown2 methods ***/
371 HRESULT (STDMETHODCALLTYPE *RemQueryInterface2)(
372 IRemUnknown2* This,
373 REFIPID ripid,
374 unsigned short cIids,
375 IID* iids,
376 HRESULT* phr,
377 MInterfacePointer** ppMIF);
381 /*** IUnknown methods ***/
382 #define IRemUnknown2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
383 #define IRemUnknown2_AddRef(p) (p)->lpVtbl->AddRef(p)
384 #define IRemUnknown2_Release(p) (p)->lpVtbl->Release(p)
385 /*** IRemUnknown methods ***/
386 #define IRemUnknown2_RemQueryInterface(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface(p,a,b,c,d,e)
387 #define IRemUnknown2_RemAddRef(p,a,b,c) (p)->lpVtbl->RemAddRef(p,a,b,c)
388 #define IRemUnknown2_RemRelease(p,a,b) (p)->lpVtbl->RemRelease(p,a,b)
389 /*** IRemUnknown2 methods ***/
390 #define IRemUnknown2_RemQueryInterface2(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface2(p,a,b,c,d,e)
392 #endif
394 #define IRemUnknown2_METHODS \
395 ICOM_MSVTABLE_COMPAT_FIELDS \
396 /*** IUnknown methods ***/ \
397 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
398 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
399 STDMETHOD_(ULONG,Release)(THIS) PURE; \
400 /*** IRemUnknown methods ***/ \
401 STDMETHOD_(HRESULT,RemQueryInterface)(THIS_ REFIPID ripid, unsigned long cRefs, unsigned short cIids, IID* iids, REMQIRESULT** ppQIResults) PURE; \
402 STDMETHOD_(HRESULT,RemAddRef)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs, HRESULT* pResults) PURE; \
403 STDMETHOD_(HRESULT,RemRelease)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs) PURE; \
404 /*** IRemUnknown2 methods ***/ \
405 STDMETHOD_(HRESULT,RemQueryInterface2)(THIS_ REFIPID ripid, unsigned short cIids, IID* iids, HRESULT* phr, MInterfacePointer** ppMIF) PURE;
407 HRESULT CALLBACK IRemUnknown2_RemQueryInterface2_Proxy(
408 IRemUnknown2* This,
409 REFIPID ripid,
410 unsigned short cIids,
411 IID* iids,
412 HRESULT* phr,
413 MInterfacePointer** ppMIF);
414 void __RPC_STUB IRemUnknown2_RemQueryInterface2_Stub(
415 struct IRpcStubBuffer* This,
416 struct IRpcChannelBuffer* pRpcChannelBuffer,
417 PRPC_MESSAGE pRpcMessage,
418 DWORD* pdwStubPhase);
420 #if 0
421 /*****************************************************************************
422 * IOXIDResolver interface (v0.0)
424 DEFINE_GUID(IID_IOXIDResolver, 0x99fcfec4, 0x5260, 0x101b, 0xbb,0xcb, 0x00,0xaa,0x00,0x21,0x34,0x7a);
425 extern RPC_IF_HANDLE IOXIDResolver_v0_0_c_ifspec;
426 extern RPC_IF_HANDLE IOXIDResolver_v0_0_s_ifspec;
427 error_status_t ResolveOxid(
428 handle_t hRpc,
429 OXID* pOxid,
430 unsigned short cRequestedProtseqs,
431 unsigned short arRequestedProtseqs[],
432 DUALSTRINGARRAY** ppdsaOxidBindings,
433 IPID* pipidRemUnknown,
434 DWORD* pAuthnHint);
435 error_status_t SimplePing(
436 handle_t hRpc,
437 SETID* pSetId);
438 error_status_t ComplexPing(
439 handle_t hRpc,
440 SETID* pSetId,
441 unsigned short SequenceNum,
442 unsigned short cAddToSet,
443 unsigned short cDelFromSet,
444 OID AddToSet[],
445 OID DelFromSet[],
446 unsigned short* pPingBackoffFactor);
447 error_status_t ServerAlive(
448 handle_t hRpc);
449 error_status_t ResolveOxid2(
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 COMVERSION* pComVersion);
459 #define MODE_GET_CLASS_OBJECT (0x7fffffff)
461 /*****************************************************************************
462 * IRemoteActivation interface (v0.0)
464 DEFINE_GUID(IID_IRemoteActivation, 0x4d9f4ab8, 0x7d1c, 0x11cf, 0x86,0x1e, 0x00,0x20,0xaf,0x6e,0x7c,0x57);
465 extern RPC_IF_HANDLE IRemoteActivation_v0_0_c_ifspec;
466 extern RPC_IF_HANDLE IRemoteActivation_v0_0_s_ifspec;
467 HRESULT RemoteActivation(
468 handle_t hRpc,
469 ORPCTHIS* ORPCthis,
470 ORPCTHAT* ORPCthat,
471 GUID* Clsid,
472 WCHAR* pwszObjectName,
473 MInterfacePointer* pObjectStorage,
474 DWORD ClientImpLevel,
475 DWORD Mode,
476 DWORD Interfaces,
477 IID* pIIDs,
478 unsigned short cRequestedProtseqs,
479 unsigned short RequestedProtseqs[],
480 OXID* pOxid,
481 DUALSTRINGARRAY** ppdsaOxidBindings,
482 IPID* pipidRemUnknown,
483 DWORD* pAuthnHint,
484 COMVERSION* pServerVersion,
485 HRESULT* phr,
486 MInterfacePointer** ppInterfaceData,
487 HRESULT* pResults);
489 #endif
490 #ifdef __cplusplus
492 #endif
493 #endif /* __WIDL_DCOM_H */