/******************************************************************** Copyright (c) 1999 Microsoft Corporation Module Name: SAF.idl Abstract: This file includes the declaration for all ISAFChannel objects Revision History: Steve Shih created 07/15/99 Kalyani Narlanka Changes to ISAFChannel, ISAFIncidentItem Kalyani Narlanka (kalyanin) 06/28/'00 Added Interface for Encryption Kalyani Narlanka (kalyanin) 9/29/2000 Added Interfaces for Unsolicited Remote Control Juan J. Perez (jperez) Added Interfaces for Voice over IP (ISAFIntercomClient and ISAFIntercomServer) Juan J. Perez (jperez) 01/08/2001 Added Interface (ISAFChannelNotifyIncident) ********************************************************************/ cpp_quote( "#include " ) #include typedef enum { pchIncidentInvalid = 0, pchIncidentOpen = 1, pchIncidentClosed = 2, pchIncidentMax = 3 } IncidentStatusEnum; typedef enum { pchIncidentsInvalid = 0, pchAllIncidents = 1, pchOpenIncidents = 2, pchClosedIncidents = 3, pchAllIncidentsAllUsers = 4, pchOpenIncidentsAllUsers = 5, pchClosedIncidentsAllUsers = 6, pchIncidentsMax = 7 } IncidentCollectionOptionEnum; typedef enum { pchActive = 0, pchConnected = 1, pchConnectQuery = 2, pchShadow = 3, pchDisconnected = 4, pchIdle = 5, pchListen = 6, pchReset = 7, pchDown = 8, pchInit = 9, pchStateInvalid =10 } SessionStateEnum; [ object, uuid(833E4180-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFReg Interface"), pointer_default(unique) ] interface ISAFReg : IDispatch { // // Properties // [propget, id(DISPID_SAF_SR__EOF )] HRESULT EOF ( [out, retval] VARIANT_BOOL *pVal ); [propget, id(DISPID_SAF_SR__VENDORID )] HRESULT VendorID ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_SR__PRODUCTID )] HRESULT ProductID ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_SR__VENDORNAME )] HRESULT VendorName ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_SR__PRODUCTNAME )] HRESULT ProductName ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_SR__PRODUCTDESCRIPTION)] HRESULT ProductDescription( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_SR__VENDORICON )] HRESULT VendorIcon ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_SR__SUPPORTURL )] HRESULT SupportUrl ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_SR__PUBLICKEY )] HRESULT PublicKey ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_SR__USERACCOUNT )] HRESULT UserAccount ( [out, retval] BSTR *pVal ); // // Methods // [id(DISPID_SAF_SR__MOVEFIRST)] HRESULT MoveFirst(); [id(DISPID_SAF_SR__MOVENEXT )] HRESULT MoveNext (); }; [ object, uuid(833E4181-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFChannel Interface"), pointer_default(unique) ] interface ISAFChannel : IDispatch { // // Properties // [propget, id(DISPID_SAF_C__VENDORID )] HRESULT VendorID ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_C__PRODUCTID )] HRESULT ProductID ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_C__VENDORNAME )] HRESULT VendorName ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_C__PRODUCTNAME )] HRESULT ProductName ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_C__DESCRIPTION )] HRESULT Description ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_C__VENDORDIRECTORY)] HRESULT VendorDirectory( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_C__SECURITY )] HRESULT Security ( [out, retval] IPCHSecurityDescriptor* *pVal ); [propput, id(DISPID_SAF_C__SECURITY )] HRESULT Security ( [in] IPCHSecurityDescriptor* newVal ); [propget, id(DISPID_SAF_C__NOTIFICATION )] HRESULT Notification ( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_C__NOTIFICATION )] HRESULT Notification ( [in] BSTR newVal); // // Methods // [id(DISPID_SAF_C__INCIDENTS )] HRESULT Incidents( [in] IncidentCollectionOptionEnum opt, [out, retval] IPCHCollection* *ppVal ); [id(DISPID_SAF_C__RECORDINCIDENT)] HRESULT RecordIncident( [in ] BSTR bstrDisplay , [in ] BSTR bstrURL , [in, optional] VARIANT vProgress , [in, optional] VARIANT vXMLDataFile , [in, optional] VARIANT vXMLBlob , [out,retval ] ISAFIncidentItem* *pVal ); }; [ object, uuid(833E4182-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFIncidentItem Interface"), pointer_default(unique) ] interface ISAFIncidentItem : IDispatch { // // Properties // [propget, id(DISPID_SAF_II__DISPLAYSTRING)] HRESULT DisplayString( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_II__DISPLAYSTRING)] HRESULT DisplayString( [in] BSTR newVal ); [propget, id(DISPID_SAF_II__URL )] HRESULT URL ( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_II__URL )] HRESULT URL ( [in] BSTR newVal ); [propget, id(DISPID_SAF_II__PROGRESS )] HRESULT Progress ( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_II__PROGRESS )] HRESULT Progress ( [in] BSTR newVal ); [propget, id(DISPID_SAF_II__XMLDATAFILE )] HRESULT XMLDataFile ( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_II__XMLDATAFILE )] HRESULT XMLDataFile ( [in] BSTR newVal ); [propget, id(DISPID_SAF_II__XMLBLOB )] HRESULT XMLBlob ( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_II__XMLBLOB )] HRESULT XMLBlob ( [in] BSTR newVal ); [propget, id(DISPID_SAF_II__CREATIONTIME )] HRESULT CreationTime ( [out, retval] DATE *pVal ); [propget, id(DISPID_SAF_II__CHANGEDTIME )] HRESULT ChangedTime ( [out, retval] DATE *pVal ); [propget, id(DISPID_SAF_II__CLOSEDTIME )] HRESULT ClosedTime ( [out, retval] DATE *pVal ); [propget, id(DISPID_SAF_II__STATUS )] HRESULT Status ( [out, retval] IncidentStatusEnum *pVal ); [propget, id(DISPID_SAF_II__SECURITY )] HRESULT Security ( [out, retval] IPCHSecurityDescriptor* *pVal ); [propput, id(DISPID_SAF_II__SECURITY )] HRESULT Security ( [in] IPCHSecurityDescriptor* newVal ); [propget, id(DISPID_SAF_II__OWNER )] HRESULT Owner ( [out, retval] BSTR *pVal ); // // Methods // [id(DISPID_SAF_II__CLOSEINCIDENTITEM )] HRESULT CloseIncidentItem (); [id(DISPID_SAF_II__DELETEINCIDENTITEM)] HRESULT DeleteIncidentItem(); }; /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// typedef [v1_enum] enum tagEUploadType { eutBug = 0x00000000, eutEscalated = 0x00000001, eutNonEscalated = 0x00000002, } EUploadType; [ object, uuid(833E4183-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFIncident Interface"), pointer_default(unique) ] interface ISAFIncident : IDispatch { // // Properties // [propget, id(DISPID_SAF_INC__MISC )] HRESULT Misc ( [out, retval] IDispatch* *ppdispDict ); [propput, id(DISPID_SAF_INC__SELFHELPTRACE )] HRESULT SelfHelpTrace ( [in] IUnknown *punkStr ); [propput, id(DISPID_SAF_INC__MACHINEHISTORY )] HRESULT MachineHistory ( [in] IUnknown *punkStm ); [propput, id(DISPID_SAF_INC__MACHINESNAPSHOT )] HRESULT MachineSnapshot ( [in] IUnknown *punkStm ); [propget, id(DISPID_SAF_INC__PROBLEMDESCRIPTION)] HRESULT ProblemDescription( [out, retval] BSTR *pbstrVal ); [propput, id(DISPID_SAF_INC__PROBLEMDESCRIPTION)] HRESULT ProblemDescription( [in] BSTR bstrVal ); [propget, id(DISPID_SAF_INC__PRODUCTNAME )] HRESULT ProductName ( [out, retval] BSTR *pbstrVal ); [propput, id(DISPID_SAF_INC__PRODUCTNAME )] HRESULT ProductName ( [in] BSTR bstrVal ); [propget, id(DISPID_SAF_INC__PRODUCTID )] HRESULT ProductID ( [out, retval] BSTR *pbstrVal ); [propput, id(DISPID_SAF_INC__PRODUCTID )] HRESULT ProductID ( [in] BSTR bstrVal ); [propget, id(DISPID_SAF_INC__USERNAME )] HRESULT UserName ( [out, retval] BSTR *pbstrVal ); [propput, id(DISPID_SAF_INC__USERNAME )] HRESULT UserName ( [in] BSTR bstrVal ); [propget, id(DISPID_SAF_INC__UPLOADTYPE )] HRESULT UploadType ( [out, retval] EUploadType *peut ); [propput, id(DISPID_SAF_INC__UPLOADTYPE )] HRESULT UploadType ( [in] EUploadType eut ); [propget, id(DISPID_SAF_INC__INCIDENTXSL )] HRESULT IncidentXSL ( [out, retval] BSTR *pbstrVal ); [propput, id(DISPID_SAF_INC__INCIDENTXSL )] HRESULT IncidentXSL ( [in] BSTR bstrVal ); // Salem Changes [propget, id(DISPID_SAF_INC__RCREQUESTED )] HRESULT RCRequested ( [out, retval] VARIANT_BOOL *pVal ); [propput, id(DISPID_SAF_INC__RCREQUESTED )] HRESULT RCRequested ( [in] VARIANT_BOOL Val ); [propget, id(DISPID_SAF_INC__RCENCRYPTED )] HRESULT RCTicketEncrypted ( [out, retval] VARIANT_BOOL *pVal ); [propput, id(DISPID_SAF_INC__RCENCRYPTED )] HRESULT RCTicketEncrypted ( [in] VARIANT_BOOL Val ); [propget, id(DISPID_SAF_INC__RCTICKET )] HRESULT RCTicket ( [out, retval] BSTR *pbstrVal ); [propput, id(DISPID_SAF_INC__RCTICKET )] HRESULT RCTicket ( [in] BSTR bstrVal ); [propget, id(DISPID_SAF_INC__STARTPAGE )] HRESULT StartPage ( [out, retval] BSTR *pbstrVal ); [propput, id(DISPID_SAF_INC__STARTPAGE )] HRESULT StartPage ( [in] BSTR bstrVal ); // // Methods // [id(DISPID_SAF_INC__LOADFROMSTREAM)] HRESULT LoadFromStream( [in] IUnknown* punkStm ); [id(DISPID_SAF_INC__SAVETOSTREAM )] HRESULT SaveToStream ( [out, retval] IUnknown* *ppunkStm ); [id(DISPID_SAF_INC__LOAD )] HRESULT Load ( [in] BSTR bstrFileName ); [id(DISPID_SAF_INC__SAVE )] HRESULT Save ( [in] BSTR bstrFileName ); [id(DISPID_SAF_INC__GETXMLASSTREAM)] HRESULT GetXMLAsStream( [out, retval] IUnknown* *ppunkStm ); [id(DISPID_SAF_INC__GETXML )] HRESULT GetXML ( [in] BSTR bstrFileName ); // Methods to load incident from XML. [id(DISPID_SAF_INC__LOADFROMXMLSTREAM )] HRESULT LoadFromXMLStream ( [in] IUnknown* punkStm ); [id(DISPID_SAF_INC__LOADFROMXMLFILE )] HRESULT LoadFromXMLFile ( [in] BSTR bstrFileName ); [id(DISPID_SAF_INC__LOADFROMXMLSTRING )] HRESULT LoadFromXMLString ( [in] BSTR bstrXMLBlob ); }; //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// typedef [v1_enum] enum tagDC_STATUS { DC_NOTACTIVE = 0x00000000, // Status before first ExecuteXXXX() call. DC_COLLECTING = 0x00000001, // Status after ExecuteXXXX() call. DC_COMPARING = 0x00000005, // Status after CompareSnapshots() call. DC_FAILED = 0x00000002, // Status after failure (server deny, ect.) DC_COMPLETED = 0x00000003, // Status after successful data collection. DC_NODELTA = 0x00000004, // No delta has been generated from the comparison. } DC_STATUS; [ object, uuid(833E4190-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFDataCollection Interface"), pointer_default(unique) ] interface ISAFDataCollection : IDispatch { // // Properties // [propget, id(DISPID_SAF_DC__STATUS )] HRESULT Status ( [out, retval] DC_STATUS *pVal ); [propget, id(DISPID_SAF_DC__PERCENTDONE )] HRESULT PercentDone ( [out, retval] long *pVal ); [propget, id(DISPID_SAF_DC__ERRORCODE )] HRESULT ErrorCode ( [out, retval] long *pVal ); [propget, id(DISPID_SAF_DC__MACHINEDATA_DATASPEC )] HRESULT MachineData_DataSpec ( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_DC__MACHINEDATA_DATASPEC )] HRESULT MachineData_DataSpec ( [in] BSTR newVal ); [propget, id(DISPID_SAF_DC__HISTORY_DATASPEC )] HRESULT History_DataSpec ( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_DC__HISTORY_DATASPEC )] HRESULT History_DataSpec ( [in] BSTR newVal ); [propget, id(DISPID_SAF_DC__HISTORY_MAXDELTAS )] HRESULT History_MaxDeltas ( [out, retval] long *pVal ); [propput, id(DISPID_SAF_DC__HISTORY_MAXDELTAS )] HRESULT History_MaxDeltas ( [in] long newVal ); [propget, id(DISPID_SAF_DC__HISTORY_MAXSUPPORTEDDELTAS)] HRESULT History_MaxSupportedDeltas( [out, retval] long *pVal ); [propput, id(DISPID_SAF_DC__ONSTATUSCHANGE )] HRESULT onStatusChange ( [in] IDispatch* function ); [propput, id(DISPID_SAF_DC__ONPROGRESS )] HRESULT onProgress ( [in] IDispatch* function ); [propput, id(DISPID_SAF_DC__ONCOMPLETE )] HRESULT onComplete ( [in] IDispatch* function ); [propget, id(DISPID_SAF_DC__REPORTS )] HRESULT Reports ( [out, retval] IPCHCollection* *ppC ); // // Methods // [id(DISPID_SAF_DC__COMPARE_SNAPSHOTS)] HRESULT CompareSnapshots( [in] BSTR bstrFilenameT0, [in] BSTR bstrFilenameT1, [in] BSTR bstrFilenameDiff ); [id(DISPID_SAF_DC__EXECUTESYNC )] HRESULT ExecuteSync (); [id(DISPID_SAF_DC__EXECUTEASYNC)] HRESULT ExecuteAsync(); [id(DISPID_SAF_DC__ABORT )] HRESULT Abort (); [id(DISPID_SAF_DC__MACHINEDATA_GETSTREAM)] HRESULT MachineData_GetStream( [out, retval] IUnknown* *stream ); [id(DISPID_SAF_DC__HISTORY_GETSTREAM )] HRESULT History_GetStream ( [out, retval] IUnknown* *stream ); }; [ uuid(833E4191-AFF7-4AC3-AAC2-9F24C1457BCE), helpstring("DSAFDataCollectionEvents Interface") ] dispinterface DSAFDataCollectionEvents { properties: methods: [id(DISPID_SAF_DCE__ONSTATUSCHANGE)] HRESULT onStatusChange( ISAFDataCollection* pchdc, long lStatus ); [id(DISPID_SAF_DCE__ONPROGRESS )] HRESULT onProgress ( ISAFDataCollection* pchdc, long lDone, long lTotal ); [id(DISPID_SAF_DCE__ONCOMPLETE )] HRESULT onComplete ( ISAFDataCollection* pchdc, HRESULT hrRes ); }; [ object, uuid(833E4192-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFDataCollectionReport Interface"), pointer_default(unique) ] interface ISAFDataCollectionReport : IDispatch { // // Properties // [propget, id(DISPID_SAF_DCR__NAMESPACE )] HRESULT Namespace ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_DCR__CLASS )] HRESULT Class ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_DCR__WQL )] HRESULT WQL ( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_DCR__ERRORCODE )] HRESULT ErrorCode ( [out, retval] long *pVal ); [propget, id(DISPID_SAF_DCR__DESCRIPTION)] HRESULT Description( [out, retval] BSTR *pVal ); }; /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// typedef [v1_enum] enum tagCB_STATUS { CB_NOTACTIVE = 0x00000000, CB_COMPRESSING = 0x00000001, CB_COMPLETED = 0x00000002, CB_FAILED = 0x00000003, } CB_STATUS; [ object, uuid(833E41A0-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFCabinet Interface"), pointer_default(unique) ] interface ISAFCabinet : IDispatch { // // Properties // [propput, id(DISPID_SAF_CB__IGNOREMISSINGFILES)] HRESULT IgnoreMissingFiles( [in] VARIANT_BOOL fIgnoreMissingFiles ); [propput, id(DISPID_SAF_CB__ONPROGRESSFILES )] HRESULT onProgressFiles ( [in] IDispatch* function ); [propput, id(DISPID_SAF_CB__ONPROGRESSBYTES )] HRESULT onProgressBytes ( [in] IDispatch* function ); [propput, id(DISPID_SAF_CB__ONCOMPLETE )] HRESULT onComplete ( [in] IDispatch* function ); [propget, id(DISPID_SAF_CB__STATUS )] HRESULT Status ( [out, retval] CB_STATUS *pVal ); [propget, id(DISPID_SAF_CB__ERRORCODE )] HRESULT ErrorCode ( [out, retval] long *pVal ); // // Methods // [id(DISPID_SAF_CB__ADDFILE )] HRESULT AddFile ( [in] BSTR bstrFilePath , [in, optional] VARIANT vFileName ); [id(DISPID_SAF_CB__COMPRESS)] HRESULT Compress( [in] BSTR bstrCabinetFile ); [id(DISPID_SAF_CB__ABORT )] HRESULT Abort (); }; [ uuid(833E41A1-AFF7-4AC3-AAC2-9F24C1457BCE), helpstring("DSAFCabinetEvents Interface") ] dispinterface DSAFCabinetEvents { properties: methods: [id(DISPID_SAF_CBE__ONPROGRESSFILES)] HRESULT onProgressFiles( ISAFCabinet* hcpcb, BSTR bstrFile, long lDone, long lTotal ); [id(DISPID_SAF_CBE__ONPROGRESSBYTES)] HRESULT onProgressBytes( ISAFCabinet* hcpcb, long lDone, long lTotal ); [id(DISPID_SAF_CBE__ONCOMPLETE )] HRESULT onComplete ( ISAFCabinet* hcpcb, HRESULT hrRes ); }; // Encryption [ object, uuid(833E41A8-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFEncrypt Interface"), pointer_default(unique) ] interface ISAFEncrypt : IDispatch { // // Properties // // TODO? Need an enumerator for the different available encryption types. [propget, id(DISPID_SAF_ENC__ENCRYPTIONTYPE )] HRESULT EncryptionType( [out, retval] long *pLongVal ); [propput, id(DISPID_SAF_ENC__ENCRYPTIONTYPE )] HRESULT EncryptionType( [in] long LongVal ); // // Methods // [id(DISPID_SAF_ENC__ENCRYPTSTRING )] HRESULT EncryptString( [in] BSTR bstrEncryptionkey, [in] BSTR bstrInputString, [out, retval] BSTR *bstrEncryptedString ); [id(DISPID_SAF_ENC__DECRYPTSTRING )] HRESULT DecryptString( [in] BSTR bstrEncryptionkey, [in] BSTR bstrInputString, [out, retval] BSTR *bstrDecryptedString ); [id(DISPID_SAF_ENC__ENCRYPTFILE )] HRESULT EncryptFile ( [in] BSTR bstrEncryptionKey, [in] BSTR bstrInputFile, [in ] BSTR bstrEncryptedFile ); [id(DISPID_SAF_ENC__DECRYPTFILE )] HRESULT DecryptFile ( [in] BSTR bstrEncryptionKey, [in] BSTR bstrInputFile, [in ] BSTR bstrDecryptedFile ); [id(DISPID_SAF_ENC__ENCRYPTSTREAM )] HRESULT EncryptStream( [in] BSTR bstrEncryptionKey, [in] IUnknown *punkInStm, [out, retval] IUnknown* *ppunkOutStm ); [id(DISPID_SAF_ENC__DECRYPTSTREAM )] HRESULT DecryptStream( [in] BSTR bstrEncryptionKey, [in] IUnknown *punkInStm, [out, retval] IUnknown* *ppunkOutStm ); }; // Following interfaces For Unsolicited Remote Control [ object, uuid(833E41A9-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFUser Interface"), pointer_default(unique) ] interface ISAFUser : IDispatch { // // Properties // [propget, id(DISPID_SAF_USER__DOMAINNAME)] HRESULT DomainName( [out, retval] BSTR *pVal ); [propget, id(DISPID_SAF_USER__USERNAME )] HRESULT UserName ( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_USER__DOMAINNAME)] HRESULT DomainName( [in ] BSTR pVal ); [propput, id(DISPID_SAF_USER__USERNAME )] HRESULT UserName ( [in ] BSTR pVal ); }; [ object, uuid(833E41AA-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFSession Interface"), pointer_default(unique) ] interface ISAFSession : IDispatch { //Properties [propget, id(DISPID_SAF_SESS__SESSIONID )] HRESULT SessionID ( [out, retval] DWORD *pVal ); [propput, id(DISPID_SAF_SESS__SESSIONID )] HRESULT SessionID ( [in ] DWORD pVal ); [propget, id(DISPID_SAF_SESS__SESSIONSTATE)] HRESULT SessionState( [out, retval] SessionStateEnum *pVal ); [propput, id(DISPID_SAF_SESS__SESSIONSTATE)] HRESULT SessionState( [in ] SessionStateEnum pVal ); [propget, id(DISPID_SAF_SESS__DOMAINNAME )] HRESULT DomainName ( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_SESS__DOMAINNAME )] HRESULT DomainName ( [in ] BSTR pVal ); [propget, id(DISPID_SAF_SESS__USERNAME )] HRESULT UserName ( [out, retval] BSTR *pVal ); [propput, id(DISPID_SAF_SESS__USERNAME )] HRESULT UserName ( [in ] BSTR pVal ); }; [ object, uuid(833E41AB-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFRemoteConnectionData Interface"), pointer_default(unique) ] interface ISAFRemoteConnectionData : IDispatch { // // Methods // [id(DISPID_SAF_RCD__CONNECTIONPARMS)] HRESULT ConnectionParms( [in ] BSTR bstrServerName , [in ] BSTR bstrUserName , [in ] BSTR bstrDomainName , [in ] long lSessionID , [in ] BSTR bstrUserHelpBlob , [out, retval] BSTR *bstrConnectionString ); [id(DISPID_SAF_RCD__USERS )] HRESULT Users ( [out, retval] IPCHCollection* *ppUsers ); [id(DISPID_SAF_RCD__SESSIONS)] HRESULT Sessions( [in, optional] VARIANT vUserName, [in, optional] VARIANT vDomainName, [out, retval] IPCHCollection* *ppSessions ); }; [ object, uuid(833E41AC-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFRemoteDesktopConnection Interface"), pointer_default(unique) ] interface ISAFRemoteDesktopConnection : IDispatch { // // Methods // [id(DISPID_SAF_RDC__CONNECTREMOTEDESKTOP)] HRESULT ConnectRemoteDesktop( [in] BSTR ServerName, [out, retval] ISAFRemoteConnectionData* *ppRCD ); }; [ object, uuid(833E41B0-AFF7-4AC3-AAC2-9F24C1457BCE), dual, oleautomation, helpstring("ISAFChannelNotifyIncident Interface"), pointer_default(unique) ] interface ISAFChannelNotifyIncident : IDispatch { [id(DISPID_SAF_CNOTI_ADD), helpstring("method onIncidentAdded")] HRESULT onIncidentAdded(ISAFChannel * ch, ISAFIncidentItem * inc, long n); [id(DISPID_SAF_CNOTI_REMOVE), helpstring("method onIncidentRemoved")] HRESULT onIncidentRemoved(ISAFChannel * ch, ISAFIncidentItem * inc, long n); [id(DISPID_SAF_CNOTI_UPDATE), helpstring("method onIncidentUpdated")] HRESULT onIncidentUpdated(ISAFChannel * ch, ISAFIncidentItem * inc, long n); [id(DISPID_SAF_CNOTI_CHUPDATE), helpstring("method onChannelUpdated")] HRESULT onChannelUpdated(ISAFChannel * ch, long dwCode, long n); };