|
|
//
// MODULE: TSHOOTCTL.H
//
// PURPOSE: Declaration of the CTSHOOTCtrl OLE control class.
//
// PROJECT: Generic Troubleshooter DLL for Microsoft AnswerPoint
//
// COMPANY: Saltmine Creative, Inc. (206)-284-7511 [email protected]
//
// AUTHOR: Roman Mach
// further work by Richard Meadows (RWM), Joe Mabel
//
// ORIGINAL DATE: 8/7/97
//
// NOTES:
// 1.
//
// Version Date By Comments
//--------------------------------------------------------------------
// V0.2 8/7/97 RM Local Version for Memphis
// V0.3 3/24/98 JM Local Version for NT5
//
// INI section header
#define TSINI_GROUP_STR _T("[TSLocalDownload.V1]")
// file types (maps to sub key lists)
#define TSINI_TYPE_TS _T("TS")
#define TSINI_TYPE_SF _T("SF")
// parameter offset in INI
#define TSINI_OFFSET_TYPE 0
#define TSINI_OFFSET_FILENAME 1
#define TSINI_OFFSET_VERSION 2
#define TSINI_OFFSET_FRIENDLY 3
//
#define TSINI_LINE_PARAM_COUNT 4
/////////////////////////////////////////////////////////////////////////////
// CTSHOOTCtrl : See TSHOOTCtl.cpp for implementation.
// Roman Mach believes (3/14/98) that there is exactly one object of this type in the Local
// Troubleshooter and that this object persists intact as we move from node to node within
// a troubleshooting belief network. (This may not be strictly true if the "Download"
// feature is used.) Since this class can be DYNCREATEd it's hard to verify this definitively.
class CTSHOOTCtrl : public COleControl { #define PRELOAD_LIBRARY _T("apgts.dll?preload=")
DECLARE_DYNCREATE(CTSHOOTCtrl)
// Constructor
public: CTSHOOTCtrl();
VOID StatusEventHelper( DLITEMTYPES dwItem, DLSTATTYPES dwStat, DWORD dwExtended = 0, BOOL bComplete = FALSE); VOID ProgressEventHelper( DLITEMTYPES dwItem, ULONG ulCurr, ULONG ulTotal );
DLSTATTYPES ProcessReceivedData(DLITEMTYPES dwItem, TCHAR *pData, UINT uLen); const CString GetListPath();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CTSHOOTCtrl)
public: virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid); virtual void DoPropExchange(CPropExchange* pPX); virtual void OnResetState(); //}}AFX_VIRTUAL
// Implementation
protected: ~CTSHOOTCtrl(); CString m_strCurShooter; APGTSContext m_apgts; CDBLoadConfiguration m_Conf; CHttpQuery m_httpQuery;
DECLARE_OLECREATE_EX(CTSHOOTCtrl) // Class factory and guid
DECLARE_OLETYPELIB(CTSHOOTCtrl) // GetTypeInfo
DECLARE_PROPPAGEIDS(CTSHOOTCtrl) // Property page IDs
DECLARE_OLECTLTYPE(CTSHOOTCtrl) // Type name and misc status
// Message maps
//{{AFX_MSG(CTSHOOTCtrl)
// NOTE - ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// Dispatch maps
//{{AFX_DISPATCH(CTSHOOTCtrl)
CString m_downloadURL; afx_msg void OnDownloadURLChanged(); CString m_downloadListFilename; afx_msg void OnDownloadListFilenameChanged(); afx_msg BSTR RunQuery(const VARIANT FAR& varCmds, const VARIANT FAR& varVals, short size); afx_msg bool SetSniffResult(const VARIANT FAR& varNodeName, const VARIANT FAR& varState); afx_msg long GetExtendedError(); afx_msg BSTR GetCurrentFriendlyDownload(); afx_msg BSTR GetCurrentFileDownload(); afx_msg long DownloadAction(long dwActionType); afx_msg BSTR BackUp(); afx_msg BSTR ProblemPage(); afx_msg BSTR PreLoadURL(LPCTSTR szRoot); afx_msg BSTR Restart(); afx_msg BSTR RunQuery2(LPCTSTR szTopic, LPCTSTR szCmd, LPCTSTR szVal); afx_msg void SetPair(LPCTSTR szName, LPCTSTR szValue); //}}AFX_DISPATCH
DECLARE_DISPATCH_MAP()
afx_msg void AboutBox();
// Event maps
//{{AFX_EVENT(CTSHOOTCtrl)
void FireBindProgress(LPCTSTR sFile, long ulCurr, long ulTotal) {FireEvent(eventidBindProgress,EVENT_PARAM(VTS_BSTR VTS_I4 VTS_I4), sFile, ulCurr, ulTotal);} void FireBindStatus(long uItem, long uStat, long uExtended, BOOL bComplete) {FireEvent(eventidBindStatus,EVENT_PARAM(VTS_I4 VTS_I4 VTS_I4 VTS_BOOL), uItem, uStat, uExtended, bComplete);} void FireSniffing(LPCTSTR strMachine, LPCTSTR strPNPDevice, LPCTSTR strDeviceInstance, LPCTSTR strClassGuid) {FireEvent(eventidSniffing,EVENT_PARAM(VTS_BSTR VTS_BSTR VTS_BSTR VTS_BSTR), strMachine, strPNPDevice, strDeviceInstance, strClassGuid);} //}}AFX_EVENT
DECLARE_EVENT_MAP()
// Dispatch and event IDs
public: enum { //{{AFX_DISP_ID(CTSHOOTCtrl)
dispidDownloadURL = 1L, dispidDownloadListFilename = 2L, dispidRunQuery = 3L, dispidSetSniffResult = 4L, dispidGetExtendedError = 5L, dispidGetCurrentFriendlyDownload = 6L, dispidGetCurrentFileDownload = 7L, dispidDownloadAction = 8L, dispidBackUp = 9L, dispidProblemPage = 10L, dispidPreLoadURL = 11L, dispidRestart = 12L, dispidRunQuery2 = 13L, dispidSetPair = 14L, eventidBindProgress = 1L, eventidBindStatus = 2L, eventidSniffing = 3L, //}}AFX_DISP_ID
};
protected: DLSTATTYPES ProcessINI(TCHAR *pData); DLSTATTYPES ProcessDSC(TCHAR *pData, UINT uLen); BOOL FileRegCheck(CString &sType, CString &sFilename, CString &sKeyName, DWORD dwCurrVersion); DLSTATTYPES GetPathToFiles();
protected: BOOL m_bComplete; CDownload *m_download; CDnldObjList m_dnldList; DWORD m_dwExtendedErr; CString m_sBasePath; CSniffedNodeContainer* m_pSniffedContainer; // pointer to container to save results of sniffing
};
|