comctl32: Update the PROPSHEET{HEADER,PAGE} structures and add some PSH_XXX macros.
Francois Gouget
fgouget at free.fr
Mon Sep 5 17:20:12 CDT 2011
Also add the compatibility PROPSHEET*_SIZE macros and fix up the
indentation.
---
The MSDN recommends using PROPSHEETHEADER_V1_SIZE for compatibility
with old versions of comctl32. I did not add the various XXX_V[1234]
structures though as I don't think they would be used that much.
include/prsht.h | 109 ++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 84 insertions(+), 25 deletions(-)
diff --git a/include/prsht.h b/include/prsht.h
index 0830757..0cc4318 100644
--- a/include/prsht.h
+++ b/include/prsht.h
@@ -59,57 +59,87 @@ typedef BOOL (CALLBACK *LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE, LPA
/*
* Property sheet support (structures)
*/
+#ifndef _WIN32
+typedef const VOID* PROPSHEETPAGE_RESOURCE;
+#elif defined(UNICODE)
+typedef LPCDLGTEMPLATEW PROPSHEETPAGE_RESOURCE;
+#else
+typedef LPCDLGTEMPLATEA PROPSHEETPAGE_RESOURCE;
+#endif
+
typedef struct _PROPSHEETPAGEA
{
DWORD dwSize;
DWORD dwFlags;
- HINSTANCE hInstance;
+ HINSTANCE hInstance;
union
{
- LPCSTR pszTemplate;
- LPCDLGTEMPLATEA pResource;
- }DUMMYUNIONNAME;
+ LPCSTR pszTemplate;
+ PROPSHEETPAGE_RESOURCE pResource;
+ } DUMMYUNIONNAME;
union
{
HICON hIcon;
- LPCSTR pszIcon;
- }DUMMYUNIONNAME2;
+ LPCSTR pszIcon;
+ } DUMMYUNIONNAME2;
LPCSTR pszTitle;
- DLGPROC pfnDlgProc;
+ DLGPROC pfnDlgProc;
LPARAM lParam;
- LPFNPSPCALLBACKA pfnCallback;
- UINT* pcRefParent;
+ LPFNPSPCALLBACKA pfnCallback;
+ UINT* pcRefParent;
LPCSTR pszHeaderTitle;
LPCSTR pszHeaderSubTitle;
-} PROPSHEETPAGEA, *LPPROPSHEETPAGEA;
-
-typedef const PROPSHEETPAGEA *LPCPROPSHEETPAGEA;
+ HANDLE hActCtx;
+ union
+ {
+ HBITMAP hbmHeader;
+ LPCSTR pszbmHeader;
+ } DUMMYUNIONNAME3;
+} PROPSHEETPAGEA, *LPPROPSHEETPAGEA,
+ PROPSHEETPAGEA_LATEST, *LPPROPSHEETPAGEA_LATEST;
+
+typedef const PROPSHEETPAGEA *LPCPROPSHEETPAGEA, *LPCPROPSHEETPAGEA_LATEST;
+#define PROPSHEETPAGEA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pcRefParent)
+#define PROPSHEETPAGEA_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, pszHeaderSubTitle)
+#define PROPSHEETPAGEA_V3_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA, hActCtx)
+#define PROPSHEETPAGEA_V4_SIZE sizeof(PROPSHEETHEADERA)
typedef struct _PROPSHEETPAGEW
{
- DWORD dwSize;
- DWORD dwFlags;
- HINSTANCE hInstance;
+ DWORD dwSize;
+ DWORD dwFlags;
+ HINSTANCE hInstance;
union
{
- LPCWSTR pszTemplate;
- LPCDLGTEMPLATEW pResource;
- }DUMMYUNIONNAME;
+ LPCWSTR pszTemplate;
+ PROPSHEETPAGE_RESOURCE pResource;
+ } DUMMYUNIONNAME;
union
{
HICON hIcon;
- LPCWSTR pszIcon;
- }DUMMYUNIONNAME2;
+ LPCWSTR pszIcon;
+ } DUMMYUNIONNAME2;
LPCWSTR pszTitle;
- DLGPROC pfnDlgProc;
+ DLGPROC pfnDlgProc;
LPARAM lParam;
- LPFNPSPCALLBACKW pfnCallback;
- UINT* pcRefParent;
+ LPFNPSPCALLBACKW pfnCallback;
+ UINT* pcRefParent;
LPCWSTR pszHeaderTitle;
LPCWSTR pszHeaderSubTitle;
-} PROPSHEETPAGEW, *LPPROPSHEETPAGEW;
+ HANDLE hActCtx;
+ union
+ {
+ HBITMAP hbmHeader;
+ LPCWSTR pszbmHeader;
+ } DUMMYUNIONNAME3;
+} PROPSHEETPAGEW, *LPPROPSHEETPAGEW,
+ PROPSHEETPAGEW_LATEST, *LPPROPSHEETPAGEW_LATEST;
-typedef const PROPSHEETPAGEW *LPCPROPSHEETPAGEW;
+typedef const PROPSHEETPAGEW *LPCPROPSHEETPAGEW, *LPCPROPSHEETPAGEW_LATEST;
+#define PROPSHEETPAGEW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pcRefParent)
+#define PROPSHEETPAGEW_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, pszHeaderSubTitle)
+#define PROPSHEETPAGEW_V3_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW, hActCtx)
+#define PROPSHEETPAGEW_V4_SIZE sizeof(PROPSHEETHEADERA)
typedef struct _PROPSHEETHEADERA
@@ -150,6 +180,8 @@ typedef struct _PROPSHEETHEADERA
} PROPSHEETHEADERA, *LPPROPSHEETHEADERA;
typedef const PROPSHEETHEADERA *LPCPROPSHEETHEADERA;
+#define PROPSHEETHEADERA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA, pfnCallback)
+#define PROPSHEETHEADERA_V2_SIZE sizeof(PROPSHEETHEADERA)
typedef struct _PROPSHEETHEADERW
{
@@ -189,6 +221,8 @@ typedef struct _PROPSHEETHEADERW
} PROPSHEETHEADERW, *LPPROPSHEETHEADERW;
typedef const PROPSHEETHEADERW *LPCPROPSHEETHEADERW;
+#define PROPSHEETHEADERW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, pfnCallback)
+#define PROPSHEETHEADERW_V2_SIZE sizeof(PROPSHEETHEADERW)
/*
@@ -213,6 +247,27 @@ DECL_WINELIB_TYPE_AW(PROPSHEETHEADER)
DECL_WINELIB_TYPE_AW(LPPROPSHEETHEADER)
DECL_WINELIB_TYPE_AW(LPCPROPSHEETHEADER)
DECL_WINELIB_TYPE_AW(LPFNPSPCALLBACK)
+#ifdef UNICODE
+typedef PROPSHEETPAGEW_LATEST PROPSHEETPAGE_LATEST;
+typedef LPPROPSHEETPAGEW_LATEST LPPROPSHEETPAGE_LATEST;
+typedef LPCPROPSHEETPAGEW_LATEST LPCPROPSHEETPAGE_LATEST;
+#define PROPSHEETPAGE_V1_SIZE PROPSHEETPAGEW_V1_SIZE
+#define PROPSHEETPAGE_V2_SIZE PROPSHEETPAGEW_V2_SIZE
+#define PROPSHEETPAGE_V3_SIZE PROPSHEETPAGEW_V3_SIZE
+#define PROPSHEETPAGE_V4_SIZE PROPSHEETPAGEW_V4_SIZE
+#define PROPSHEETHEADER_V1_SIZE PROPSHEETHEADERW_V1_SIZE
+#define PROPSHEETHEADER_V2_SIZE PROPSHEETHEADERW_V2_SIZE
+#else
+typedef PROPSHEETPAGEA_LATEST PROPSHEETPAGE_LATEST;
+typedef LPPROPSHEETPAGEA_LATEST LPPROPSHEETPAGE_LATEST;
+typedef LPCPROPSHEETPAGEA_LATEST LPCPROPSHEETPAGE_LATEST;
+#define PROPSHEETPAGE_V1_SIZE PROPSHEETPAGEA_V1_SIZE
+#define PROPSHEETPAGE_V2_SIZE PROPSHEETPAGEA_V2_SIZE
+#define PROPSHEETPAGE_V3_SIZE PROPSHEETPAGEA_V3_SIZE
+#define PROPSHEETPAGE_V4_SIZE PROPSHEETPAGEA_V4_SIZE
+#define PROPSHEETHEADER_V1_SIZE PROPSHEETHEADERA_V1_SIZE
+#define PROPSHEETHEADER_V2_SIZE PROPSHEETHEADERA_V2_SIZE
+#endif
/*
@@ -255,6 +310,7 @@ DECL_WINELIB_TYPE_AW(LPFNPSPCALLBACK)
#define PSH_WIZARDCONTEXTHELP 0x00001000
#define PSH_WIZARD97_OLD 0x00002000 /* for IE < 5 */
+#define PSH_AEROWIZARD 0x00004000
#define PSH_WATERMARK 0x00008000
#define PSH_USEHBMWATERMARK 0x00010000
#define PSH_USEHPLWATERMARK 0x00020000
@@ -265,6 +321,9 @@ DECL_WINELIB_TYPE_AW(LPFNPSPCALLBACK)
#define PSH_WIZARD_LITE 0x00400000
#define PSH_WIZARD97_NEW 0x01000000 /* for IE >= 5 */
#define PSH_NOCONTEXTHELP 0x02000000
+#define PSH_RESIZABLE 0x04000000
+#define PSH_HEADERBITMAP 0x08000000
+#define PSH_NOMARGIN 0x10000000
#ifndef __WINESRC__
# if defined(_WIN32_IE) && (_WIN32_IE < 0x0500)
# define PSH_WIZARD97 PSH_WIZARD97_OLD
--
1.7.5.4
More information about the wine-patches
mailing list