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.
171 lines
4.7 KiB
171 lines
4.7 KiB
// Copyright (c) 1997-1999 Microsoft Corporation
|
|
//
|
|
// Property Page base class
|
|
//
|
|
// 9-9-97 sburns
|
|
|
|
|
|
|
|
#ifndef PROPPAGE_HPP_INCLUDED
|
|
#define PROPPAGE_HPP_INCLUDED
|
|
|
|
|
|
|
|
// PropertyPage extends the Dialog class to provide message cracking for
|
|
// property page notifications.
|
|
|
|
class PropertyPage : public Dialog
|
|
{
|
|
public:
|
|
|
|
// Calls CreatePropertySheetPage and returns the resulting HPROPSHEETPAGE.
|
|
// Normally, the HPROPSHEETPAGE is deleted by a later call to the Win32
|
|
// API ::PropertySheet. If the HPROPSHEETPAGE is not passed to
|
|
// PropertySheet, or PropertySheet fails, it should be deleted with
|
|
// ::DestroyPropertySheetPage.
|
|
|
|
virtual
|
|
HPROPSHEETPAGE
|
|
Create();
|
|
|
|
protected:
|
|
|
|
// Invoked upon receipt of the PSN_APPLY notification message. Return true
|
|
// if you handle the messages, false if you do not. The default
|
|
// implementation returns false.
|
|
//
|
|
// isClosing - true if the sheet is closing (OK was pressed), false if
|
|
// not (Apply was pressed).
|
|
|
|
virtual
|
|
bool
|
|
OnApply(bool isClosing);
|
|
|
|
// Invoked upon receipt of the PSN_HELP notification message. Return true
|
|
// if you handle the message, false if you do not. The default
|
|
// implementation returns false.
|
|
|
|
virtual
|
|
bool
|
|
OnHelp();
|
|
|
|
// Invoked upon receipt of the PSN_KILLACTIVE notification message. Return
|
|
// true if you handle the messages, false if you do not. The default
|
|
// implementation returns false.
|
|
|
|
virtual
|
|
bool
|
|
OnKillActive();
|
|
|
|
// Invoked upon receipt of the PSN_SETACTIVE notification message. Return
|
|
// true if you handle the messages, false if you do not. The default
|
|
// implementation returns false.
|
|
|
|
virtual
|
|
bool
|
|
OnSetActive();
|
|
|
|
// Invoked upon receipt of the PSN_QUERYCANCEL notification message.
|
|
// Return true if you handle the messages, false if you do not. The
|
|
// default implementation returns false.
|
|
|
|
virtual
|
|
bool
|
|
OnQueryCancel();
|
|
|
|
// Invoked upon receipt of the PSN_RESET notification message. Return
|
|
// true if you handle the messages, false if you do not. The default
|
|
// implementation returns false.
|
|
|
|
virtual
|
|
bool
|
|
OnReset();
|
|
|
|
// Invoked upon receipt of the PSN_WIZBACK notification message. Return
|
|
// true if you handle the messages, false if you do not. The default
|
|
// implementation returns false.
|
|
|
|
virtual
|
|
bool
|
|
OnWizBack();
|
|
|
|
// Invoked upon receipt of the PSN_WIZNEXT notification message. Return
|
|
// true if you handle the messages, false if you do not. The default
|
|
// implementation returns false.
|
|
|
|
virtual
|
|
bool
|
|
OnWizNext();
|
|
|
|
// Invoked upon receipt of the PSN_WIZFINISH notification message. Return
|
|
// true if you handle the messages, false if you do not. The default
|
|
// implementation returns false.
|
|
// The handler must set the DWLP_MSGRESULT by calling Win::SetWindowLongPtr
|
|
// to tell the sheet whether or not to shutdown the wizard.
|
|
|
|
virtual
|
|
bool
|
|
OnWizFinish();
|
|
|
|
// Constructs a new instance. Declared protected so that this class
|
|
// only functions as base class
|
|
//
|
|
// dialogResID - resource identifier of the dialog template resource.
|
|
//
|
|
// helpMap - array mapping dialog control IDs to context help IDs. The
|
|
// array must be in the following form:
|
|
// {
|
|
// controlID1, helpID1,
|
|
// controlID2, helpID2,
|
|
// controlIDn, helpIDn,
|
|
// 0, 0
|
|
// }
|
|
//
|
|
// To indicate that a control does not have help, the value of its
|
|
// corresponding help ID should be -1. This array is copied by the
|
|
// constuctor.
|
|
//
|
|
// deleteOnRelease - true to delete the instance when the Win32
|
|
// ::PropertySheet function is about to destroy the sheet, and sends the
|
|
// PSPCB_RELEASE message to each page's callback. false if the page
|
|
// instance will be deleted at a later point.
|
|
|
|
PropertyPage(
|
|
unsigned dialogResID,
|
|
const DWORD helpMap[],
|
|
bool deleteOnRelease = true);
|
|
|
|
// protected dtor so that the dtors of derived classes can call this,
|
|
// the base class' dtor, and to suggest that prop pages are self-deleting.
|
|
|
|
virtual ~PropertyPage();
|
|
|
|
static
|
|
INT_PTR APIENTRY
|
|
propPageDialogProc(
|
|
HWND dialog,
|
|
UINT message,
|
|
WPARAM wparam,
|
|
LPARAM lparam);
|
|
|
|
static
|
|
UINT CALLBACK
|
|
PropSheetPageCallback(HWND hwnd, UINT uMsg, PROPSHEETPAGE* page);
|
|
|
|
private:
|
|
|
|
static
|
|
PropertyPage*
|
|
getPage(HWND pageDialog);
|
|
|
|
// not implemented: no copying allowed
|
|
PropertyPage(const PropertyPage&);
|
|
const PropertyPage& operator=(const PropertyPage&);
|
|
|
|
bool deleteOnRelease;
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // PROPPAGE_HPP_INCLUDED
|