#ifndef __TSWIZARD_H__ #define __TSWIZARD_H__ /*++ Copyright (C) Microsoft Corporation Module Name: tswizard.h Abstract: header file for tswizard.cpp Author: William Hsieh (williamh) created Revision History: --*/ typedef enum tagFixCommand { FIX_COMMAND_DONOTHING = 0, FIX_COMMAND_UPGRADEDRIVERS, FIX_COMMAND_REINSTALL, FIX_COMMAND_ENABLEDEVICE, FIX_COMMAND_STARTDEVICE, FIX_COMMAND_RESTARTCOMPUTER, FIX_COMMAND_DRIVERBLOCKED, FIX_COMMAND_TROUBLESHOOTER } FIX_COMMAND, *PFIX_COMMAND; typedef struct tagCMProblemInfo { BOOL Query; // true if we have something to fix the problem FIX_COMMAND FixCommand; // command to fix the problem int idInstFirst; // instruction text string id int idInstCount; // how many instruction string id int idFixit; // fix it string id }CMPROBLEM_INFO, *PCMPROBLEM_INFO; class CProblemAgent { public: CProblemAgent(CDevice* pDevice, ULONG Problem, BOOL SeparateProcess); ~CProblemAgent() {} DWORD InstructionText(LPTSTR Buffer, DWORD BufferSize); DWORD FixitText(LPTSTR Buffer, DWORD BufferSize); BOOL FixIt(HWND hwndOwner); BOOL UpgradeDriver(HWND hwndOwner, CDevice* pDevice); BOOL Reinstall(HWND hwndOwner, CDevice* pDevice); BOOL RestartComputer(HWND hwndOwner, CDevice* pDevice); BOOL EnableDevice(HWND hwndOwner, CDevice* pDevice); BOOL FixDriverBlocked(HWND hwndOwner, CDevice* pDevice, LPTSTR ChmFile, ULONG ChmFileSize, LPTSTR HtmlTroubleShooter, ULONG HtmlTroubleShooterSize); BOOL StartTroubleShooter(HWND hwndOwner, CDevice *pDevice, LPTSTR ChmFile, LPTSTR HtmlTroubleShooter); BOOL GetTroubleShooter(CDevice* pDevice, LPTSTR ChmFile, ULONG ChmFileSize, LPTSTR HtmlTroubleShooter, ULONG HtmlTroubleShooterSize); void LaunchHtlmTroubleShooter(HWND hwndOwner, LPTSTR ChmFile, LPTSTR HtmlTroubleShooter); protected: CDevice* m_pDevice; ULONG m_Problem; int m_idInstFirst; int m_idInstCount; int m_idFixit; BOOL m_SeparateProcess; FIX_COMMAND m_FixCommand; }; class CWizard98 { public: CWizard98(HWND hwndParent, UINT MaxPages = 32); ~CWizard98() {} INT_PTR DoSheet() { return ::PropertySheet(&m_psh); } void InsertPage(HPROPSHEETPAGE hPage) { if (hPage && (m_psh.nPages < m_MaxPages)) { m_psh.phpage[m_psh.nPages++] = hPage; } } static INT CALLBACK WizardCallback(HWND hwndDlg, UINT uMsg, LPARAM lParam); PROPSHEETHEADER m_psh; private: UINT m_MaxPages; }; #endif // #ifndef __TSWIZARD_H__