84 lines
2.7 KiB
C++
84 lines
2.7 KiB
C++
|
//+---------------------------------------------------------------------------
|
|||
|
//
|
|||
|
// Microsoft Windows
|
|||
|
// Copyright (C) Microsoft Corporation, 1992 - 1994.
|
|||
|
//
|
|||
|
// File: cproppg.cxx
|
|||
|
//
|
|||
|
// Contents:
|
|||
|
//
|
|||
|
// Classes: CHlprPropPage
|
|||
|
//
|
|||
|
// Functions: DialogProc
|
|||
|
//
|
|||
|
// History: 4-12-1994 stevebl original dialog box helpers Created
|
|||
|
// 4-29-1998 stevebl Modified from dialog box helpers
|
|||
|
//
|
|||
|
//----------------------------------------------------------------------------
|
|||
|
|
|||
|
#include "main.h"
|
|||
|
#include "cproppg.h"
|
|||
|
|
|||
|
HPROPSHEETPAGE CHlprPropPage::CreatePropertySheetPage(LPPROPSHEETPAGE lppsp)
|
|||
|
{
|
|||
|
lppsp->pfnDlgProc = HlprPropPageDialogProc;
|
|||
|
lppsp->lParam = (LPARAM)(CHlprPropPage *) this;
|
|||
|
return ::CreatePropertySheetPage(lppsp);
|
|||
|
}
|
|||
|
|
|||
|
//+---------------------------------------------------------------------------
|
|||
|
//
|
|||
|
// Function: DialogProc
|
|||
|
//
|
|||
|
// Synopsis: Common DialogProc used by all CHlprPropPage class objects.
|
|||
|
//
|
|||
|
// Arguments: [hwndDlg] - handle of dialog box
|
|||
|
// [uMsg] - message
|
|||
|
// [wParam] - first message parameter
|
|||
|
// [lParam] - second message parameter
|
|||
|
//
|
|||
|
// Returns: response from the CHlprPropPage::DialogProc method
|
|||
|
//
|
|||
|
// History: 4-12-94 stevebl Created
|
|||
|
//
|
|||
|
// Notes: This procedure is the DialogProc registered for all dialogs
|
|||
|
// created with the CHlprPropPage class. It uses the parameter
|
|||
|
// passed with the WM_INITDIALOG message to identify the dialog
|
|||
|
// classes' "this" pointer which it then stores in the window
|
|||
|
// structure's GWL_USERDATA field. All subsequent messages
|
|||
|
// can then be forwarded on to the correct dialog class's
|
|||
|
// DialogProc method by using the pointer stored in the
|
|||
|
// GWL_USERDATA field.
|
|||
|
//
|
|||
|
//----------------------------------------------------------------------------
|
|||
|
|
|||
|
INT_PTR CALLBACK HlprPropPageDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
|
{
|
|||
|
CHlprPropPage * pdlg;
|
|||
|
switch (uMsg)
|
|||
|
{
|
|||
|
case WM_INITDIALOG:
|
|||
|
// This message is how we identify the dialog object.
|
|||
|
|
|||
|
// get a pointer to the window class object
|
|||
|
pdlg = (CHlprPropPage *) ((PROPSHEETPAGE *)lParam)->lParam;
|
|||
|
// set its USERDATA word to point to the class object
|
|||
|
SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR) pdlg);
|
|||
|
break;
|
|||
|
default:
|
|||
|
// get a pointer to the window class object
|
|||
|
pdlg = (CHlprPropPage *) GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
|
|||
|
break;
|
|||
|
}
|
|||
|
// and call its message proc method
|
|||
|
if (pdlg != (CHlprPropPage *) 0)
|
|||
|
{
|
|||
|
return(pdlg->DialogProc(hwndDlg, uMsg, wParam, lParam));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return(FALSE);
|
|||
|
}
|
|||
|
}
|
|||
|
|