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.
166 lines
5.4 KiB
166 lines
5.4 KiB
//
|
|
// 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
|
|
};
|