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.
 
 
 
 
 
 

222 lines
4.2 KiB

/*
* Copyright (c) 1998 Microsoft Corporation
*
* Module Name:
*
* ocpage.cpp
*
* Abstract:
*
* This file defines an OC Manager Wizard Page base class.
*
* Author:
*
* Breen Hagan (BreenH) Oct-02-98
*
* Environment:
*
* User Mode
*/
#include "stdafx.h"
#include "logfile.h"
/*
* External Function Prototypes.
*/
HINSTANCE GetInstance();
INT_PTR CALLBACK
OCPage::PropertyPageDlgProc(
HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
OCPage *pDlg;
if (uMsg == WM_INITDIALOG) {
pDlg = reinterpret_cast<OCPage*>(LPPROPSHEETPAGE(lParam)->lParam);
} else {
pDlg = reinterpret_cast<OCPage*>(GetWindowLongPtr(hwndDlg, DWLP_USER));
}
if (pDlg == NULL) {
return(0);
}
switch(uMsg) {
case WM_INITDIALOG:
pDlg->SetDlgWnd(hwndDlg);
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pDlg);
return(pDlg->OnInitDialog(hwndDlg, wParam, lParam));
case WM_NOTIFY:
return(pDlg->OnNotify(hwndDlg, wParam, lParam));
case WM_COMMAND:
return(pDlg->OnCommand(hwndDlg, wParam, lParam));
}
return(0);
}
OCPage::OCPage ()
{
}
BOOL OCPage::Initialize ()
{
dwFlags = PSP_USECALLBACK;
pszHeaderTitle = MAKEINTRESOURCE(GetHeaderTitleResource());
if (pszHeaderTitle) {
dwFlags |= PSP_USEHEADERTITLE;
}
pszHeaderSubTitle = MAKEINTRESOURCE(GetHeaderSubTitleResource());
if (pszHeaderSubTitle) {
dwFlags |= PSP_USEHEADERSUBTITLE;
}
dwSize = sizeof(PROPSHEETPAGE);
hInstance = GetInstance();
pszTemplate = MAKEINTRESOURCE(GetPageID());
pfnDlgProc = PropertyPageDlgProc;
pfnCallback = NULL;
lParam = (LPARAM)this;
return(pszTemplate != NULL ? TRUE : FALSE);
}
OCPage::~OCPage()
{
}
BOOL
OCPage::OnNotify(
HWND hWndDlg,
WPARAM wParam,
LPARAM lParam
)
{
NMHDR *pnmh = (LPNMHDR) lParam;
switch(pnmh->code)
{
case PSN_SETACTIVE:
SetWindowLongPtr(hWndDlg, DWLP_MSGRESULT, CanShow() ? 0 : -1);
PropSheet_SetWizButtons(GetParent(hWndDlg),
PSWIZB_NEXT | PSWIZB_BACK);
break;
case PSN_WIZNEXT:
SetWindowLongPtr(hWndDlg, DWLP_MSGRESULT, ApplyChanges() ? 0 : -1);
break;
case PSN_WIZBACK:
SetWindowLongPtr(hWndDlg, DWLP_MSGRESULT, 0);
break;
default:
return(FALSE);
}
UNREFERENCED_PARAMETER(lParam);
UNREFERENCED_PARAMETER(wParam);
return(TRUE);
}
BOOL
OCPage::OnCommand(
HWND hWndDlg,
WPARAM wParam,
LPARAM lParam
)
{
UNREFERENCED_PARAMETER(lParam);
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(hWndDlg);
return(TRUE);
}
BOOL OCPage::OnInitDialog(
HWND hWndDlg,
WPARAM wParam,
LPARAM lParam
)
{
UNREFERENCED_PARAMETER(lParam);
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(hWndDlg);
return(TRUE);
}
BOOL OCPage::ApplyChanges(
)
{
return(TRUE);
}
DWORD
OCPage::DisplayMessageBox(
UINT resText,
UINT resTitle,
UINT uType,
int *mbRetVal
)
{
return(::DisplayMessageBox(m_hDlgWnd, resText, resTitle, uType, mbRetVal));
}
DWORD
DisplayMessageBox(
HWND hWnd,
UINT resText,
UINT resTitle,
UINT uType,
int *mbRetVal
)
{
int iRet;
TCHAR szResText[1024];
TCHAR szResTitle[1024];
if (mbRetVal == NULL) {
return(ERROR_INVALID_PARAMETER);
}
iRet = LoadString(
GetInstance(),
resText,
szResText,
1024
);
if (iRet == 0) {
return(GetLastError());
}
iRet = LoadString(
GetInstance(),
resTitle,
szResTitle,
1024
);
if (iRet == 0) {
return(GetLastError());
}
*mbRetVal = MessageBox(
hWnd,
szResText,
szResTitle,
uType
);
return(*mbRetVal == 0 ? ERROR_OUTOFMEMORY : ERROR_SUCCESS);
}