windows-nt/Source/XPSP1/NT/shell/tools/extwiz/template/ps.cpp
2020-09-26 16:20:57 +08:00

83 lines
2.2 KiB
C++

// C$$ClassType$$PS.cpp : Implementation of C$$ClassType$$PS
#include "stdafx.h"
#include "$$root$$.h"
#include "$$ClassType$$PS.h"
BOOL CALLBACK C$$ClassType$$PS_DlgProc(HWND hwnd, UINT uMsg,
WPARAM wParam, LPARAM lParam)
{
BOOL bRet = FALSE;
static C$$ClassType$$PS* ppse = NULL;
switch(uMsg)
{
case WM_INITDIALOG:
ppse = (CPS*)lParam;
bRet = TRUE;
break;
case WM_NOTIFY:
switch(((NMHDR*)lParam)->code)
{
case PSN_APPLY:
// TODO: Add code to apply changes in the dialog
SetWindowLong(hwnd, DWL_MSGRESULT, TRUE);
bRet = TRUE;
break;
case PSN_KILLACTIVE:
// page is being deactivated either by another page being
// activated, or user chose OK.
SetWindowLong(hwnd, DWL_MSGRESULT, FALSE);
bRet = TRUE;
break;
case PSN_RESET:
// TODO: Add any cleanup code
SetWindowLong(hwnd, DWL_MSGRESULT, FALSE);
bRet = TRUE;
break;
}
}
return bRet;
}
/////////////////////////////////////////////////////////////////////////////
// C$$ClassType$$PS
STDMETHODIMP C$$ClassType$$PS::Initialize (LPCITEMIDLIST pidlFolder, LPDATAOBJECT lpdobj,
HKEY hkeyProgID)
{
return NOERROR;
}
STDMETHODIMP C$$ClassType$$PS::AddPages(LPFNADDPROPSHEETPAGE lpfnAddPage,
LPARAM lParam)
{
PROPSHEETPAGE psp;
HPROPSHEETPAGE hpage;
psp.dwSize = sizeof(psp); // no extra data
psp.dwFlags = PSP_USEREFPARENT;
psp.hInstance = _Module.GetModuleInstance();
psp.pszTemplate = MAKEINTRESOURCE(IDD_PROPPAGE);
psp.pfnDlgProc = C$$ClassType$$PS_DlgProc;
psp.pcRefParent = (UINT*)&_Module.m_nLockCnt;
psp.lParam = (LPARAM)this;
hpage = CreatePropertySheetPage(&psp);
if (hpage)
{
if (!lpfnAddPage(hpage, lParam))
DestroyPropertySheetPage(hpage);
}
return NOERROR;
}
STDMETHODIMP C$$ClassType$$PS::ReplacePage(UINT uPageID,
LPFNADDPROPSHEETPAGE lpfnReplaceWith, LPARAM lParam)
{
// TODO: Implement this method if you want to replace a
// Property page in a control panel
return S_FALSE;
}