136 lines
2.6 KiB
C
136 lines
2.6 KiB
C
#include "precomp.h"
|
|
#pragma hdrstop
|
|
|
|
extern HWND hWndShell;
|
|
|
|
/* LONG APIENTRY LDefSetupDlgProc(HWND hDlg, UINT wMsg, WORD wParam,
|
|
* LPARAM lParam);
|
|
*
|
|
* Function acts as setup's DefDialogProc(). We use this to process Help and
|
|
* Exit button usage so that we don't have to put code into each of our dialog
|
|
* procs to do this. The way it works is we filter all the dialog message for
|
|
* WM_COMMAND - IDC_H/ID_EXIT messages, these we process right here. The rest
|
|
* of the messages are passed on to DefDialogProc().
|
|
*
|
|
* ENTRY: hDlg - Handle to dialog box who received the focus.
|
|
* wMsg - Message.
|
|
* wParam - Message dependent.
|
|
* lParam - Message dependent.
|
|
*
|
|
* EXIT:
|
|
*
|
|
*/
|
|
|
|
INT_PTR APIENTRY
|
|
LDefSetupDlgProc(
|
|
HWND hDlg,
|
|
UINT wMsg,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
)
|
|
|
|
{
|
|
switch(wMsg) {
|
|
|
|
case WM_KEYDOWN:
|
|
|
|
switch(wParam) {
|
|
|
|
case VK_F1:
|
|
|
|
SendMessage(
|
|
hDlg,
|
|
WM_COMMAND,
|
|
MAKELONG(IDC_H, BN_CLICKED),
|
|
lParam
|
|
);
|
|
|
|
return ( 0L );
|
|
|
|
case VK_F3:
|
|
|
|
SendMessage(
|
|
hDlg,
|
|
WM_COMMAND,
|
|
MAKELONG(IDC_X, BN_CLICKED),
|
|
lParam
|
|
);
|
|
|
|
return ( 0L );
|
|
|
|
default:
|
|
|
|
break;
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
case WM_COMMAND:
|
|
|
|
switch (LOWORD(wParam)) {
|
|
|
|
case IDC_H:
|
|
|
|
PostMessage(
|
|
hWndShell,
|
|
WM_COMMAND,
|
|
MAKELONG(ID_HELPBUTTON, BN_CLICKED),
|
|
0L
|
|
);
|
|
|
|
return( 0L );
|
|
|
|
|
|
default:
|
|
|
|
break;
|
|
}
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
return( DefDlgProc( hDlg, wMsg, wParam, lParam ) );
|
|
|
|
}
|
|
|
|
|
|
BOOL
|
|
DlgDefClassInit(
|
|
IN HANDLE hInst,
|
|
IN BOOL Init
|
|
)
|
|
|
|
{
|
|
WNDCLASS wc;
|
|
|
|
if(Init) {
|
|
|
|
/* Register setup's own personal dialog class. We do this so that we
|
|
* can have generic help and exit buttons on all the setup dialogs
|
|
* that need them.
|
|
*/
|
|
|
|
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
|
|
wc.hIcon = NULL;
|
|
wc.lpszMenuName = NULL;
|
|
wc.lpszClassName = CLS_MYDLGS;
|
|
wc.hbrBackground = NULL;
|
|
wc.hInstance = hInst;
|
|
wc.style = CS_DBLCLKS | CS_SAVEBITS | CS_BYTEALIGNWINDOW | CS_GLOBALCLASS;
|
|
wc.lpfnWndProc = LDefSetupDlgProc;
|
|
wc.cbClsExtra = 0;
|
|
wc.cbWndExtra = DLGWINDOWEXTRA;
|
|
|
|
return ( RegisterClass(&wc) );
|
|
|
|
} else {
|
|
|
|
return(UnregisterClass(CLS_MYDLGS,hInst));
|
|
}
|
|
}
|