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.
102 lines
2.7 KiB
102 lines
2.7 KiB
|
|
#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__
|