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.

178 lines
3.9 KiB

  1. import "unknwn.idl";
  2. typedef struct tag_MUID
  3. {
  4. unsigned long Id[5];
  5. }MUID;
  6. cpp_quote("inline bool IsSyncMessage( MUID & x) { return ( x.Id[0] > 0);}")
  7. [uuid(c4d1bf46-9195-44d0-acac-6b115a177b0d)]
  8. library SATransport
  9. {
  10. [restricted, uuid(8b5a91c6-e588-4956-afe1-fc9e744c8ea3)]
  11. coclass SATransport
  12. {
  13. interface ISATransport;
  14. };
  15. typedef [v1_enum] enum tag_SASTATUSCODE
  16. {
  17. SA_S_OK = 0,
  18. SA_S_SEND_COMPLETE_WITH_ERROR = 0x40001,
  19. SA_S_SEND_NODE_COMPLETE = 0x40002,
  20. SA_S_SEND_COMPLETE = 0x40003,
  21. SA_S_RECV_COMPLETE = 0x40004,
  22. SA_E_FAILED = 0x80041001,
  23. SA_E_RECV_IN_USE = 0x80041002,
  24. SA_E_ACCESS_DENIED = 0x80041003,
  25. SA_E_SEND_NODE_FAILED = 0x80041005,
  26. SA_E_SEND_FAILED = 0x80041006,
  27. SA_E_SEND_TIME_OUT = 0x80041007
  28. } SASTATUSCODE ;
  29. }
  30. [local, uuid(00a124d1-e449-4ff7-bdc7-4310ea7b8d22),
  31. object
  32. ]
  33. interface ISAMessage : IUnknown
  34. {
  35. HRESULT SetSAMessage(
  36. [in] byte * pByte,
  37. [in] DWORD Size,
  38. [in] MUID * MsgId
  39. );
  40. const byte * GetSAMessage(
  41. [out] DWORD * pSize ,
  42. [out] MUID * pMsgId
  43. );
  44. const LPWSTR GetSourceName( );
  45. }
  46. [local, uuid(887088c1-3ca2-42ca-b53f-4dc736d53224),
  47. object
  48. ]
  49. interface ISATarget : IUnknown
  50. {
  51. HRESULT AddTarget(
  52. [in] BSTR Name
  53. );
  54. HRESULT AddTargetMember(
  55. [in] BSTR MemberName
  56. );
  57. HRESULT GetNext(
  58. [out] BSTR * pName,
  59. [out] long * CompletionStatus
  60. );
  61. HRESULT ResetMemberEnum( void );
  62. DWORD MemberCount(void);
  63. }
  64. [local, uuid(66d8a865-a32d-49b1-82aa-c4350bc930fb),
  65. object
  66. ]
  67. interface ISANotify: IUnknown
  68. {
  69. HRESULT Notify(
  70. [in] ISAMessage * pMessage
  71. );
  72. HRESULT SetStatus(
  73. [in] BSTR NodeName,
  74. [in] long Status,
  75. [in] ISATarget * pTarget );
  76. }
  77. [local, uuid(77805032-07cc-492a-93f4-cf5863817728),
  78. object
  79. ]
  80. interface ISASession : IUnknown
  81. {
  82. HRESULT Send(
  83. [in] ISAMessage * pMessage,
  84. [in] ISATarget * pTarget,
  85. [in] ISANotify * pNotify
  86. );
  87. HRESULT Receive(
  88. [in] ISANotify * pNotify
  89. );
  90. HRESULT Execute (
  91. [in] BSTR NodeName,
  92. [in] ISAMessage * pMessage,
  93. [out] ISAMessage ** ppMessage,
  94. [in, defaultvalue(15000)] DWORD dwMilliseconds
  95. );
  96. }
  97. [local, uuid(014f4c1a-a87a-4bfb-b541-d66d2475f4ec),
  98. object
  99. ]
  100. interface ISATransport : IUnknown
  101. {
  102. HRESULT Initialize(
  103. [in] short ReceivePort,
  104. [in] short DestinationPort,
  105. [in] BSTR IpAddress
  106. );
  107. HRESULT CreateSession(
  108. [in] long Impersonate,
  109. [out] ISASession ** ppSession
  110. );
  111. HRESULT CancelNotify(
  112. [in] ISANotify * pNotify
  113. );
  114. HRESULT CreateTarget(
  115. [out] ISATarget ** ppTarget
  116. );
  117. HRESULT CreateMessage(
  118. [out] ISAMessage ** ppMessage
  119. );
  120. }
  121. [local, uuid(c0b3a8b0-c06d-45be-9900-44e90ed98b96),
  122. object
  123. ]
  124. interface ISAGroup : IUnknown
  125. {
  126. HRESULT CreateGroup(
  127. [out] BSTR *pGroupAddr,
  128. [out] BSTR *pGroupID
  129. );
  130. HRESULT JoinGroup(
  131. [in] BSTR GroupAddr
  132. );
  133. HRESULT LeaveGroup(
  134. [in] BSTR GroupAddr
  135. );
  136. HRESULT DeleteGroup(
  137. [in] BSTR GroupAddr,
  138. [in] BSTR GroupID
  139. );
  140. HRESULT Registry2Madcap(
  141. [in] DWORD DhcpServerIpAddr
  142. );
  143. HRESULT Madcap2Registry(
  144. [in] DWORD DhcpServerIpAddr
  145. );
  146. }