windows-nt/Source/XPSP1/NT/ds/security/gina/snapins/gpedit/cproppg.cxx

84 lines
2.7 KiB
C++
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
//+---------------------------------------------------------------------------
//
// 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);
}
}