dcom.idl

Ove Kaaven ovek at arcticnet.no
Wed May 21 16:47:59 CDT 2003


Here's the dcom.idl and generated .h I've used for my interapartment COM
marshalling stuff, to be placed in dlls/ole32. It's obviously needed by
all the rest of my stuff, so I'll let this get installed first, with
whatever makefile rules are desired.

Log:
Ove Kaaven <ovek at transgaming.com>
DCOM IDL file based on the DCOM specification.

--- /dev/null	2003-01-10 01:23:22.000000000 +0100
+++ dlls/ole32/dcom.idl	2002-12-06 11:46:56.000000000 +0100
@@ -0,0 +1,274 @@
+/* see http://www.microsoft.com/msj/0398/dcom.htm */
+/* and the official DCOM specification
+ * (there's a copy at http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm) */
+
+import "unknwn.idl";
+
+[
+  uuid(99fcfe60-5260-101b-bbcb-00aa0021347a),
+  pointer_default(unique)
+]
+interface ObjectRpcBaseTypes
+{
+  typedef unsigned hyper ID;
+  typedef ID MID;
+  typedef ID OXID;
+  typedef ID OID;
+  typedef ID SETID;
+  typedef GUID IPID;
+  typedef GUID CID;
+  typedef REFGUID REFIPID;
+
+  const unsigned short COM_MINOR_VERSION_1 = 1;
+  const unsigned short COM_MINOR_VERSION_2 = 2;
+
+  const unsigned short COM_MAJOR_VERSION = 5;
+  const unsigned short COM_MINOR_VERSION = 3;
+
+  typedef struct tagCOMVERSION {
+    unsigned short MajorVersion;
+    unsigned short MinorVersion;
+  } COMVERSION;
+
+  const unsigned long ORPCF_NULL = 0;
+  const unsigned long ORPCF_LOCAL = 1;
+  const unsigned long ORPCF_RESERVED1 = 2;
+  const unsigned long ORPCF_RESERVED2 = 4;
+  const unsigned long ORPCF_RESERVED3 = 8;
+  const unsigned long ORPCF_RESERVED4 = 16;
+
+  typedef struct tagORPC_EXTENT {
+    GUID id;
+    unsigned long size;
+    [size_is((size+7)&~7)] byte data[];
+  } ORPC_EXTENT;
+
+  typedef struct tagORPC_EXTENT_ARRAY {
+    unsigned long size;
+    unsigned long reserved;
+    [size_is((size+1)&~1,), unique] ORPC_EXTENT **extent;
+  } ORPC_EXTENT_ARRAY;
+
+  typedef struct tagORPCTHIS {
+    COMVERSION version;
+    unsigned long flags;
+    unsigned long reserved1;
+    CID cid;
+    [unique] ORPC_EXTENT_ARRAY *extensions;
+  } ORPCTHIS;
+
+  typedef struct tagORPCTHAT {
+    unsigned long flags;
+    [unique] ORPC_EXTENT_ARRAY *extensions;
+  } ORPCTHAT;
+
+  const unsigned short NCADG_IP_UDP = 0x08;
+  const unsigned short NCACN_IP_TCP = 0x07;
+  const unsigned short NCADG_IPX = 0x0E;
+  const unsigned short NCACN_SPX = 0x0C;
+  const unsigned short NCACN_NB_NB = 0x12;
+  const unsigned short NCACN_NB_IPX = 0x0D;
+  const unsigned short NCACN_DNET_NSP = 0x04;
+  const unsigned short NCACN_HTTP = 0x1F;
+
+  typedef struct tagSTRINGBINDING {
+    unsigned short wTowerId;
+    [string] unsigned short aNetworkAddr[];
+  } STRINGBINDING;
+
+  const unsigned short COM_C_AUTHZ_NONE = 0xffff;
+
+  typedef struct tagSECURITYBINDING {
+    unsigned short wAuthnSvc;
+    unsigned short wAuthzSvc;
+    [string] unsigned short aPrincName[];
+  } SECURITYBINDING;
+
+  typedef struct tagDUALSTRINGARRAY {
+    unsigned short wNumEntries;
+    unsigned short wSecurityOffset;
+    [size_is(wNumEntries)] unsigned short aStringArray[];
+  } DUALSTRINGARRAY;
+
+  const unsigned long OBJREF_SIGNATURE = 0x574f454d; /* "MEOW" */
+  const unsigned long OBJREF_STANDARD = 0x1;
+  const unsigned long OBJREF_HANDLER = 0x2;
+  const unsigned long OBJREF_CUSTOM = 0x4;
+  const unsigned long SORF_OXRES1 = 0x1;
+  const unsigned long SORF_OXRES2 = 0x20;
+  const unsigned long SORF_OXRES3 = 0x40;
+  const unsigned long SORF_OXRES4 = 0x80;
+  const unsigned long SORF_OXRES5 = 0x100;
+  const unsigned long SORF_OXRES6 = 0x200;
+  const unsigned long SORF_OXRES7 = 0x400;
+  const unsigned long SORF_OXRES8 = 0x800;
+  const unsigned long SORF_NULL = 0x0;
+  const unsigned long SORF_NOPING = 0x1000;
+
+  typedef struct tagSTDOBJREF {
+    unsigned long flags;
+    unsigned long cPublicRefs;
+    OXID oxid;
+    OID oid;
+    IPID ipid;
+  } STDOBJREF;
+
+  typedef struct tagOBJREF {
+    unsigned long signature;
+    unsigned long flags;
+    GUID iid;
+    [switch_is(flags)] union {
+    [case(OBJREF_STANDARD)] struct OR_STANDARD {
+        STDOBJREF std;
+        DUALSTRINGARRAY saResAddr;
+      } u_standard;
+    [case(OBJREF_HANDLER)] struct OR_HANDLER {
+        STDOBJREF std;
+        CLSID clsid;
+        DUALSTRINGARRAY saResAddr;
+      } u_handler;
+    [case(OBJREF_CUSTOM)] struct OR_CUSTOM {
+        CLSID clsid;
+        unsigned long cbExtension;
+        unsigned long size;
+        [size_is(size), ref] byte *pData;
+      } u_custom;
+    } u_objref;
+  } OBJREF;
+
+  typedef struct tagMInterfacePointer {
+    ULONG ulCntData;
+    [size_is(ulCntData)] BYTE abData[];
+  } MInterfacePointer;
+
+  typedef [unique] MInterfacePointer *PMInterfacePointer;
+
+} /* interface ObjectRpcBaseTypes */
+
+[
+  object,
+  uuid(00000131-0000-0000-C000-000000000046)
+]
+interface IRemUnknown : IUnknown
+{
+  typedef [unique] IRemUnknown *LPREMUNKNOWN;
+
+  typedef struct tagREMQIRESULT {
+    HRESULT hResult;
+    STDOBJREF std;
+  } REMQIRESULT;
+
+  typedef struct tagREMINTERFACEREF {
+    IPID ipid;
+    unsigned long cPublicRefs;
+    unsigned long cPrivateRefs;
+  } REMINTERFACEREF; 
+
+  HRESULT RemQueryInterface(
+    [in] REFIPID ripid,
+    [in] unsigned long cRefs,
+    [in] unsigned short cIids,
+    [in, size_is(cIids)] IID *iids,
+    [out, size_is(,cIids)] REMQIRESULT **ppQIResults);
+
+  HRESULT RemAddRef(
+    [in] unsigned short cInterfaceRefs,
+    [in, size_is(cInterfaceRefs)] REMINTERFACEREF* InterfaceRefs,
+    [out, size_is(cInterfaceRefs)] HRESULT *pResults);
+
+  HRESULT RemRelease(
+    [in] unsigned short cInterfaceRefs,
+    [in, size_is(cInterfaceRefs)] REMINTERFACEREF* InterfaceRefs);
+}
+
+[
+  object,
+  uuid(00000142-0000-0000-C000-000000000046)
+]
+interface IRemUnknown2 : IRemUnknown
+{
+  typedef [unique] IRemUnknown2 *LPREMUNKNOWN2;
+
+  HRESULT RemQueryInterface2(
+    [in] REFIPID ripid,
+    [in] unsigned short cIids,
+    [in, size_is(cIids)] IID *iids,
+    [out, size_is(cIids)] HRESULT *phr,
+    [out, size_is(cIids)] MInterfacePointer **ppMIF);
+}
+
+cpp_quote("#if 0")
+[
+  uuid(99fcfec4-5260-101b-bbcb-00aa0021347a),
+  pointer_default(unique)
+]
+interface IOXIDResolver
+{
+  [idempotent] error_status_t ResolveOxid(
+    [in] handle_t hRpc,
+    [in] OXID *pOxid,
+    [in] unsigned short cRequestedProtseqs,
+    [in, ref, size_is(cRequestedProtseqs)] unsigned short arRequestedProtseqs[],
+    [out, ref] DUALSTRINGARRAY **ppdsaOxidBindings,
+    [out, ref] IPID *pipidRemUnknown,
+    [out, ref] DWORD *pAuthnHint);
+
+  [idempotent] error_status_t SimplePing(
+    [in] handle_t hRpc,
+    [in] SETID *pSetId);
+
+  [idempotent] error_status_t ComplexPing(
+    [in] handle_t hRpc,
+    [in, out] SETID *pSetId,
+    [in] unsigned short SequenceNum,
+    [in] unsigned short cAddToSet,
+    [in] unsigned short cDelFromSet,
+    [in, unique, size_is(cAddToSet)] OID AddToSet[],
+    [in, unique, size_is(cDelFromSet)] OID DelFromSet[],
+    [out] unsigned short *pPingBackoffFactor);
+
+  [idempotent] error_status_t ServerAlive(
+    [in] handle_t hRpc);
+
+  [idempotent] error_status_t ResolveOxid2(
+    [in] handle_t hRpc,
+    [in] OXID *pOxid,
+    [in] unsigned short cRequestedProtseqs,
+    [in, ref, size_is(cRequestedProtseqs)] unsigned short arRequestedProtseqs[],
+    [out, ref] DUALSTRINGARRAY **ppdsaOxidBindings,
+    [out, ref] IPID *pipidRemUnknown,
+    [out, ref] DWORD *pAuthnHint,
+    [out, ref] COMVERSION *pComVersion); 
+}
+
+[
+  uuid(4d9f4ab8-7d1c-11cf-861e-0020af6e7c57),
+  pointer_default(unique)
+]
+interface IRemoteActivation
+{
+  const unsigned long MODE_GET_CLASS_OBJECT = 0xffffffff;
+
+  HRESULT RemoteActivation(
+    [in] handle_t hRpc,
+    [in] ORPCTHIS *ORPCthis,
+    [out] ORPCTHAT *ORPCthat,
+    [in] GUID *Clsid,
+    [in, string, unique] WCHAR *pwszObjectName,
+    [in, unique] MInterfacePointer *pObjectStorage,
+    [in] DWORD ClientImpLevel,
+    [in] DWORD Mode,
+    [in] DWORD Interfaces,
+    [in, unique, size_is(Interfaces)] IID *pIIDs,
+    [in] unsigned short cRequestedProtseqs,
+    [in, size_is(cRequestedProtseqs)] unsigned short RequestedProtseqs[],
+    [out] OXID *pOxid,
+    [out] DUALSTRINGARRAY **ppdsaOxidBindings,
+    [out] IPID *pipidRemUnknown,
+    [out] DWORD *pAuthnHint,
+    [out] COMVERSION *pServerVersion,
+    [out] HRESULT *phr,
+    [out,size_is(Interfaces)] MInterfacePointer **ppInterfaceData,
+    [out,size_is(Interfaces)] HRESULT *pResults);
+}
+cpp_quote("#endif")
--- /dev/null	2003-01-10 01:23:22.000000000 +0100
+++ dlls/ole32/dcom.h	2002-12-06 11:47:03.000000000 +0100
@@ -0,0 +1,358 @@
+/*** Autogenerated by WIDL 0.1 from dcom.idl - Do not edit ***/
+#ifndef __WIDL_DCOM_H
+#define __WIDL_DCOM_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include "unknwn.h"
+typedef MIDL_uhyper ID;
+
+typedef ID MID;
+
+typedef ID OXID;
+
+typedef ID OID;
+
+typedef ID SETID;
+
+typedef GUID IPID;
+
+typedef GUID CID;
+
+typedef REFGUID REFIPID;
+
+#define COM_MINOR_VERSION_1 (1)
+
+#define COM_MINOR_VERSION_2 (2)
+
+#define COM_MAJOR_VERSION (5)
+
+#define COM_MINOR_VERSION (3)
+
+typedef struct tagCOMVERSION {
+    unsigned short MajorVersion;
+    unsigned short MinorVersion;
+} COMVERSION;
+
+#define ORPCF_NULL (0)
+
+#define ORPCF_LOCAL (1)
+
+#define ORPCF_RESERVED1 (2)
+
+#define ORPCF_RESERVED2 (4)
+
+#define ORPCF_RESERVED3 (8)
+
+#define ORPCF_RESERVED4 (16)
+
+typedef struct tagORPC_EXTENT {
+    GUID id;
+    unsigned long size;
+    byte data[1];
+} ORPC_EXTENT;
+
+typedef struct tagORPC_EXTENT_ARRAY {
+    unsigned long size;
+    unsigned long reserved;
+    ORPC_EXTENT **extent;
+} ORPC_EXTENT_ARRAY;
+
+typedef struct tagORPCTHIS {
+    COMVERSION version;
+    unsigned long flags;
+    unsigned long reserved1;
+    CID cid;
+    ORPC_EXTENT_ARRAY *extensions;
+} ORPCTHIS;
+
+typedef struct tagORPCTHAT {
+    unsigned long flags;
+    ORPC_EXTENT_ARRAY *extensions;
+} ORPCTHAT;
+
+#define NCADG_IP_UDP (0x8)
+
+#define NCACN_IP_TCP (0x7)
+
+#define NCADG_IPX (0xe)
+
+#define NCACN_SPX (0xc)
+
+#define NCACN_NB_NB (0x12)
+
+#define NCACN_NB_IPX (0xd)
+
+#define NCACN_DNET_NSP (0x4)
+
+#define NCACN_HTTP (0x1f)
+
+typedef struct tagSTRINGBINDING {
+    unsigned short wTowerId;
+    unsigned short aNetworkAddr[1];
+} STRINGBINDING;
+
+#define COM_C_AUTHZ_NONE (0xffff)
+
+typedef struct tagSECURITYBINDING {
+    unsigned short wAuthnSvc;
+    unsigned short wAuthzSvc;
+    unsigned short aPrincName[1];
+} SECURITYBINDING;
+
+typedef struct tagDUALSTRINGARRAY {
+    unsigned short wNumEntries;
+    unsigned short wSecurityOffset;
+    unsigned short aStringArray[1];
+} DUALSTRINGARRAY;
+
+#define OBJREF_SIGNATURE (0x574f454d)
+
+#define OBJREF_STANDARD (0x1)
+
+#define OBJREF_HANDLER (0x2)
+
+#define OBJREF_CUSTOM (0x4)
+
+#define SORF_OXRES1 (0x1)
+
+#define SORF_OXRES2 (0x20)
+
+#define SORF_OXRES3 (0x40)
+
+#define SORF_OXRES4 (0x80)
+
+#define SORF_OXRES5 (0x100)
+
+#define SORF_OXRES6 (0x200)
+
+#define SORF_OXRES7 (0x400)
+
+#define SORF_OXRES8 (0x800)
+
+#define SORF_NULL (0x0)
+
+#define SORF_NOPING (0x1000)
+
+typedef struct tagSTDOBJREF {
+    unsigned long flags;
+    unsigned long cPublicRefs;
+    OXID oxid;
+    OID oid;
+    IPID ipid;
+} STDOBJREF;
+
+typedef struct tagOBJREF {
+    unsigned long signature;
+    unsigned long flags;
+    GUID iid;
+    union {
+        struct OR_STANDARD {
+            STDOBJREF std;
+            DUALSTRINGARRAY saResAddr;
+        } u_standard;
+        struct OR_HANDLER {
+            STDOBJREF std;
+            CLSID clsid;
+            DUALSTRINGARRAY saResAddr;
+        } u_handler;
+        struct OR_CUSTOM {
+            CLSID clsid;
+            unsigned long cbExtension;
+            unsigned long size;
+            byte *pData;
+        } u_custom;
+    } u_objref;
+} OBJREF;
+
+typedef struct tagMInterfacePointer {
+    ULONG ulCntData;
+    BYTE abData[1];
+} MInterfacePointer;
+
+typedef MInterfacePointer *PMInterfacePointer;
+
+typedef struct IRemUnknown IRemUnknown;
+typedef IRemUnknown *LPREMUNKNOWN;
+
+typedef struct tagREMQIRESULT {
+    HRESULT hResult;
+    STDOBJREF std;
+} REMQIRESULT;
+
+typedef struct tagREMINTERFACEREF {
+    IPID ipid;
+    unsigned long cPublicRefs;
+    unsigned long cPrivateRefs;
+} REMINTERFACEREF;
+
+/*****************************************************************************
+ * IRemUnknown interface
+ */
+DEFINE_GUID(IID_IRemUnknown, 0x00000131, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#define ICOM_INTERFACE IRemUnknown
+#define IRemUnknown_METHODS \
+    ICOM_METHOD5 (HRESULT,RemQueryInterface,REFIPID,ripid,unsigned long,cRefs,unsigned short,cIids,IID*,iids,REMQIRESULT**,ppQIResults) \
+    ICOM_METHOD3 (HRESULT,RemAddRef,unsigned short,cInterfaceRefs,REMINTERFACEREF*,InterfaceRefs,HRESULT*,pResults) \
+    ICOM_METHOD2 (HRESULT,RemRelease,unsigned short,cInterfaceRefs,REMINTERFACEREF*,InterfaceRefs)
+#define IRemUnknown_IMETHODS \
+    IUnknown_IMETHODS \
+    IRemUnknown_METHODS
+ICOM_DEFINE(IRemUnknown,IUnknown)
+#undef ICOM_INTERFACE
+
+/*** IUnknown methods ***/
+#define IRemUnknown_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
+#define IRemUnknown_AddRef(p) ICOM_CALL(AddRef,p)
+#define IRemUnknown_Release(p) ICOM_CALL(Release,p)
+/*** IRemUnknown methods ***/
+#define IRemUnknown_RemQueryInterface(p,a,b,c,d,e) ICOM_CALL5(RemQueryInterface,p,a,b,c,d,e)
+#define IRemUnknown_RemAddRef(p,a,b,c) ICOM_CALL3(RemAddRef,p,a,b,c)
+#define IRemUnknown_RemRelease(p,a,b) ICOM_CALL2(RemRelease,p,a,b)
+
+HRESULT CALLBACK IRemUnknown_RemQueryInterface_Proxy(
+    IRemUnknown* This,
+    REFIPID ripid,
+    unsigned long cRefs,
+    unsigned short cIids,
+    IID* iids,
+    REMQIRESULT** ppQIResults);
+void __RPC_STUB IRemUnknown_RemQueryInterface_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IRemUnknown_RemAddRef_Proxy(
+    IRemUnknown* This,
+    unsigned short cInterfaceRefs,
+    REMINTERFACEREF* InterfaceRefs,
+    HRESULT* pResults);
+void __RPC_STUB IRemUnknown_RemAddRef_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IRemUnknown_RemRelease_Proxy(
+    IRemUnknown* This,
+    unsigned short cInterfaceRefs,
+    REMINTERFACEREF* InterfaceRefs);
+void __RPC_STUB IRemUnknown_RemRelease_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+typedef struct IRemUnknown2 IRemUnknown2;
+typedef IRemUnknown2 *LPREMUNKNOWN2;
+
+/*****************************************************************************
+ * IRemUnknown2 interface
+ */
+DEFINE_GUID(IID_IRemUnknown2, 0x00000142, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#define ICOM_INTERFACE IRemUnknown2
+#define IRemUnknown2_METHODS \
+    ICOM_METHOD5 (HRESULT,RemQueryInterface2,REFIPID,ripid,unsigned short,cIids,IID*,iids,HRESULT*,phr,MInterfacePointer**,ppMIF)
+#define IRemUnknown2_IMETHODS \
+    IRemUnknown_IMETHODS \
+    IRemUnknown2_METHODS
+ICOM_DEFINE(IRemUnknown2,IRemUnknown)
+#undef ICOM_INTERFACE
+
+/*** IUnknown methods ***/
+#define IRemUnknown2_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
+#define IRemUnknown2_AddRef(p) ICOM_CALL(AddRef,p)
+#define IRemUnknown2_Release(p) ICOM_CALL(Release,p)
+/*** IRemUnknown methods ***/
+#define IRemUnknown2_RemQueryInterface(p,a,b,c,d,e) ICOM_CALL5(RemQueryInterface,p,a,b,c,d,e)
+#define IRemUnknown2_RemAddRef(p,a,b,c) ICOM_CALL3(RemAddRef,p,a,b,c)
+#define IRemUnknown2_RemRelease(p,a,b) ICOM_CALL2(RemRelease,p,a,b)
+/*** IRemUnknown2 methods ***/
+#define IRemUnknown2_RemQueryInterface2(p,a,b,c,d,e) ICOM_CALL5(RemQueryInterface2,p,a,b,c,d,e)
+
+HRESULT CALLBACK IRemUnknown2_RemQueryInterface2_Proxy(
+    IRemUnknown2* This,
+    REFIPID ripid,
+    unsigned short cIids,
+    IID* iids,
+    HRESULT* phr,
+    MInterfacePointer** ppMIF);
+void __RPC_STUB IRemUnknown2_RemQueryInterface2_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#if 0
+/*****************************************************************************
+ * IOXIDResolver interface (v0.0)
+ */
+DEFINE_GUID(IID_IOXIDResolver, 0x99fcfec4, 0x5260, 0x101b, 0xbb,0xcb, 0x00,0xaa,0x00,0x21,0x34,0x7a);
+extern RPC_IF_HANDLE IOXIDResolver_v0_0_c_ifspec;
+extern RPC_IF_HANDLE IOXIDResolver_v0_0_s_ifspec;
+error_status_t ResolveOxid(
+    handle_t hRpc,
+    OXID* pOxid,
+    unsigned short cRequestedProtseqs,
+    unsigned short arRequestedProtseqs,
+    DUALSTRINGARRAY** ppdsaOxidBindings,
+    IPID* pipidRemUnknown,
+    DWORD* pAuthnHint);
+error_status_t SimplePing(
+    handle_t hRpc,
+    SETID* pSetId);
+error_status_t ComplexPing(
+    handle_t hRpc,
+    SETID* pSetId,
+    unsigned short SequenceNum,
+    unsigned short cAddToSet,
+    unsigned short cDelFromSet,
+    OID AddToSet,
+    OID DelFromSet,
+    unsigned short* pPingBackoffFactor);
+error_status_t ServerAlive(
+    handle_t hRpc);
+error_status_t ResolveOxid2(
+    handle_t hRpc,
+    OXID* pOxid,
+    unsigned short cRequestedProtseqs,
+    unsigned short arRequestedProtseqs,
+    DUALSTRINGARRAY** ppdsaOxidBindings,
+    IPID* pipidRemUnknown,
+    DWORD* pAuthnHint,
+    COMVERSION* pComVersion);
+
+#define MODE_GET_CLASS_OBJECT (0x7fffffff)
+
+/*****************************************************************************
+ * IRemoteActivation interface (v0.0)
+ */
+DEFINE_GUID(IID_IRemoteActivation, 0x4d9f4ab8, 0x7d1c, 0x11cf, 0x86,0x1e, 0x00,0x20,0xaf,0x6e,0x7c,0x57);
+extern RPC_IF_HANDLE IRemoteActivation_v0_0_c_ifspec;
+extern RPC_IF_HANDLE IRemoteActivation_v0_0_s_ifspec;
+HRESULT RemoteActivation(
+    handle_t hRpc,
+    ORPCTHIS* ORPCthis,
+    ORPCTHAT* ORPCthat,
+    GUID* Clsid,
+    WCHAR* pwszObjectName,
+    MInterfacePointer* pObjectStorage,
+    DWORD ClientImpLevel,
+    DWORD Mode,
+    DWORD Interfaces,
+    IID* pIIDs,
+    unsigned short cRequestedProtseqs,
+    unsigned short RequestedProtseqs,
+    OXID* pOxid,
+    DUALSTRINGARRAY** ppdsaOxidBindings,
+    IPID* pipidRemUnknown,
+    DWORD* pAuthnHint,
+    COMVERSION* pServerVersion,
+    HRESULT* phr,
+    MInterfacePointer** ppInterfaceData,
+    HRESULT* pResults);
+
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif /* __WIDL_DCOM_H */






More information about the wine-patches mailing list