129 lines
4.4 KiB
C++
129 lines
4.4 KiB
C++
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// CPropertySheetPage is a small wrapper around the PROPSHEETPAGE structure.
|
|
// The class mostly does parameter validation.
|
|
//
|
|
// This is an example of how it can be used...
|
|
//
|
|
//
|
|
// CPropertySheetPage MyPropertySheetPage(
|
|
// MAKEINTRESOURCE( IDD_PROPPAGE_DEFAULT ),
|
|
// ( DLGPROC ) MyDlgProc,
|
|
// PSP_HASHELP
|
|
// );
|
|
//
|
|
//
|
|
// The casting operators are defined to cast a CPropertySheetPage to a LPPROPSHEETPAGE, which is
|
|
// useful for assigning to the elements in a PROPSHEETHEADER
|
|
//
|
|
//
|
|
// PROPSHEETHEADER Psh;
|
|
// LPPROPSHEETPAGE pPageAry;
|
|
// extern PROPSHEETPAGE OtherPage;
|
|
//
|
|
// pPageAry = new PROPSHEETPAGE[ 2 ]
|
|
//
|
|
//
|
|
// pPageAry[ 0 ] = MyPropertySheetPage;
|
|
// pPageAry[ 0 ] = OtherPage;
|
|
//
|
|
// Psh . ppsp = pPageAry;
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// NOTE: this is the signature for the callback function, if specified:
|
|
//
|
|
// UINT (CALLBACK FAR * LPFNPSPCALLBACKA)(HWND hwnd, UINT uMsg, struct _PROPSHEETPAGEA FAR *ppsp);
|
|
//
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#ifndef __PropPg_h__
|
|
#define __PropPg_h__
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// comment this out if you don't want data validation ( class essentially does nothing )
|
|
//
|
|
#define CPropertySheetPage_ValidateParameters
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CPropertySheetPage : public PROPSHEETPAGE {
|
|
|
|
public: // Construction / destruction
|
|
CPropertySheetPage( void ); // So We can make an Array of these things
|
|
|
|
CPropertySheetPage( const CPropertySheetPage& r );
|
|
|
|
// pssTemplate can specify either the resource identifier of the template
|
|
// or the address of a string that specifies the name of the template
|
|
CPropertySheetPage( LPCTSTR pszTemplate, DLGPROC pfnDlgProc,
|
|
DWORD dwFlags = 0, LPARAM lParam = 0L
|
|
);
|
|
|
|
CPropertySheetPage( LPCDLGTEMPLATE pResource, DLGPROC pfnDlgProc,
|
|
DWORD dwFlags = 0, LPARAM lParam = 0L
|
|
);
|
|
|
|
// psTemplate can specify either the resource identifier of the template
|
|
// or the address of a string that specifies the name of the template
|
|
CPropertySheetPage( LPCTSTR pszTemplate, DLGPROC pfnDlgProc,
|
|
HICON hIcon, LPCTSTR pszTitle = NULL, DWORD dwFlags = 0,
|
|
LPARAM lParam = NULL, LPFNPSPCALLBACK pfnCallBack = NULL,
|
|
UINT FAR * pcRefParent = NULL
|
|
);
|
|
|
|
CPropertySheetPage( LPCDLGTEMPLATE pResource, DLGPROC pfnDlgProc,
|
|
HICON hIcon, LPCTSTR pszTitle = NULL, DWORD dwFlags = 0,
|
|
LPARAM lParam = NULL, LPFNPSPCALLBACK pfnCallBack = NULL,
|
|
UINT FAR * pcRefParent = NULL
|
|
);
|
|
|
|
// pszTemplate can specify either the resource identifier of the template
|
|
// or the address of a string that specifies the name of the template
|
|
CPropertySheetPage( LPCTSTR pszTemplate, DLGPROC pfnDlgProc,
|
|
LPCTSTR pszIcon, LPCTSTR pszTitle = NULL, DWORD dwFlags = 0,
|
|
LPARAM lParam = NULL, LPFNPSPCALLBACK pfnCallBack = NULL,
|
|
UINT FAR * pcRefParent = NULL
|
|
);
|
|
|
|
CPropertySheetPage( LPCDLGTEMPLATE pResource, DLGPROC pfnDlgProc,
|
|
LPCTSTR pszIcon, LPCTSTR pszTitle = NULL, DWORD dwFlags = 0,
|
|
LPARAM lParam = NULL, LPFNPSPCALLBACK pfnCallBack = NULL,
|
|
UINT FAR * pcRefParent = NULL
|
|
);
|
|
|
|
CPropertySheetPage( LPCPROPSHEETPAGE pPageVector );
|
|
|
|
CPropertySheetPage& operator=( const CPropertySheetPage& r );
|
|
~CPropertySheetPage( void );
|
|
|
|
|
|
// conversion operator
|
|
operator LPPROPSHEETPAGE() { return this; }
|
|
operator LPCPROPSHEETPAGE() { return this; }
|
|
|
|
private: // Helper Fns
|
|
|
|
void _InitData( void );
|
|
BOOL _IsRightToLeftLocale( void ) const;
|
|
|
|
// Set with optional validation, defined in the cpp file
|
|
BOOL _Set_hInstance( HINSTANCE hInst );
|
|
BOOL _Set_pszTemplate( LPCTSTR pszTemplate );
|
|
BOOL _Set_pResource( LPCDLGTEMPLATE pResource );
|
|
BOOL _Set_hIcon( HICON hIcon );
|
|
BOOL _Set_pszIcon( LPCTSTR pszIcon );
|
|
BOOL _Set_pszTitle( LPCTSTR pszTitle );
|
|
BOOL _Set_pfnDlgProc( DLGPROC pfnDlgProc );
|
|
BOOL _Set_pfnCallback( LPFNPSPCALLBACK pfnCallBack );
|
|
BOOL _Set_lParam( LPARAM lParam );
|
|
BOOL _Set_pcRefParent( UINT FAR * pcRefParent );
|
|
BOOL _Validate( void ) const;
|
|
};
|
|
|
|
|
|
|
|
#endif // __PropPg_h__
|