Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

88 lines
3.4 KiB

#ifndef _MIGWIZ_HXX_
#define _MIGWIZ_HXX_
#include <shlobj.h>
#define NUMPAGES 22
#define ENGINE_RULE_MAXLEN 4000
#define ENGINE_NOTINIT 0
#define ENGINE_INITGATHER 1
#define ENGINE_INITAPPLY 2
// custom window messages
#define WM_USER_FINISHED (WM_APP + 1)
#define WM_USER_CANCELLED (WM_APP + 2)
#define WM_USER_THREAD_COMPLETE (WM_APP + 3)
#define WM_USER_CANCEL_PENDING (WM_APP + 4)
#define WM_USER_STATUS (WM_APP + 5)
#define WM_USER_ROLLBACK (WM_APP + 6)
// device bit entries
#ifndef ARRAYSIZE
#define ARRAYSIZE(x) (sizeof(x) / sizeof((x)[0]))
#endif
class MigrationWizard
{
public:
MigrationWizard();
~MigrationWizard();
HRESULT Init(HINSTANCE hinstance, LPTSTR pszUsername);
HRESULT Execute();
HINSTANCE GetInstance() { return _hInstance; }
HFONT GetTitleFont() { return _hTitleFont; }
HFONT Get95HeaderFont() { return _h95HeaderFont; }
HIMAGELIST GetImageList() { return _hil; }
BOOL GetLegacy() { return _fLegacyMode; }
BOOL GetWin9X() { return _fWin9X; }
BOOL GetWinNT4() { return _fWinNT4; }
BOOL GetOOBEMode() { return _fOOBEMode; }
BOOL GetOldStyle() { return _fOldStyle; }
void ResetLastResponse();
BOOL GetLastResponse();
HRESULT SelectComponentSet(UINT uSelectionGroup);
private: // helper functions
HRESULT _CreateWizardPages();
HRESULT _InitEngine(BOOL fSource, BOOL* pfNetworkDetected);
protected: // friend WinProcs
friend INT_PTR CALLBACK _CollectProgressDlgProc (HWND hwndDlg,UINT uMsg, WPARAM wParam, LPARAM lParam);
friend DWORD WINAPI _CollectProgressDlgProcThread (LPVOID lpParam);
friend INT_PTR CALLBACK _ApplyProgressDlgProc (HWND hwndDlg,UINT uMsg, WPARAM wParam, LPARAM lParam);
friend DWORD WINAPI _ApplyProgressDlgProcThread (LPVOID lpParam);
friend INT_PTR CALLBACK _DiskProgressDlgProc (HWND hwndDlg,UINT uMsg, WPARAM wParam, LPARAM lParam);
friend INT_PTR CALLBACK _PickMethodDlgProc (HWND hwndDlg,UINT uMsg, WPARAM wParam, LPARAM lParam);
friend DWORD WINAPI _StartEngineDlgProcThread (LPVOID lpParam);
// other friend functions
friend BOOL _HandleCancel (HWND hwndDlg, BOOL PressNext);
private:
LPTSTR _pszUsername; // username specified
HFONT _hTitleFont; // The title font for the Welcome and Completion pages
HFONT _h95HeaderFont; // The title font for the Wizard 95 interior page header titles
HINSTANCE _hInstance; // HInstance the wizard is run in
HPROPSHEETPAGE _rghpsp[NUMPAGES]; // an array to hold the page's HPROPSHEETPAGE handles
PROPSHEETHEADER _psh; // defines the property sheet
HIMAGELIST _hil; // shell's small image list
BOOL _fInit; // has the engine been initialized yet
BOOL _fOOBEMode; // are we running on from an OOBE floppy?
BOOL _fLegacyMode; // are we running on a downlevel (non-whistler) machine?
BOOL _fWin9X; // are we running on a Win9X machine?
BOOL _fWinNT4; // are we running on a WinNT4 machine?
BOOL _fOldStyle; // are we running the old-style wizard?
BOOL _fDelCs; // delete critical section on terminate?
};
#endif