#include "idl_types.h" /** DCOM interfaces http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm */ #define IPID GUID [ uuid("4d9f4ab8-7d1c-11cf-861e-0020af6e7c57"), pointer_default(unique), endpoint("ncalrpc:", "ncacn_ip_tcp:[135]"), depends(dcom) ] interface IRemoteActivation { typedef enum { RPC_C_IMP_LEVEL_DEFAULT = 0, RPC_C_IMP_LEVEL_ANONYMOUS = 1, RPC_C_IMP_LEVEL_IDENTIFY = 2, RPC_C_IMP_LEVEL_IMPERSONATE = 3, RPC_C_IMP_LEVEL_DELEGATE = 4 } imp_levels; typedef struct { MInterfacePointer *p; } pMInterfacePointer; const uint32 MODE_GET_CLASS_OBJECT = 0xffffffff; WERROR RemoteActivation ( [in] ORPCTHIS this, [out] ORPCTHAT that, [in] GUID Clsid, [in, unique] unistr *pwszObjectName, [in, unique] MInterfacePointer *pObjectStorage, [in] uint32 ClientImpLevel, [in] uint32 Mode, [in,range(1,32768)] uint32 Interfaces, [in, unique,size_is(Interfaces)] GUID *pIIDs, [in] uint16 num_protseqs, [in, size_is(num_protseqs)] uint16 protseq[], [out] HYPER_T pOxid, [out] DUALSTRINGARRAY *pdsaOxidBindings, [out] IPID ipidRemUnknown, [out] uint32 AuthnHint, [out] COMVERSION ServerVersion, [out] WERROR hr, [out,size_is(Interfaces),ref] pMInterfacePointer *ifaces, [out,size_is(Interfaces)] WERROR results[] ); }