/****************************************************************************\ WIZARD.H / OPK Wizard (OPKWIZ.EXE) Microsoft Confidential Copyright (c) Microsoft Corporation 1999 All rights reserved Wizard header file for the OPK Wizard. Contains the functions for creating the wizard. 3/99 - Jason Cohen (JCOHEN) Added this new header file for the OPK Wizard as part of the Millennium rewrite. 09/2000 - Stephen Lodwick (STELO) Ported OPK Wizard to Whistler \****************************************************************************/ #ifndef _WIZARD_H_ #define _WIZARD_H_ // // Include File(s): // #include #include #include "jcohen.h" // // External Macros: // #define WIZ_RESULT(hwnd, result) \ SetWindowLongPtr(hwnd, DWLP_MSGRESULT, result) #define WIZ_SKIP(hwnd) \ WIZ_RESULT(hwnd, -1) #define WIZ_FAIL(hwnd) \ WIZ_SKIP(hwnd) #define WIZ_BUTTONS(hwnd, lparam) \ SetWizardButtons(hwnd, lparam) #define WIZ_CANCEL(hwnd) \ ( ( (GET_FLAG(OPK_EXIT)) || (MsgBox(GetParent(hwnd), IDS_WARN_CANCEL_WIZARD, IDS_WIZARD_TITLE, MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2 ) == IDYES) ) ? \ ( (WIZ_RESULT(hwnd, 0)) ? TRUE : TRUE ) : \ ( (WIZ_RESULT(hwnd, -1)) ? FALSE : FALSE ) ) #define WIZ_PRESS(hwnd, msg) \ PostMessage(GetParent(hwnd), PSM_PRESSBUTTON, msg, 0L) #define WIZ_EXIT(hwnd) \ { \ SET_FLAG(OPK_EXIT, TRUE); \ WIZ_PRESS(hwnd, PSBTN_CANCEL); \ } #define WIZ_HELP() \ g_App.hwndHelp = HtmlHelp(NULL, g_App.szHelpFile, HH_HELP_CONTEXT, GET_FLAG(OPK_OEM) ? g_App.dwCurrentHelp+200 : g_App.dwCurrentHelp) #define WIZ_NEXTONAUTO(hwnd, msg) \ { \ if(GET_FLAG(OPK_AUTORUN))\ {\ WIZ_PRESS(hwnd, msg);\ }\ } #define DEFAULT_PAGE_FLAGS ( PSP_DEFAULT | \ PSP_HASHELP | \ PSP_USEHEADERTITLE | \ PSP_USEHEADERSUBTITLE ) // // Type definitions // // Structure needed for Tree Dilogs // typedef struct _TREEDLG { DWORD dwResource; DLGPROC dlgWindowProc; DWORD dwTitle; DWORD dwSubTitle; HWND hWindow; HTREEITEM hItem; BOOL bVisible; } TREEDLG, *PTREEDLG, *LPTREEDLG; // Structure needed for Wizard Dilogs // typedef struct _WIZDLG { DWORD dwResource; DLGPROC dlgWindowProc; DWORD dwTitle; DWORD dwSubTitle; DWORD dwFlags; } WIZDLG, *PWIZDLG, *LPWIZDLG; // Structure needed for Wizard Dilogs // typedef struct _SPLASHDLG { DWORD dwResource; DLGPROC dlgWindowProc; HWND hWindow; } SPLASHDLG, *PSPLASHDLG, *LPSPLASHDLG; // // External Function Prototype(s): // int CreateWizard(HINSTANCE, HWND); int CreateMaintenanceWizard(HINSTANCE, HWND); int CALLBACK WizardCallbackProc(HWND, UINT, LPARAM); LONG CALLBACK WizardSubWndProc(HWND , UINT , WPARAM , LPARAM ); LRESULT CALLBACK MaintDlgProc(HWND, UINT, WPARAM, LPARAM); static HTREEITEM TreeAddItem(HWND, HTREEITEM, LPTSTR); void SetWizardButtons(HWND hwnd, DWORD dwButtons); #endif // _WIZARD_H_