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.

522 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. // Methods to load incident from XML.
  206. [id(DISPID_SAF_INC__LOADFROMXMLSTREAM )] HRESULT LoadFromXMLStream ( [in] IUnknown* punkStm );
  207. [id(DISPID_SAF_INC__LOADFROMXMLFILE )] HRESULT LoadFromXMLFile ( [in] BSTR bstrFileName );
  208. [id(DISPID_SAF_INC__LOADFROMXMLSTRING )] HRESULT LoadFromXMLString ( [in] BSTR bstrXMLBlob );
  209. };
  210. ////////////////////////////////////////////////////////////////////////////////
  211. ////////////////////////////////////////////////////////////////////////////////
  212. typedef [v1_enum] enum tagDC_STATUS {
  213. DC_NOTACTIVE = 0x00000000, // Status before first ExecuteXXXX() call.
  214. DC_COLLECTING = 0x00000001, // Status after ExecuteXXXX() call.
  215. DC_COMPARING = 0x00000005, // Status after CompareSnapshots() call.
  216. DC_FAILED = 0x00000002, // Status after failure (server deny, ect.)
  217. DC_COMPLETED = 0x00000003, // Status after successful data collection.
  218. DC_NODELTA = 0x00000004, // No delta has been generated from the comparison.
  219. } DC_STATUS;
  220. [
  221. object,
  222. uuid(833E4190-AFF7-4AC3-AAC2-9F24C1457BCE),
  223. dual,
  224. oleautomation,
  225. helpstring("ISAFDataCollection Interface"),
  226. pointer_default(unique)
  227. ]
  228. interface ISAFDataCollection : IDispatch
  229. {
  230. //
  231. // Properties
  232. //
  233. [propget, id(DISPID_SAF_DC__STATUS )] HRESULT Status ( [out, retval] DC_STATUS *pVal );
  234. [propget, id(DISPID_SAF_DC__PERCENTDONE )] HRESULT PercentDone ( [out, retval] long *pVal );
  235. [propget, id(DISPID_SAF_DC__ERRORCODE )] HRESULT ErrorCode ( [out, retval] long *pVal );
  236. [propget, id(DISPID_SAF_DC__MACHINEDATA_DATASPEC )] HRESULT MachineData_DataSpec ( [out, retval] BSTR *pVal );
  237. [propput, id(DISPID_SAF_DC__MACHINEDATA_DATASPEC )] HRESULT MachineData_DataSpec ( [in] BSTR newVal );
  238. [propget, id(DISPID_SAF_DC__HISTORY_DATASPEC )] HRESULT History_DataSpec ( [out, retval] BSTR *pVal );
  239. [propput, id(DISPID_SAF_DC__HISTORY_DATASPEC )] HRESULT History_DataSpec ( [in] BSTR newVal );
  240. [propget, id(DISPID_SAF_DC__HISTORY_MAXDELTAS )] HRESULT History_MaxDeltas ( [out, retval] long *pVal );
  241. [propput, id(DISPID_SAF_DC__HISTORY_MAXDELTAS )] HRESULT History_MaxDeltas ( [in] long newVal );
  242. [propget, id(DISPID_SAF_DC__HISTORY_MAXSUPPORTEDDELTAS)] HRESULT History_MaxSupportedDeltas( [out, retval] long *pVal );
  243. [propput, id(DISPID_SAF_DC__ONSTATUSCHANGE )] HRESULT onStatusChange ( [in] IDispatch* function );
  244. [propput, id(DISPID_SAF_DC__ONPROGRESS )] HRESULT onProgress ( [in] IDispatch* function );
  245. [propput, id(DISPID_SAF_DC__ONCOMPLETE )] HRESULT onComplete ( [in] IDispatch* function );
  246. [propget, id(DISPID_SAF_DC__REPORTS )] HRESULT Reports ( [out, retval] IPCHCollection* *ppC );
  247. //
  248. // Methods
  249. //
  250. [id(DISPID_SAF_DC__COMPARE_SNAPSHOTS)] HRESULT CompareSnapshots( [in] BSTR bstrFilenameT0, [in] BSTR bstrFilenameT1, [in] BSTR bstrFilenameDiff );
  251. [id(DISPID_SAF_DC__EXECUTESYNC )] HRESULT ExecuteSync ();
  252. [id(DISPID_SAF_DC__EXECUTEASYNC)] HRESULT ExecuteAsync();
  253. [id(DISPID_SAF_DC__ABORT )] HRESULT Abort ();
  254. [id(DISPID_SAF_DC__MACHINEDATA_GETSTREAM)] HRESULT MachineData_GetStream( [out, retval] IUnknown* *stream );
  255. [id(DISPID_SAF_DC__HISTORY_GETSTREAM )] HRESULT History_GetStream ( [out, retval] IUnknown* *stream );
  256. };
  257. [
  258. uuid(833E4191-AFF7-4AC3-AAC2-9F24C1457BCE),
  259. helpstring("DSAFDataCollectionEvents Interface")
  260. ]
  261. dispinterface DSAFDataCollectionEvents
  262. {
  263. properties:
  264. methods:
  265. [id(DISPID_SAF_DCE__ONSTATUSCHANGE)] HRESULT onStatusChange( ISAFDataCollection* pchdc, long lStatus );
  266. [id(DISPID_SAF_DCE__ONPROGRESS )] HRESULT onProgress ( ISAFDataCollection* pchdc, long lDone, long lTotal );
  267. [id(DISPID_SAF_DCE__ONCOMPLETE )] HRESULT onComplete ( ISAFDataCollection* pchdc, HRESULT hrRes );
  268. };
  269. [
  270. object,
  271. uuid(833E4192-AFF7-4AC3-AAC2-9F24C1457BCE),
  272. dual,
  273. oleautomation,
  274. helpstring("ISAFDataCollectionReport Interface"),
  275. pointer_default(unique)
  276. ]
  277. interface ISAFDataCollectionReport : IDispatch
  278. {
  279. //
  280. // Properties
  281. //
  282. [propget, id(DISPID_SAF_DCR__NAMESPACE )] HRESULT Namespace ( [out, retval] BSTR *pVal );
  283. [propget, id(DISPID_SAF_DCR__CLASS )] HRESULT Class ( [out, retval] BSTR *pVal );
  284. [propget, id(DISPID_SAF_DCR__WQL )] HRESULT WQL ( [out, retval] BSTR *pVal );
  285. [propget, id(DISPID_SAF_DCR__ERRORCODE )] HRESULT ErrorCode ( [out, retval] long *pVal );
  286. [propget, id(DISPID_SAF_DCR__DESCRIPTION)] HRESULT Description( [out, retval] BSTR *pVal );
  287. };
  288. ///////////////////////////////////////////////////////////////////////////////
  289. ///////////////////////////////////////////////////////////////////////////////
  290. ///////////////////////////////////////////////////////////////////////////////
  291. typedef [v1_enum] enum tagCB_STATUS {
  292. CB_NOTACTIVE = 0x00000000,
  293. CB_COMPRESSING = 0x00000001,
  294. CB_COMPLETED = 0x00000002,
  295. CB_FAILED = 0x00000003,
  296. } CB_STATUS;
  297. [
  298. object,
  299. uuid(833E41A0-AFF7-4AC3-AAC2-9F24C1457BCE),
  300. dual,
  301. oleautomation,
  302. helpstring("ISAFCabinet Interface"),
  303. pointer_default(unique)
  304. ]
  305. interface ISAFCabinet : IDispatch
  306. {
  307. //
  308. // Properties
  309. //
  310. [propput, id(DISPID_SAF_CB__IGNOREMISSINGFILES)] HRESULT IgnoreMissingFiles( [in] VARIANT_BOOL fIgnoreMissingFiles );
  311. [propput, id(DISPID_SAF_CB__ONPROGRESSFILES )] HRESULT onProgressFiles ( [in] IDispatch* function );
  312. [propput, id(DISPID_SAF_CB__ONPROGRESSBYTES )] HRESULT onProgressBytes ( [in] IDispatch* function );
  313. [propput, id(DISPID_SAF_CB__ONCOMPLETE )] HRESULT onComplete ( [in] IDispatch* function );
  314. [propget, id(DISPID_SAF_CB__STATUS )] HRESULT Status ( [out, retval] CB_STATUS *pVal );
  315. [propget, id(DISPID_SAF_CB__ERRORCODE )] HRESULT ErrorCode ( [out, retval] long *pVal );
  316. //
  317. // Methods
  318. //
  319. [id(DISPID_SAF_CB__ADDFILE )] HRESULT AddFile ( [in] BSTR bstrFilePath , [in, optional] VARIANT vFileName );
  320. [id(DISPID_SAF_CB__COMPRESS)] HRESULT Compress( [in] BSTR bstrCabinetFile );
  321. [id(DISPID_SAF_CB__ABORT )] HRESULT Abort ();
  322. };
  323. [
  324. uuid(833E41A1-AFF7-4AC3-AAC2-9F24C1457BCE),
  325. helpstring("DSAFCabinetEvents Interface")
  326. ]
  327. dispinterface DSAFCabinetEvents
  328. {
  329. properties:
  330. methods:
  331. [id(DISPID_SAF_CBE__ONPROGRESSFILES)] HRESULT onProgressFiles( ISAFCabinet* hcpcb, BSTR bstrFile, long lDone, long lTotal );
  332. [id(DISPID_SAF_CBE__ONPROGRESSBYTES)] HRESULT onProgressBytes( ISAFCabinet* hcpcb, long lDone, long lTotal );
  333. [id(DISPID_SAF_CBE__ONCOMPLETE )] HRESULT onComplete ( ISAFCabinet* hcpcb, HRESULT hrRes );
  334. };
  335. // Encryption
  336. [
  337. object,
  338. uuid(833E41A8-AFF7-4AC3-AAC2-9F24C1457BCE),
  339. dual,
  340. oleautomation,
  341. helpstring("ISAFEncrypt Interface"),
  342. pointer_default(unique)
  343. ]
  344. interface ISAFEncrypt : IDispatch
  345. {
  346. //
  347. // Properties
  348. //
  349. // TODO? Need an enumerator for the different available encryption types.
  350. [propget, id(DISPID_SAF_ENC__ENCRYPTIONTYPE )] HRESULT EncryptionType( [out, retval] long *pLongVal );
  351. [propput, id(DISPID_SAF_ENC__ENCRYPTIONTYPE )] HRESULT EncryptionType( [in] long LongVal );
  352. //
  353. // Methods
  354. //
  355. [id(DISPID_SAF_ENC__ENCRYPTSTRING )] HRESULT EncryptString( [in] BSTR bstrEncryptionkey, [in] BSTR bstrInputString, [out, retval] BSTR *bstrEncryptedString );
  356. [id(DISPID_SAF_ENC__DECRYPTSTRING )] HRESULT DecryptString( [in] BSTR bstrEncryptionkey, [in] BSTR bstrInputString, [out, retval] BSTR *bstrDecryptedString );
  357. [id(DISPID_SAF_ENC__ENCRYPTFILE )] HRESULT EncryptFile ( [in] BSTR bstrEncryptionKey, [in] BSTR bstrInputFile, [in ] BSTR bstrEncryptedFile );
  358. [id(DISPID_SAF_ENC__DECRYPTFILE )] HRESULT DecryptFile ( [in] BSTR bstrEncryptionKey, [in] BSTR bstrInputFile, [in ] BSTR bstrDecryptedFile );
  359. [id(DISPID_SAF_ENC__ENCRYPTSTREAM )] HRESULT EncryptStream( [in] BSTR bstrEncryptionKey, [in] IUnknown *punkInStm, [out, retval] IUnknown* *ppunkOutStm );
  360. [id(DISPID_SAF_ENC__DECRYPTSTREAM )] HRESULT DecryptStream( [in] BSTR bstrEncryptionKey, [in] IUnknown *punkInStm, [out, retval] IUnknown* *ppunkOutStm );
  361. };
  362. // Following interfaces For Unsolicited Remote Control
  363. [
  364. object,
  365. uuid(833E41A9-AFF7-4AC3-AAC2-9F24C1457BCE),
  366. dual,
  367. oleautomation,
  368. helpstring("ISAFUser Interface"),
  369. pointer_default(unique)
  370. ]
  371. interface ISAFUser : IDispatch
  372. {
  373. //
  374. // Properties
  375. //
  376. [propget, id(DISPID_SAF_USER__DOMAINNAME)] HRESULT DomainName( [out, retval] BSTR *pVal );
  377. [propget, id(DISPID_SAF_USER__USERNAME )] HRESULT UserName ( [out, retval] BSTR *pVal );
  378. [propput, id(DISPID_SAF_USER__DOMAINNAME)] HRESULT DomainName( [in ] BSTR pVal );
  379. [propput, id(DISPID_SAF_USER__USERNAME )] HRESULT UserName ( [in ] BSTR pVal );
  380. };
  381. [
  382. object,
  383. uuid(833E41AA-AFF7-4AC3-AAC2-9F24C1457BCE),
  384. dual,
  385. oleautomation,
  386. helpstring("ISAFSession Interface"),
  387. pointer_default(unique)
  388. ]
  389. interface ISAFSession : IDispatch
  390. {
  391. //Properties
  392. [propget, id(DISPID_SAF_SESS__SESSIONID )] HRESULT SessionID ( [out, retval] DWORD *pVal );
  393. [propput, id(DISPID_SAF_SESS__SESSIONID )] HRESULT SessionID ( [in ] DWORD pVal );
  394. [propget, id(DISPID_SAF_SESS__SESSIONSTATE)] HRESULT SessionState( [out, retval] SessionStateEnum *pVal );
  395. [propput, id(DISPID_SAF_SESS__SESSIONSTATE)] HRESULT SessionState( [in ] SessionStateEnum pVal );
  396. [propget, id(DISPID_SAF_SESS__DOMAINNAME )] HRESULT DomainName ( [out, retval] BSTR *pVal );
  397. [propput, id(DISPID_SAF_SESS__DOMAINNAME )] HRESULT DomainName ( [in ] BSTR pVal );
  398. [propget, id(DISPID_SAF_SESS__USERNAME )] HRESULT UserName ( [out, retval] BSTR *pVal );
  399. [propput, id(DISPID_SAF_SESS__USERNAME )] HRESULT UserName ( [in ] BSTR pVal );
  400. };
  401. [
  402. object,
  403. uuid(833E41AB-AFF7-4AC3-AAC2-9F24C1457BCE),
  404. dual,
  405. oleautomation,
  406. helpstring("ISAFRemoteConnectionData Interface"),
  407. pointer_default(unique)
  408. ]
  409. interface ISAFRemoteConnectionData : IDispatch
  410. {
  411. //
  412. // Methods
  413. //
  414. [id(DISPID_SAF_RCD__CONNECTIONPARMS)] HRESULT ConnectionParms( [in ] BSTR bstrServerName ,
  415. [in ] BSTR bstrUserName ,
  416. [in ] BSTR bstrDomainName ,
  417. [in ] long lSessionID ,
  418. [in ] BSTR bstrUserHelpBlob ,
  419. [out, retval] BSTR *bstrConnectionString );
  420. [id(DISPID_SAF_RCD__USERS )] HRESULT Users ( [out, retval] IPCHCollection* *ppUsers );
  421. [id(DISPID_SAF_RCD__SESSIONS)] HRESULT Sessions( [in, optional] VARIANT vUserName, [in, optional] VARIANT vDomainName, [out, retval] IPCHCollection* *ppSessions );
  422. };
  423. [
  424. object,
  425. uuid(833E41AC-AFF7-4AC3-AAC2-9F24C1457BCE),
  426. dual,
  427. oleautomation,
  428. helpstring("ISAFRemoteDesktopConnection Interface"),
  429. pointer_default(unique)
  430. ]
  431. interface ISAFRemoteDesktopConnection : IDispatch
  432. {
  433. //
  434. // Methods
  435. //
  436. [id(DISPID_SAF_RDC__CONNECTREMOTEDESKTOP)] HRESULT ConnectRemoteDesktop( [in] BSTR ServerName, [out, retval] ISAFRemoteConnectionData* *ppRCD );
  437. };
  438. [
  439. object,
  440. uuid(833E41B0-AFF7-4AC3-AAC2-9F24C1457BCE),
  441. dual,
  442. oleautomation,
  443. helpstring("ISAFChannelNotifyIncident Interface"),
  444. pointer_default(unique)
  445. ]
  446. interface ISAFChannelNotifyIncident : IDispatch
  447. {
  448. [id(DISPID_SAF_CNOTI_ADD), helpstring("method onIncidentAdded")] HRESULT onIncidentAdded(ISAFChannel * ch, ISAFIncidentItem * inc, long n);
  449. [id(DISPID_SAF_CNOTI_REMOVE), helpstring("method onIncidentRemoved")] HRESULT onIncidentRemoved(ISAFChannel * ch, ISAFIncidentItem * inc, long n);
  450. [id(DISPID_SAF_CNOTI_UPDATE), helpstring("method onIncidentUpdated")] HRESULT onIncidentUpdated(ISAFChannel * ch, ISAFIncidentItem * inc, long n);
  451. [id(DISPID_SAF_CNOTI_CHUPDATE), helpstring("method onChannelUpdated")] HRESULT onChannelUpdated(ISAFChannel * ch, long dwCode, long n);
  452. };