| 1 | /**
|
|---|
| 2 | DCOM interfaces
|
|---|
| 3 | http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm
|
|---|
| 4 | */
|
|---|
| 5 |
|
|---|
| 6 | import "misc.idl", "orpc.idl";
|
|---|
| 7 |
|
|---|
| 8 | [
|
|---|
| 9 | uuid("4d9f4ab8-7d1c-11cf-861e-0020af6e7c57"),
|
|---|
| 10 | pointer_default(unique),
|
|---|
| 11 | endpoint("ncalrpc:", "ncacn_ip_tcp:[135]", "ncacn_np:[\\pipe\\epmapper]")
|
|---|
| 12 | ]
|
|---|
| 13 | interface IRemoteActivation
|
|---|
| 14 | {
|
|---|
| 15 | typedef enum
|
|---|
| 16 | {
|
|---|
| 17 | RPC_C_IMP_LEVEL_DEFAULT = 0,
|
|---|
| 18 | RPC_C_IMP_LEVEL_ANONYMOUS = 1,
|
|---|
| 19 | RPC_C_IMP_LEVEL_IDENTIFY = 2,
|
|---|
| 20 | RPC_C_IMP_LEVEL_IMPERSONATE = 3,
|
|---|
| 21 | RPC_C_IMP_LEVEL_DELEGATE = 4
|
|---|
| 22 | } imp_levels;
|
|---|
| 23 |
|
|---|
| 24 | const uint32 MODE_GET_CLASS_OBJECT = 0xffffffff;
|
|---|
| 25 | WERROR RemoteActivation (
|
|---|
| 26 | [in] ORPCTHIS this_object,
|
|---|
| 27 | [out,ref] ORPCTHAT *that,
|
|---|
| 28 | [in] GUID Clsid,
|
|---|
| 29 | [in] [string,charset(UTF16)] uint16 *pwszObjectName,
|
|---|
| 30 | [in] MInterfacePointer *pObjectStorage,
|
|---|
| 31 | [in] uint32 ClientImpLevel,
|
|---|
| 32 | [in] uint32 Mode,
|
|---|
| 33 | [in,range(1,32768)] uint32 Interfaces,
|
|---|
| 34 | [in,size_is(Interfaces)] GUID *pIIDs,
|
|---|
| 35 | [in] uint16 num_protseqs,
|
|---|
| 36 | [in, size_is(num_protseqs)] uint16 protseq[*],
|
|---|
| 37 | [out,ref] hyper *pOxid,
|
|---|
| 38 | [out,ref] DUALSTRINGARRAY *pdsaOxidBindings,
|
|---|
| 39 | [out,ref] GUID *ipidRemUnknown,
|
|---|
| 40 | [out,ref] uint32 *AuthnHint,
|
|---|
| 41 | [out,ref] COMVERSION *ServerVersion,
|
|---|
| 42 | [out,ref] WERROR *hr,
|
|---|
| 43 | [out,size_is(Interfaces)] MInterfacePointer *ifaces[],
|
|---|
| 44 | [out,size_is(Interfaces)] WERROR results[]
|
|---|
| 45 | );
|
|---|
| 46 | }
|
|---|