5 http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm
9 The OXID Resolver can turn a OXID (Object Exporter ID) into a
10 RPC binding string that can be used to contact an object
16 uuid(99fcfec4-5260-101b-bbcb-00aa0021347a),
17 helpstring("Object Exporter ID Resolver"),
18 endpoint("ncacn_np:[\\pipe\\epmapper]", "ncacn_ip_tcp:[135]", "ncalrpc:"),
19 pointer_default(unique)
21 interface IOXIDResolver
28 /* Method to get the protocol sequences, string bindings */
29 /* and machine id for an object server given its OXID. */
31 typedef [public] struct {
32 DUALSTRINGARRAY *ppdsaOxidBindings;
33 } ppdsaOxidBindingsArray;
35 [idempotent] WERROR ResolveOxid (
37 [in] uint16 cRequestedProtseqs,
38 [in, size_is(cRequestedProtseqs)] uint16 arRequestedProtseqs[],
39 [out, ref] ppdsaOxidBindingsArray *ppdsaOxidBindings,
40 [out, ref] IPID *pipidRemUnknown,
41 [out, ref] uint32 *pAuthnHint
44 /* Simple ping is used to ping a Set. Client machines use this */
45 /* to inform the object exporter that it is still using the */
46 /* members of the set. */
47 /* Returns S_TRUE if the SetId is known by the object exporter, */
49 [idempotent] WERROR SimplePing (
50 [in] SETID *SetId /* Must not be zero */
53 /* Complex ping is used to create sets of OIDs to ping. The */
54 /* whole set can subsequently be pinged using SimplePing, */
55 /* thus reducing network traffic. */
56 [idempotent] WERROR ComplexPing (
57 [in, out] SETID *pSetId, /* In of 0 on first call for new set. */
58 [in] uint16 SequenceNum,
59 [in] uint16 cAddToSet,
60 [in] uint16 cDelFromSet,
61 /* add these OIDs to the set */
62 [in, size_is(cAddToSet)] OID AddToSet[],
63 /*remove these OIDs from the set */
64 [in, size_is(cDelFromSet)] OID DelFromSet[],
65 [out] uint16 *pPingBackoffFactor/* 2^factor = multipler */
68 /* In some cases the client maybe unsure that a particular */
69 /* binding will reach the server. (For example, when the oxid */
70 /* bindings have more then one TCP/IP binding) This call */
71 /* can be used to validate the binding */
72 /* from the client. */
73 [idempotent] WERROR ServerAlive ();
75 /* Method to get the protocol sequences, string bindings, */
76 /* RemoteUnknown IPID and COM version for an object server */
77 /* given its OXID. Supported by DCOM */
78 /* version 5.2 and above. */
79 [idempotent] WERROR ResolveOxid2 (
81 [in] uint16 cRequestedProtseqs,
82 [in, size_is(cRequestedProtseqs)]
83 uint16 arRequestedProtseqs[],
84 [out, ref] ppdsaOxidBindingsArray *ppdsaOxidBindings,
85 [out, ref] IPID *pipidRemUnknown,
86 [out, ref] uint32 *pAuthnHint,
87 [out, ref] COMVERSION *pComVersion
94 [idempotent] WERROR ServerAlive2 (
96 [out] DUALSTRINGARRAY dualstring,
97 [out] uint8 unknown2[3]);