Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

115 lines
4.3 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1995.
  5. //
  6. // File: objex.idl
  7. //
  8. // Synopsis: Interface implemented by object exporters.
  9. //
  10. // This is the interface that needs to be supported by hosts that export
  11. // objects. Only one instance of this interface can be exported by the host.
  12. //
  13. // An object exporter needs to be able to:
  14. // 1. return string bindings that can be used to talk to objects it
  15. // has exported
  16. // 2. receive pings from object importers to keep the objects alive
  17. //
  18. // Note that changes to this interface can effect IActivation because the
  19. // RemoteActivation method of IActivation includes information otherwise
  20. // retrieved from ResolveOxid.
  21. //
  22. //--------------------------------------------------------------------------
  23. [
  24. uuid(99fcfec4-5260-101b-bbcb-00aa0021347a),
  25. pointer_default(unique)
  26. ]
  27. interface IObjectExporter
  28. {
  29. import "obase.idl";
  30. // Method to get the protocol sequences, string bindings and machine id
  31. // for an object server given its OXID.
  32. [idempotent] error_status_t ResolveOxid
  33. (
  34. [in] handle_t hRpc,
  35. [in] OXID *pOxid,
  36. [in] unsigned short cRequestedProtseqs,
  37. [in, ref, size_is(cRequestedProtseqs)]
  38. unsigned short arRequestedProtseqs[],
  39. [out, ref] DUALSTRINGARRAY **ppdsaOxidBindings,
  40. [out, ref] IPID *pipidRemUnknown,
  41. [out, ref] DWORD *pAuthnHint
  42. );
  43. // Simple ping is used to ping a Set. Client machines use this to inform
  44. // the object exporter that it is still using the members of the set.
  45. // Returns S_TRUE if the SetId is known by the object exporter,
  46. // S_FALSE if not.
  47. [idempotent] error_status_t SimplePing
  48. (
  49. [in] handle_t hRpc,
  50. [in] SETID *pSetId // Must not be zero
  51. );
  52. // Complex ping is used to create sets of OIDs to ping. The whole set
  53. // can subsequently be pinged using SimplePing, thus reducing network
  54. // traffic.
  55. [idempotent] error_status_t ComplexPing
  56. (
  57. [in] handle_t hRpc,
  58. [in, out] SETID *pSetId, // In of 0 on first call for new set.
  59. [in] unsigned short SequenceNum,
  60. [in] unsigned short cAddToSet,
  61. [in] unsigned short cDelFromSet,
  62. [in, unique, size_is(cAddToSet)] OID AddToSet[], // add these OIDs to the set
  63. [in, unique, size_is(cDelFromSet)] OID DelFromSet[], // remove these OIDs from the set
  64. [out] unsigned short *pPingBackoffFactor // 2^factor = multipler
  65. );
  66. // In some cases the client maybe unsure that a particular binding will
  67. // reach the server. (For example, when the oxid bindings have more then
  68. // one TCP/IP binding) This call can be used to validate the binding
  69. // from the client.
  70. [idempotent] error_status_t ServerAlive
  71. (
  72. [in] handle_t hRpc
  73. );
  74. // Method to get the protocol sequences, string bindings, RemoteUnknown IPID,
  75. // and COM version for an object server given its OXID. Supported by DCOM
  76. // version 5.2 and above.
  77. [idempotent] error_status_t ResolveOxid2
  78. (
  79. [in] handle_t hRpc,
  80. [in] OXID *pOxid,
  81. [in] unsigned short cRequestedProtseqs,
  82. [in, ref, size_is(cRequestedProtseqs)]
  83. unsigned short arRequestedProtseqs[],
  84. [out, ref] DUALSTRINGARRAY **ppdsaOxidBindings,
  85. [out, ref] IPID *pipidRemUnknown,
  86. [out, ref] DWORD *pAuthnHint,
  87. [out, ref] COMVERSION *pComVersion
  88. );
  89. // In some cases the client maybe unsure that a particular binding will
  90. // reach the server. (For example, when the oxid bindings have more then
  91. // one TCP/IP binding) This call can be used to validate the binding
  92. // from the client. During activation the client does not know what
  93. // security providers the server supports. Return those as well.
  94. [idempotent] error_status_t ServerAlive2
  95. (
  96. [in] handle_t hRpc,
  97. [out, ref] COMVERSION *pComVersion,
  98. [out, ref] DUALSTRINGARRAY **ppdsaOrBindings,
  99. [out, ref] DWORD *pReserved
  100. );
  101. }