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.

526 lines
25 KiB

  1. /********************************************************************
  2. Copyright (c) 1999 Microsoft Corporation
  3. Module Name:
  4. SAF.idl
  5. Abstract:
  6. This file includes the declaration for all ISAFChannel objects
  7. Revision History:
  8. Steve Shih created 07/15/99
  9. Kalyani Narlanka Changes to ISAFChannel, ISAFIncidentItem
  10. Kalyani Narlanka (kalyanin) 06/28/'00
  11. Added Interface for Encryption
  12. Kalyani Narlanka (kalyanin) 9/29/2000
  13. Added Interfaces for Unsolicited Remote Control
  14. Juan J. Perez (jperez)
  15. Added Interfaces for Voice over IP (ISAFIntercomClient and ISAFIntercomServer)
  16. Juan J. Perez (jperez) 01/08/2001
  17. Added Interface (ISAFChannelNotifyIncident)
  18. ********************************************************************/
  19. cpp_quote( "#include <SAFDID.h>" )
  20. #include <SAFDID.h>
  21. typedef enum {
  22. pchIncidentInvalid = 0,
  23. pchIncidentOpen = 1,
  24. pchIncidentClosed = 2,
  25. pchIncidentMax = 3
  26. } IncidentStatusEnum;
  27. typedef enum
  28. {
  29. pchIncidentsInvalid = 0,
  30. pchAllIncidents = 1,
  31. pchOpenIncidents = 2,
  32. pchClosedIncidents = 3,
  33. pchAllIncidentsAllUsers = 4,
  34. pchOpenIncidentsAllUsers = 5,
  35. pchClosedIncidentsAllUsers = 6,
  36. pchIncidentsMax = 7
  37. } IncidentCollectionOptionEnum;
  38. typedef enum
  39. {
  40. pchActive = 0,
  41. pchConnected = 1,
  42. pchConnectQuery = 2,
  43. pchShadow = 3,
  44. pchDisconnected = 4,
  45. pchIdle = 5,
  46. pchListen = 6,
  47. pchReset = 7,
  48. pchDown = 8,
  49. pchInit = 9,
  50. pchStateInvalid =10
  51. } SessionStateEnum;
  52. [
  53. object,
  54. uuid(833E4180-AFF7-4AC3-AAC2-9F24C1457BCE),
  55. dual,
  56. oleautomation,
  57. helpstring("ISAFReg Interface"),
  58. pointer_default(unique)
  59. ]
  60. interface ISAFReg : IDispatch
  61. {
  62. //
  63. // Properties
  64. //
  65. [propget, id(DISPID_SAF_SR__EOF )] HRESULT EOF ( [out, retval] VARIANT_BOOL *pVal );
  66. [propget, id(DISPID_SAF_SR__VENDORID )] HRESULT VendorID ( [out, retval] BSTR *pVal );
  67. [propget, id(DISPID_SAF_SR__PRODUCTID )] HRESULT ProductID ( [out, retval] BSTR *pVal );
  68. [propget, id(DISPID_SAF_SR__VENDORNAME )] HRESULT VendorName ( [out, retval] BSTR *pVal );
  69. [propget, id(DISPID_SAF_SR__PRODUCTNAME )] HRESULT ProductName ( [out, retval] BSTR *pVal );
  70. [propget, id(DISPID_SAF_SR__PRODUCTDESCRIPTION)] HRESULT ProductDescription( [out, retval] BSTR *pVal );
  71. [propget, id(DISPID_SAF_SR__VENDORICON )] HRESULT VendorIcon ( [out, retval] BSTR *pVal );
  72. [propget, id(DISPID_SAF_SR__SUPPORTURL )] HRESULT SupportUrl ( [out, retval] BSTR *pVal );
  73. [propget, id(DISPID_SAF_SR__PUBLICKEY )] HRESULT PublicKey ( [out, retval] BSTR *pVal );
  74. [propget, id(DISPID_SAF_SR__USERACCOUNT )] HRESULT UserAccount ( [out, retval] BSTR *pVal );
  75. //
  76. // Methods
  77. //
  78. [id(DISPID_SAF_SR__MOVEFIRST)] HRESULT MoveFirst();
  79. [id(DISPID_SAF_SR__MOVENEXT )] HRESULT MoveNext ();
  80. };
  81. [
  82. object,
  83. uuid(833E4181-AFF7-4AC3-AAC2-9F24C1457BCE),
  84. dual,
  85. oleautomation,
  86. helpstring("ISAFChannel Interface"),
  87. pointer_default(unique)
  88. ]
  89. interface ISAFChannel : IDispatch
  90. {
  91. //
  92. // Properties
  93. //
  94. [propget, id(DISPID_SAF_C__VENDORID )] HRESULT VendorID ( [out, retval] BSTR *pVal );
  95. [propget, id(DISPID_SAF_C__PRODUCTID )] HRESULT ProductID ( [out, retval] BSTR *pVal );
  96. [propget, id(DISPID_SAF_C__VENDORNAME )] HRESULT VendorName ( [out, retval] BSTR *pVal );
  97. [propget, id(DISPID_SAF_C__PRODUCTNAME )] HRESULT ProductName ( [out, retval] BSTR *pVal );
  98. [propget, id(DISPID_SAF_C__DESCRIPTION )] HRESULT Description ( [out, retval] BSTR *pVal );
  99. [propget, id(DISPID_SAF_C__VENDORDIRECTORY)] HRESULT VendorDirectory( [out, retval] BSTR *pVal );
  100. [propget, id(DISPID_SAF_C__SECURITY )] HRESULT Security ( [out, retval] IPCHSecurityDescriptor* *pVal );
  101. [propput, id(DISPID_SAF_C__SECURITY )] HRESULT Security ( [in] IPCHSecurityDescriptor* newVal );
  102. [propget, id(DISPID_SAF_C__NOTIFICATION )] HRESULT Notification ( [out, retval] BSTR *pVal );
  103. [propput, id(DISPID_SAF_C__NOTIFICATION )] HRESULT Notification ( [in] BSTR newVal);
  104. //
  105. // Methods
  106. //
  107. [id(DISPID_SAF_C__INCIDENTS )] HRESULT Incidents( [in] IncidentCollectionOptionEnum opt, [out, retval] IPCHCollection* *ppVal );
  108. [id(DISPID_SAF_C__RECORDINCIDENT)] HRESULT RecordIncident( [in ] BSTR bstrDisplay ,
  109. [in ] BSTR bstrURL ,
  110. [in, optional] VARIANT vProgress ,
  111. [in, optional] VARIANT vXMLDataFile ,
  112. [in, optional] VARIANT vXMLBlob ,
  113. [out,retval ] ISAFIncidentItem* *pVal );
  114. };
  115. [
  116. object,
  117. uuid(833E4182-AFF7-4AC3-AAC2-9F24C1457BCE),
  118. dual,
  119. oleautomation,
  120. helpstring("ISAFIncidentItem Interface"),
  121. pointer_default(unique)
  122. ]
  123. interface ISAFIncidentItem : IDispatch
  124. {
  125. //
  126. // Properties
  127. //
  128. [propget, id(DISPID_SAF_II__DISPLAYSTRING)] HRESULT DisplayString( [out, retval] BSTR *pVal );
  129. [propput, id(DISPID_SAF_II__DISPLAYSTRING)] HRESULT DisplayString( [in] BSTR newVal );
  130. [propget, id(DISPID_SAF_II__URL )] HRESULT URL ( [out, retval] BSTR *pVal );
  131. [propput, id(DISPID_SAF_II__URL )] HRESULT URL ( [in] BSTR newVal );
  132. [propget, id(DISPID_SAF_II__PROGRESS )] HRESULT Progress ( [out, retval] BSTR *pVal );
  133. [propput, id(DISPID_SAF_II__PROGRESS )] HRESULT Progress ( [in] BSTR newVal );
  134. [propget, id(DISPID_SAF_II__XMLDATAFILE )] HRESULT XMLDataFile ( [out, retval] BSTR *pVal );
  135. [propput, id(DISPID_SAF_II__XMLDATAFILE )] HRESULT XMLDataFile ( [in] BSTR newVal );
  136. [propget, id(DISPID_SAF_II__XMLBLOB )] HRESULT XMLBlob ( [out, retval] BSTR *pVal );
  137. [propput, id(DISPID_SAF_II__XMLBLOB )] HRESULT XMLBlob ( [in] BSTR newVal );
  138. [propget, id(DISPID_SAF_II__CREATIONTIME )] HRESULT CreationTime ( [out, retval] DATE *pVal );
  139. [propget, id(DISPID_SAF_II__CHANGEDTIME )] HRESULT ChangedTime ( [out, retval] DATE *pVal );
  140. [propget, id(DISPID_SAF_II__CLOSEDTIME )] HRESULT ClosedTime ( [out, retval] DATE *pVal );
  141. [propget, id(DISPID_SAF_II__STATUS )] HRESULT Status ( [out, retval] IncidentStatusEnum *pVal );
  142. [propget, id(DISPID_SAF_II__SECURITY )] HRESULT Security ( [out, retval] IPCHSecurityDescriptor* *pVal );
  143. [propput, id(DISPID_SAF_II__SECURITY )] HRESULT Security ( [in] IPCHSecurityDescriptor* newVal );
  144. [propget, id(DISPID_SAF_II__OWNER )] HRESULT Owner ( [out, retval] BSTR *pVal );
  145. //
  146. // Methods
  147. //
  148. [id(DISPID_SAF_II__CLOSEINCIDENTITEM )] HRESULT CloseIncidentItem ();
  149. [id(DISPID_SAF_II__DELETEINCIDENTITEM)] HRESULT DeleteIncidentItem();
  150. };
  151. ///////////////////////////////////////////////////////////////////////////////
  152. ///////////////////////////////////////////////////////////////////////////////
  153. typedef [v1_enum] enum tagEUploadType {
  154. eutBug = 0x00000000,
  155. eutEscalated = 0x00000001,
  156. eutNonEscalated = 0x00000002,
  157. } EUploadType;
  158. [
  159. object,
  160. uuid(833E4183-AFF7-4AC3-AAC2-9F24C1457BCE),
  161. dual,
  162. oleautomation,
  163. helpstring("ISAFIncident Interface"),
  164. pointer_default(unique)
  165. ]
  166. interface ISAFIncident : IDispatch
  167. {
  168. //
  169. // Properties
  170. //
  171. [propget, id(DISPID_SAF_INC__MISC )] HRESULT Misc ( [out, retval] IDispatch* *ppdispDict );
  172. [propput, id(DISPID_SAF_INC__SELFHELPTRACE )] HRESULT SelfHelpTrace ( [in] IUnknown *punkStr );
  173. [propput, id(DISPID_SAF_INC__MACHINEHISTORY )] HRESULT MachineHistory ( [in] IUnknown *punkStm );
  174. [propput, id(DISPID_SAF_INC__MACHINESNAPSHOT )] HRESULT MachineSnapshot ( [in] IUnknown *punkStm );
  175. [propget, id(DISPID_SAF_INC__PROBLEMDESCRIPTION)] HRESULT ProblemDescription( [out, retval] BSTR *pbstrVal );
  176. [propput, id(DISPID_SAF_INC__PROBLEMDESCRIPTION)] HRESULT ProblemDescription( [in] BSTR bstrVal );
  177. [propget, id(DISPID_SAF_INC__PRODUCTNAME )] HRESULT ProductName ( [out, retval] BSTR *pbstrVal );
  178. [propput, id(DISPID_SAF_INC__PRODUCTNAME )] HRESULT ProductName ( [in] BSTR bstrVal );
  179. [propget, id(DISPID_SAF_INC__PRODUCTID )] HRESULT ProductID ( [out, retval] BSTR *pbstrVal );
  180. [propput, id(DISPID_SAF_INC__PRODUCTID )] HRESULT ProductID ( [in] BSTR bstrVal );
  181. [propget, id(DISPID_SAF_INC__USERNAME )] HRESULT UserName ( [out, retval] BSTR *pbstrVal );
  182. [propput, id(DISPID_SAF_INC__USERNAME )] HRESULT UserName ( [in] BSTR bstrVal );
  183. [propget, id(DISPID_SAF_INC__UPLOADTYPE )] HRESULT UploadType ( [out, retval] EUploadType *peut );
  184. [propput, id(DISPID_SAF_INC__UPLOADTYPE )] HRESULT UploadType ( [in] EUploadType eut );
  185. [propget, id(DISPID_SAF_INC__INCIDENTXSL )] HRESULT IncidentXSL ( [out, retval] BSTR *pbstrVal );
  186. [propput, id(DISPID_SAF_INC__INCIDENTXSL )] HRESULT IncidentXSL ( [in] BSTR bstrVal );
  187. // Salem Changes
  188. [propget, id(DISPID_SAF_INC__RCREQUESTED )] HRESULT RCRequested ( [out, retval] VARIANT_BOOL *pVal );
  189. [propput, id(DISPID_SAF_INC__RCREQUESTED )] HRESULT RCRequested ( [in] VARIANT_BOOL Val );
  190. [propget, id(DISPID_SAF_INC__RCENCRYPTED )] HRESULT RCTicketEncrypted ( [out, retval] VARIANT_BOOL *pVal );
  191. [propput, id(DISPID_SAF_INC__RCENCRYPTED )] HRESULT RCTicketEncrypted ( [in] VARIANT_BOOL Val );
  192. [propget, id(DISPID_SAF_INC__RCTICKET )] HRESULT RCTicket ( [out, retval] BSTR *pbstrVal );
  193. [propput, id(DISPID_SAF_INC__RCTICKET )] HRESULT RCTicket ( [in] BSTR bstrVal );
  194. [propget, id(DISPID_SAF_INC__STARTPAGE )] HRESULT StartPage ( [out, retval] BSTR *pbstrVal );
  195. [propput, id(DISPID_SAF_INC__STARTPAGE )] HRESULT StartPage ( [in] BSTR bstrVal );
  196. //
  197. // Methods
  198. //
  199. [id(DISPID_SAF_INC__LOADFROMSTREAM)] HRESULT LoadFromStream( [in] IUnknown* punkStm );
  200. [id(DISPID_SAF_INC__SAVETOSTREAM )] HRESULT SaveToStream ( [out, retval] IUnknown* *ppunkStm );
  201. [id(DISPID_SAF_INC__LOAD )] HRESULT Load ( [in] BSTR bstrFileName );
  202. [id(DISPID_SAF_INC__SAVE )] HRESULT Save ( [in] BSTR bstrFileName );
  203. [id(DISPID_SAF_INC__GETXMLASSTREAM)] HRESULT GetXMLAsStream( [out, retval] IUnknown* *ppunkStm );
  204. [id(DISPID_SAF_INC__GETXML )] HRESULT GetXML ( [in] BSTR bstrFileName );
  205. [id(DISPID_SAF_INC__CLOSERAINCIDENT)] HRESULT CloseRemoteAssistanceIncident( );
  206. // Methods to load incident from XML.
  207. [id(DISPID_SAF_INC__LOADFROMXMLSTREAM )] HRESULT LoadFromXMLStream ( [in] IUnknown* punkStm );
  208. [id(DISPID_SAF_INC__LOADFROMXMLFILE )] HRESULT LoadFromXMLFile ( [in] BSTR bstrFileName );
  209. [id(DISPID_SAF_INC__LOADFROMXMLSTRING )] HRESULT LoadFromXMLString ( [in] BSTR bstrXMLBlob );
  210. };
  211. ////////////////////////////////////////////////////////////////////////////////
  212. ////////////////////////////////////////////////////////////////////////////////
  213. typedef [v1_enum] enum tagDC_STATUS {
  214. DC_NOTACTIVE = 0x00000000, // Status before first ExecuteXXXX() call.
  215. DC_COLLECTING = 0x00000001, // Status after ExecuteXXXX() call.
  216. DC_COMPARING = 0x00000005, // Status after CompareSnapshots() call.
  217. DC_FAILED = 0x00000002, // Status after failure (server deny, ect.)
  218. DC_COMPLETED = 0x00000003, // Status after successful data collection.
  219. DC_NODELTA = 0x00000004, // No delta has been generated from the comparison.
  220. } DC_STATUS;
  221. [
  222. object,
  223. uuid(833E4190-AFF7-4AC3-AAC2-9F24C1457BCE),
  224. dual,
  225. oleautomation,
  226. helpstring("ISAFDataCollection Interface"),
  227. pointer_default(unique)
  228. ]
  229. interface ISAFDataCollection : IDispatch
  230. {
  231. //
  232. // Properties
  233. //
  234. [propget, id(DISPID_SAF_DC__STATUS )] HRESULT Status ( [out, retval] DC_STATUS *pVal );
  235. [propget, id(DISPID_SAF_DC__PERCENTDONE )] HRESULT PercentDone ( [out, retval] long *pVal );
  236. [propget, id(DISPID_SAF_DC__ERRORCODE )] HRESULT ErrorCode ( [out, retval] long *pVal );
  237. [propget, id(DISPID_SAF_DC__MACHINEDATA_DATASPEC )] HRESULT MachineData_DataSpec ( [out, retval] BSTR *pVal );
  238. [propput, id(DISPID_SAF_DC__MACHINEDATA_DATASPEC )] HRESULT MachineData_DataSpec ( [in] BSTR newVal );
  239. [propget, id(DISPID_SAF_DC__HISTORY_DATASPEC )] HRESULT History_DataSpec ( [out, retval] BSTR *pVal );
  240. [propput, id(DISPID_SAF_DC__HISTORY_DATASPEC )] HRESULT History_DataSpec ( [in] BSTR newVal );
  241. [propget, id(DISPID_SAF_DC__HISTORY_MAXDELTAS )] HRESULT History_MaxDeltas ( [out, retval] long *pVal );
  242. [propput, id(DISPID_SAF_DC__HISTORY_MAXDELTAS )] HRESULT History_MaxDeltas ( [in] long newVal );
  243. [propget, id(DISPID_SAF_DC__HISTORY_MAXSUPPORTEDDELTAS)] HRESULT History_MaxSupportedDeltas( [out, retval] long *pVal );
  244. [propput, id(DISPID_SAF_DC__ONSTATUSCHANGE )] HRESULT onStatusChange ( [in] IDispatch* function );
  245. [propput, id(DISPID_SAF_DC__ONPROGRESS )] HRESULT onProgress ( [in] IDispatch* function );
  246. [propput, id(DISPID_SAF_DC__ONCOMPLETE )] HRESULT onComplete ( [in] IDispatch* function );
  247. [propget, id(DISPID_SAF_DC__REPORTS )] HRESULT Reports ( [out, retval] IPCHCollection* *ppC );
  248. //
  249. // Methods
  250. //
  251. [id(DISPID_SAF_DC__COMPARE_SNAPSHOTS)] HRESULT CompareSnapshots( [in] BSTR bstrFilenameT0, [in] BSTR bstrFilenameT1, [in] BSTR bstrFilenameDiff );
  252. [id(DISPID_SAF_DC__EXECUTESYNC )] HRESULT ExecuteSync ();
  253. [id(DISPID_SAF_DC__EXECUTEASYNC)] HRESULT ExecuteAsync();
  254. [id(DISPID_SAF_DC__ABORT )] HRESULT Abort ();
  255. [id(DISPID_SAF_DC__MACHINEDATA_GETSTREAM)] HRESULT MachineData_GetStream( [out, retval] IUnknown* *stream );
  256. [id(DISPID_SAF_DC__HISTORY_GETSTREAM )] HRESULT History_GetStream ( [out, retval] IUnknown* *stream );
  257. };
  258. [
  259. uuid(833E4191-AFF7-4AC3-AAC2-9F24C1457BCE),
  260. helpstring("DSAFDataCollectionEvents Interface")
  261. ]
  262. dispinterface DSAFDataCollectionEvents
  263. {
  264. properties:
  265. methods:
  266. [id(DISPID_SAF_DCE__ONSTATUSCHANGE)] HRESULT onStatusChange( ISAFDataCollection* pchdc, long lStatus );
  267. [id(DISPID_SAF_DCE__ONPROGRESS )] HRESULT onProgress ( ISAFDataCollection* pchdc, long lDone, long lTotal );
  268. [id(DISPID_SAF_DCE__ONCOMPLETE )] HRESULT onComplete ( ISAFDataCollection* pchdc, HRESULT hrRes );
  269. };
  270. [
  271. object,
  272. uuid(833E4192-AFF7-4AC3-AAC2-9F24C1457BCE),
  273. dual,
  274. oleautomation,
  275. helpstring("ISAFDataCollectionReport Interface"),
  276. pointer_default(unique)
  277. ]
  278. interface ISAFDataCollectionReport : IDispatch
  279. {
  280. //
  281. // Properties
  282. //
  283. [propget, id(DISPID_SAF_DCR__NAMESPACE )] HRESULT Namespace ( [out, retval] BSTR *pVal );
  284. [propget, id(DISPID_SAF_DCR__CLASS )] HRESULT Class ( [out, retval] BSTR *pVal );
  285. [propget, id(DISPID_SAF_DCR__WQL )] HRESULT WQL ( [out, retval] BSTR *pVal );
  286. [propget, id(DISPID_SAF_DCR__ERRORCODE )] HRESULT ErrorCode ( [out, retval] long *pVal );
  287. [propget, id(DISPID_SAF_DCR__DESCRIPTION)] HRESULT Description( [out, retval] BSTR *pVal );
  288. };
  289. ///////////////////////////////////////////////////////////////////////////////
  290. ///////////////////////////////////////////////////////////////////////////////
  291. ///////////////////////////////////////////////////////////////////////////////
  292. typedef [v1_enum] enum tagCB_STATUS {
  293. CB_NOTACTIVE = 0x00000000,
  294. CB_COMPRESSING = 0x00000001,
  295. CB_COMPLETED = 0x00000002,
  296. CB_FAILED = 0x00000003,
  297. } CB_STATUS;
  298. [
  299. object,
  300. uuid(833E41A0-AFF7-4AC3-AAC2-9F24C1457BCE),
  301. dual,
  302. oleautomation,
  303. helpstring("ISAFCabinet Interface"),
  304. pointer_default(unique)
  305. ]
  306. interface ISAFCabinet : IDispatch
  307. {
  308. //
  309. // Properties
  310. //
  311. [propput, id(DISPID_SAF_CB__IGNOREMISSINGFILES)] HRESULT IgnoreMissingFiles( [in] VARIANT_BOOL fIgnoreMissingFiles );
  312. [propput, id(DISPID_SAF_CB__ONPROGRESSFILES )] HRESULT onProgressFiles ( [in] IDispatch* function );
  313. [propput, id(DISPID_SAF_CB__ONPROGRESSBYTES )] HRESULT onProgressBytes ( [in] IDispatch* function );
  314. [propput, id(DISPID_SAF_CB__ONCOMPLETE )] HRESULT onComplete ( [in] IDispatch* function );
  315. [propget, id(DISPID_SAF_CB__STATUS )] HRESULT Status ( [out, retval] CB_STATUS *pVal );
  316. [propget, id(DISPID_SAF_CB__ERRORCODE )] HRESULT ErrorCode ( [out, retval] long *pVal );
  317. //
  318. // Methods
  319. //
  320. [id(DISPID_SAF_CB__ADDFILE )] HRESULT AddFile ( [in] BSTR bstrFilePath , [in, optional] VARIANT vFileName );
  321. [id(DISPID_SAF_CB__COMPRESS)] HRESULT Compress( [in] BSTR bstrCabinetFile );
  322. [id(DISPID_SAF_CB__ABORT )] HRESULT Abort ();
  323. };
  324. [
  325. uuid(833E41A1-AFF7-4AC3-AAC2-9F24C1457BCE),
  326. helpstring("DSAFCabinetEvents Interface")
  327. ]
  328. dispinterface DSAFCabinetEvents
  329. {
  330. properties:
  331. methods:
  332. [id(DISPID_SAF_CBE__ONPROGRESSFILES)] HRESULT onProgressFiles( ISAFCabinet* hcpcb, BSTR bstrFile, long lDone, long lTotal );
  333. [id(DISPID_SAF_CBE__ONPROGRESSBYTES)] HRESULT onProgressBytes( ISAFCabinet* hcpcb, long lDone, long lTotal );
  334. [id(DISPID_SAF_CBE__ONCOMPLETE )] HRESULT onComplete ( ISAFCabinet* hcpcb, HRESULT hrRes );
  335. };
  336. // Encryption
  337. [
  338. object,
  339. uuid(833E41A8-AFF7-4AC3-AAC2-9F24C1457BCE),
  340. dual,
  341. oleautomation,
  342. helpstring("ISAFEncrypt Interface"),
  343. pointer_default(unique)
  344. ]
  345. interface ISAFEncrypt : IDispatch
  346. {
  347. //
  348. // Properties
  349. //
  350. // TODO? Need an enumerator for the different available encryption types.
  351. [propget, id(DISPID_SAF_ENC__ENCRYPTIONTYPE )] HRESULT EncryptionType( [out, retval] long *pLongVal );
  352. [propput, id(DISPID_SAF_ENC__ENCRYPTIONTYPE )] HRESULT EncryptionType( [in] long LongVal );
  353. //
  354. // Methods
  355. //
  356. [id(DISPID_SAF_ENC__ENCRYPTSTRING )] HRESULT EncryptString( [in] BSTR bstrEncryptionkey, [in] BSTR bstrInputString, [out, retval] BSTR *bstrEncryptedString );
  357. [id(DISPID_SAF_ENC__DECRYPTSTRING )] HRESULT DecryptString( [in] BSTR bstrEncryptionkey, [in] BSTR bstrInputString, [out, retval] BSTR *bstrDecryptedString );
  358. [id(DISPID_SAF_ENC__ENCRYPTFILE )] HRESULT EncryptFile ( [in] BSTR bstrEncryptionKey, [in] BSTR bstrInputFile, [in ] BSTR bstrEncryptedFile );
  359. [id(DISPID_SAF_ENC__DECRYPTFILE )] HRESULT DecryptFile ( [in] BSTR bstrEncryptionKey, [in] BSTR bstrInputFile, [in ] BSTR bstrDecryptedFile );
  360. [id(DISPID_SAF_ENC__ENCRYPTSTREAM )] HRESULT EncryptStream( [in] BSTR bstrEncryptionKey, [in] IUnknown *punkInStm, [out, retval] IUnknown* *ppunkOutStm );
  361. [id(DISPID_SAF_ENC__DECRYPTSTREAM )] HRESULT DecryptStream( [in] BSTR bstrEncryptionKey, [in] IUnknown *punkInStm, [out, retval] IUnknown* *ppunkOutStm );
  362. };
  363. // Following interfaces For Unsolicited Remote Control
  364. [
  365. object,
  366. uuid(833E41A9-AFF7-4AC3-AAC2-9F24C1457BCE),
  367. dual,
  368. oleautomation,
  369. helpstring("ISAFUser Interface"),
  370. pointer_default(unique)
  371. ]
  372. interface ISAFUser : IDispatch
  373. {
  374. //
  375. // Properties
  376. //
  377. [propget, id(DISPID_SAF_USER__DOMAINNAME)] HRESULT DomainName( [out, retval] BSTR *pVal );
  378. [propget, id(DISPID_SAF_USER__USERNAME )] HRESULT UserName ( [out, retval] BSTR *pVal );
  379. [propput, id(DISPID_SAF_USER__DOMAINNAME)] HRESULT DomainName( [in ] BSTR pVal );
  380. [propput, id(DISPID_SAF_USER__USERNAME )] HRESULT UserName ( [in ] BSTR pVal );
  381. };
  382. [
  383. object,
  384. uuid(833E41AA-AFF7-4AC3-AAC2-9F24C1457BCE),
  385. dual,
  386. oleautomation,
  387. helpstring("ISAFSession Interface"),
  388. pointer_default(unique)
  389. ]
  390. interface ISAFSession : IDispatch
  391. {
  392. //Properties
  393. [propget, id(DISPID_SAF_SESS__SESSIONID )] HRESULT SessionID ( [out, retval] DWORD *pVal );
  394. [propput, id(DISPID_SAF_SESS__SESSIONID )] HRESULT SessionID ( [in ] DWORD pVal );
  395. [propget, id(DISPID_SAF_SESS__SESSIONSTATE)] HRESULT SessionState( [out, retval] SessionStateEnum *pVal );
  396. [propput, id(DISPID_SAF_SESS__SESSIONSTATE)] HRESULT SessionState( [in ] SessionStateEnum pVal );
  397. [propget, id(DISPID_SAF_SESS__DOMAINNAME )] HRESULT DomainName ( [out, retval] BSTR *pVal );
  398. [propput, id(DISPID_SAF_SESS__DOMAINNAME )] HRESULT DomainName ( [in ] BSTR pVal );
  399. [propget, id(DISPID_SAF_SESS__USERNAME )] HRESULT UserName ( [out, retval] BSTR *pVal );
  400. [propput, id(DISPID_SAF_SESS__USERNAME )] HRESULT UserName ( [in ] BSTR pVal );
  401. };
  402. [
  403. object,
  404. uuid(833E41AB-AFF7-4AC3-AAC2-9F24C1457BCE),
  405. dual,
  406. oleautomation,
  407. helpstring("ISAFRemoteConnectionData Interface"),
  408. pointer_default(unique)
  409. ]
  410. interface ISAFRemoteConnectionData : IDispatch
  411. {
  412. //
  413. // Methods
  414. //
  415. [id(DISPID_SAF_RCD__CONNECTIONPARMS)] HRESULT ConnectionParms( [in ] BSTR bstrServerName ,
  416. [in ] BSTR bstrUserName ,
  417. [in ] BSTR bstrDomainName ,
  418. [in ] long lSessionID ,
  419. [in ] BSTR bstrUserHelpBlob ,
  420. [out, retval] BSTR *bstrConnectionString );
  421. [id(DISPID_SAF_RCD__USERS )] HRESULT Users ( [out, retval] IPCHCollection* *ppUsers );
  422. [id(DISPID_SAF_RCD__SESSIONS)] HRESULT Sessions( [in, optional] VARIANT vUserName, [in, optional] VARIANT vDomainName, [out, retval] IPCHCollection* *ppSessions );
  423. [id(DISPID_SAF_RCD__MODEMCONNECTED)] HRESULT ModemConnected( [in ] BSTR bstrServerName ,
  424. [out, retval] VARIANT_BOOL *fModemConnected);
  425. };
  426. [
  427. object,
  428. uuid(833E41AC-AFF7-4AC3-AAC2-9F24C1457BCE),
  429. dual,
  430. oleautomation,
  431. helpstring("ISAFRemoteDesktopConnection Interface"),
  432. pointer_default(unique)
  433. ]
  434. interface ISAFRemoteDesktopConnection : IDispatch
  435. {
  436. //
  437. // Methods
  438. //
  439. [id(DISPID_SAF_RDC__CONNECTREMOTEDESKTOP)] HRESULT ConnectRemoteDesktop( [in] BSTR ServerName, [out, retval] ISAFRemoteConnectionData* *ppRCD );
  440. };
  441. [
  442. object,
  443. uuid(833E41B0-AFF7-4AC3-AAC2-9F24C1457BCE),
  444. dual,
  445. oleautomation,
  446. helpstring("ISAFChannelNotifyIncident Interface"),
  447. pointer_default(unique)
  448. ]
  449. interface ISAFChannelNotifyIncident : IDispatch
  450. {
  451. [id(DISPID_SAF_CNOTI_ADD), helpstring("method onIncidentAdded")] HRESULT onIncidentAdded(ISAFChannel * ch, ISAFIncidentItem * inc, long n);
  452. [id(DISPID_SAF_CNOTI_REMOVE), helpstring("method onIncidentRemoved")] HRESULT onIncidentRemoved(ISAFChannel * ch, ISAFIncidentItem * inc, long n);
  453. [id(DISPID_SAF_CNOTI_UPDATE), helpstring("method onIncidentUpdated")] HRESULT onIncidentUpdated(ISAFChannel * ch, ISAFIncidentItem * inc, long n);
  454. [id(DISPID_SAF_CNOTI_CHUPDATE), helpstring("method onChannelUpdated")] HRESULT onChannelUpdated(ISAFChannel * ch, long dwCode, long n);
  455. };