Source code of Windows XP (NT5)
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.

269 lines
9.3 KiB

  1. /*++
  2. Copyright (c) 1999-2000 Microsoft Corporation
  3. Module Name:
  4. RDSHOST.IDL
  5. Abstract:
  6. Remote Desktopping Server-Side IDL for Core Remote Desktopping Interfaces
  7. and Classes
  8. Author:
  9. Tad Brockway 02/00
  10. Revision History:
  11. --*/
  12. import "oaidl.idl";
  13. import "ocidl.idl";
  14. import "rdschan.idl";
  15. /**
  16. ** Remote Desktop Sharing class.
  17. **/
  18. typedef [
  19. uuid(34b3166d-870a-4f39-9e2a-09fd8d31ad83),
  20. helpstring("Remote Desktop Sharing Class")
  21. ]
  22. enum {
  23. [helpstring("REMOTE DESKTOP SHARING CLASS")] DESKTOPSHARING_DEFAULT = 0x0000,
  24. NO_DESKTOP_SHARING = 0x0001,
  25. VIEWDESKTOP_PERMISSION_REQUIRE = 0x0002,
  26. VIEWDESKTOP_PERMISSION_NOT_REQUIRE = 0x0004,
  27. CONTROLDESKTOP_PERMISSION_REQUIRE = 0x0008,
  28. CONTROLDESKTOP_PERMISSION_NOT_REQUIRE = 0x00010,
  29. } REMOTE_DESKTOP_SHARING_CLASS;
  30. /**
  31. ** ISAFRemoteDesktopSession Interface
  32. **/
  33. cpp_quote("")
  34. cpp_quote("#define DISPID_RDSSESSION_CHANNELMANAGER 1")
  35. cpp_quote("#define DISPID_RDSSESSION_CONNECTPARMS 2")
  36. cpp_quote("#define DISPID_RDSSESSION_SHARINGCLASS 3")
  37. cpp_quote("#define DISPID_RDSSESSION_ONCONNECTED 4")
  38. cpp_quote("#define DISPID_RDSSESSION_ONDISCONNECTED 5")
  39. cpp_quote("#define DISPID_RDSSESSION_CLOSERDSSESSION 6")
  40. cpp_quote("#define DISPID_RDSSESSION_DISCONNECT 7")
  41. cpp_quote("")
  42. #define DISPID_RDSSESSION_CHANNELMANAGER 1
  43. #define DISPID_RDSSESSION_CONNECTPARMS 2
  44. #define DISPID_RDSSESSION_SHARINGCLASS 3
  45. #define DISPID_RDSSESSION_ONCONNECTED 4
  46. #define DISPID_RDSSESSION_ONDISCONNECTED 5
  47. #define DISPID_RDSSESSION_CLOSERDSSESSION 6
  48. #define DISPID_RDSSESSION_DISCONNECT 7
  49. [
  50. object,
  51. uuid(9D8C82C9-A89F-42C5-8A52-FE2A77B00E82),
  52. dual,
  53. helpstring("ISAFRemoteDesktopSession Interface"),
  54. pointer_default(unique)
  55. ]
  56. interface ISAFRemoteDesktopSession : IDispatch
  57. {
  58. [propget, id(DISPID_RDSSESSION_CHANNELMANAGER), helpstring("ChannelManager")]
  59. HRESULT ChannelManager([out, retval]ISAFRemoteDesktopChannelMgr **mgr);
  60. [propget, id(DISPID_RDSSESSION_CONNECTPARMS), helpstring("ConnectParms")]
  61. HRESULT ConnectParms([out, retval]BSTR *parms);
  62. [propput, id(DISPID_RDSSESSION_SHARINGCLASS), helpstring("Sharing Class")]
  63. HRESULT SharingClass([in] REMOTE_DESKTOP_SHARING_CLASS sharingClass);
  64. [propget, id(DISPID_RDSSESSION_SHARINGCLASS), helpstring("Sharing Class")]
  65. HRESULT SharingClass([out, retval]REMOTE_DESKTOP_SHARING_CLASS *sharingClass);
  66. [id(DISPID_RDSSESSION_CLOSERDSSESSION), helpstring("method CloseRemoteDesktopSession")]
  67. HRESULT CloseRemoteDesktopSession();
  68. [id(DISPID_RDSSESSION_DISCONNECT), helpstring("method Disconnect")]
  69. HRESULT Disconnect();
  70. [propput, id(DISPID_RDSSESSION_ONCONNECTED), helpstring("OnConnected")]
  71. HRESULT OnConnected([in] IDispatch *iDisp);
  72. [propput, id(DISPID_RDSSESSION_ONDISCONNECTED), helpstring("OnDisconnected")]
  73. HRESULT OnDisconnected([in] IDispatch *iDisp);
  74. };
  75. /**
  76. ** IRDSThreadBridge Interface
  77. **/
  78. [
  79. object,
  80. uuid(35B9A4B1-7CA6-4aec-8762-1B590056C05D),
  81. dual,
  82. helpstring("IRDSThreadBridge Interface"),
  83. pointer_default(unique)
  84. ]
  85. interface IRDSThreadBridge : IUnknown
  86. {
  87. [id(1), helpstring("method ClientConnectedNotify")] HRESULT ClientConnectedNotify();
  88. [id(2), helpstring("method ClientDisconnectedNotify")] HRESULT ClientDisconnectedNotify();
  89. [id(3), helpstring("method DataReadyNotify")] HRESULT DataReadyNotify([in]BSTR msg);
  90. };
  91. /**
  92. ** ISAFRemoteDesktopServerHost Interface
  93. **/
  94. cpp_quote("")
  95. cpp_quote("#define DISPID_RDSSERVERHOST_CREATERDSSESSION 1")
  96. cpp_quote("#define DISPID_RDSSERVERHOST_OPENRDSSESSION 2")
  97. cpp_quote("#define DISPID_RDSSERVERHOST_CLOSERDSSESSION 3")
  98. cpp_quote("#define DISPID_RDSSERVERHOST_DISCONNECTRDSSESSION 4")
  99. cpp_quote("#define DISPID_RDSSERVERHOST_CREATERDSSESSIONEX 5")
  100. cpp_quote("#define DISPID_RDSSERVERHOST_CONNECTEXPERT 6")
  101. cpp_quote("")
  102. #define DISPID_RDSSERVERHOST_CREATERDSSESSION 1
  103. #define DISPID_RDSSERVERHOST_OPENRDSSESSION 2
  104. #define DISPID_RDSSERVERHOST_CLOSERDSSESSION 3
  105. #define DISPID_RDSSERVERHOST_DISCONNECTRDSSESSION 4
  106. #define DISPID_RDSSERVERHOST_CREATERDSSESSIONEX 5
  107. #define DISPID_RDSSERVERHOST_CONNECTEXPERT 6
  108. [
  109. object,
  110. uuid(C9CCDEB3-A3DD-4673-B495-C1C89494D90E),
  111. dual,
  112. helpstring("ISAFRemoteDesktopServerHost Interface"),
  113. pointer_default(unique)
  114. ]
  115. interface ISAFRemoteDesktopServerHost : IDispatch
  116. {
  117. [id(DISPID_RDSSERVERHOST_CREATERDSSESSION), helpstring("method CreateRemoteDesktopSession")]
  118. HRESULT CreateRemoteDesktopSession(
  119. [in] REMOTE_DESKTOP_SHARING_CLASS sharingClass,
  120. [in] BOOL fEnableCallback,
  121. [in] LONG timeOut,
  122. [in] BSTR userHelpBlob,
  123. [out, retval] ISAFRemoteDesktopSession **
  124. );
  125. [id(DISPID_RDSSERVERHOST_CREATERDSSESSIONEX), helpstring("method CreateRemoteDesktopSessionEx")]
  126. HRESULT CreateRemoteDesktopSessionEx(
  127. [in] REMOTE_DESKTOP_SHARING_CLASS sharingClass,
  128. [in] BOOL fEnableCallback,
  129. [in] LONG timeOut,
  130. [in] BSTR userHelpBlob,
  131. [in] LONG tsSessionID,
  132. [in] BSTR userSID,
  133. [out, retval] ISAFRemoteDesktopSession **
  134. );
  135. [id(DISPID_RDSSERVERHOST_OPENRDSSESSION), helpstring("method OpenRemoteDesktopSession")]
  136. HRESULT OpenRemoteDesktopSession([in] BSTR parms, [out, retval] ISAFRemoteDesktopSession **);
  137. [id(DISPID_RDSSERVERHOST_CLOSERDSSESSION), helpstring("method CloseRemoteDesktopSession")]
  138. HRESULT CloseRemoteDesktopSession([in] ISAFRemoteDesktopSession *);
  139. [id(DISPID_RDSSERVERHOST_CONNECTEXPERT), helpstring("method ConnectToExpert")]
  140. HRESULT ConnectToExpert([in] BSTR expertConnectParm, [in] LONG timeout, [out, retval] LONG* SafErrorCode);
  141. };
  142. /**
  143. ** RDSServerHost Type Lib
  144. **/
  145. cpp_quote("")
  146. cpp_quote("#define DISPID_RDSSESSIONSEVENTS_CLIENTCONNECTED 1")
  147. cpp_quote("#define DISPID_RDSSESSIONSEVENTS_CLIENTDISCONNECTED 2")
  148. cpp_quote("")
  149. #define DISPID_RDSSESSIONSEVENTS_CLIENTCONNECTED 1
  150. #define DISPID_RDSSESSIONSEVENTS_CLIENTDISCONNECTED 2
  151. cpp_quote("")
  152. cpp_quote("#define DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY 1")
  153. cpp_quote("")
  154. #define DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY 1
  155. [
  156. uuid(1B16CE61-2406-412F-969E-21BC082F76E8),
  157. version(1.0),
  158. helpstring("RDSServerHost 1.0 Type Library")
  159. ]
  160. library RDSSERVERHOSTLib
  161. {
  162. importlib("stdole2.tlb");
  163. /* TODO: Find a way to define this in a common location, instead of in the client and server IDL */
  164. //
  165. // Changes made here must be reflected in the client RDCHost IDL.
  166. //
  167. cpp_quote("")
  168. cpp_quote("#define DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY 1")
  169. cpp_quote("")
  170. #define DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY 1
  171. [
  172. uuid(59AE79BC-9721-42df-9396-9D98E7F7A396),
  173. helpstring("_ISAFRemoteDesktopDataChannelEvents Interface")
  174. ]
  175. dispinterface _ISAFRemoteDesktopDataChannelEvents
  176. {
  177. properties:
  178. methods:
  179. [id(DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY), helpstring("method ChannelDataReady")]
  180. void ChannelDataReady([in]BSTR channelName);
  181. };
  182. [
  183. uuid(8C71C09E-3176-4be6-B294-EA3C41CABB99),
  184. helpstring("TSRDPServerDataChannel Class")
  185. ]
  186. coclass TSRDPServerDataChannel
  187. {
  188. [default] interface ISAFRemoteDesktopDataChannel;
  189. [default, source] dispinterface _ISAFRemoteDesktopDataChannelEvents;
  190. };
  191. [
  192. uuid(92550D33-3272-43b6-B536-2DB08C1D569C),
  193. helpstring("SAFRemoteDesktopChannelMgr Class")
  194. ]
  195. coclass TSRDPServerDataChannelMgr
  196. {
  197. [default] interface ISAFRemoteDesktopChannelMgr;
  198. interface IRDSThreadBridge;
  199. };
  200. [
  201. uuid(5EA6F67B-7713-45F3-B535-0E03DD637345),
  202. helpstring("RemoteDesktopServerHost Class")
  203. ]
  204. coclass SAFRemoteDesktopServerHost
  205. {
  206. [default] interface ISAFRemoteDesktopServerHost;
  207. };
  208. [
  209. uuid(434AD1CF-4054-44A8-933F-C69889CA22D7),
  210. helpstring("_ISAFRemoteDesktopSessionEvents Interface")
  211. ]
  212. dispinterface _ISAFRemoteDesktopSessionEvents
  213. {
  214. properties:
  215. methods:
  216. [id(DISPID_RDSSESSIONSEVENTS_CLIENTCONNECTED), helpstring("method ClientConnected")]
  217. void ClientConnected();
  218. [id(DISPID_RDSSESSIONSEVENTS_CLIENTDISCONNECTED), helpstring("method ClientDisconnected")]
  219. void ClientDisconnected();
  220. };
  221. [
  222. uuid(3D5D6889-14CC-4E28-8464-6B02A26F506D),
  223. helpstring("RemoteDesktopServer Class")
  224. ]
  225. coclass SAFRemoteDesktopSession
  226. {
  227. [default] interface ISAFRemoteDesktopSession;
  228. [default, source] dispinterface _ISAFRemoteDesktopSessionEvents;
  229. };
  230. };