Francois Gouget : comctl32: Update the PROPSHEET{HEADER, PAGE} structures and add some PSH_XXX macros.

Alexandre Julliard julliard at winehq.org
Thu Sep 8 14:52:11 CDT 2011


Module: wine
Branch: master
Commit: f981e351275976523fcd27576287cd8054ff3ae3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f981e351275976523fcd27576287cd8054ff3ae3

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Thu Sep  8 00:33:03 2011 +0200

comctl32: Update the PROPSHEET{HEADER,PAGE} structures and add some PSH_XXX macros.

Also add the compatibility PROPSHEET*_SIZE macros.

---

 include/prsht.h |  111 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 86 insertions(+), 25 deletions(-)

diff --git a/include/prsht.h b/include/prsht.h
index 0830757..d538c8e 100644
--- a/include/prsht.h
+++ b/include/prsht.h
@@ -59,57 +59,84 @@ typedef BOOL (CALLBACK *LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE, LPA
 /*
  * Property sheet support (structures)
  */
+
+typedef LPCDLGTEMPLATEA PROPSHEETPAGE_RESOURCEA;
+typedef LPCDLGTEMPLATEW PROPSHEETPAGE_RESOURCEW;
+DECL_WINELIB_TYPE_AW(PROPSHEETPAGE_RESOURCE)
+
 typedef struct _PROPSHEETPAGEA
 {
     DWORD              dwSize;
     DWORD              dwFlags;
-    HINSTANCE        hInstance;
+    HINSTANCE          hInstance;
     union
     {
-        LPCSTR           pszTemplate;
-        LPCDLGTEMPLATEA  pResource;
-    }DUMMYUNIONNAME;
+        LPCSTR         pszTemplate;
+        PROPSHEETPAGE_RESOURCEA 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_RESOURCEW 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 +177,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 +218,8 @@ typedef struct _PROPSHEETHEADERW
 } PROPSHEETHEADERW, *LPPROPSHEETHEADERW;
 
 typedef const PROPSHEETHEADERW *LPCPROPSHEETHEADERW;
+#define PROPSHEETHEADERW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW, pfnCallback)
+#define PROPSHEETHEADERW_V2_SIZE sizeof(PROPSHEETHEADERW)
 
 
 /*
@@ -214,6 +245,32 @@ DECL_WINELIB_TYPE_AW(LPPROPSHEETHEADER)
 DECL_WINELIB_TYPE_AW(LPCPROPSHEETHEADER)
 DECL_WINELIB_TYPE_AW(LPFNPSPCALLBACK)
 
+#ifdef WINE_NO_UNICODE_MACROS
+# define PRSHT_NAME_AW(base, suffix)                  \
+    base##_##suffix##_must_use_W_or_A_in_this_context \
+    base##_##suffix##_must_use_W_or_A_in_this_context
+# define DECL_PRSHT_TYPE_AW(base, suffix)  /* nothing */
+#else  /* WINE_NO_UNICODE_MACROS */
+# ifdef UNICODE
+#  define PRSHT_NAME_AW(base, suffix) base##W_##suffix
+# else
+#  define PRSHT_NAME_AW(base, suffix) base##A_##suffix
+# endif
+# define DECL_PRSHT_TYPE_AW(base, suffix)  typedef PRSHT_NAME_AW(base, suffix) base##_##suffix;
+#endif  /* WINE_NO_UNICODE_MACROS */
+
+DECL_PRSHT_TYPE_AW(PROPSHEETPAGE, LATEST)
+DECL_PRSHT_TYPE_AW(LPPROPSHEETPAGE, LATEST)
+DECL_PRSHT_TYPE_AW(LPCPROPSHEETPAGE, LATEST)
+#define PROPSHEETPAGE_V1_SIZE    PRSHT_NAME_AW(PROPSHEETPAGE, V1_SIZE)
+#define PROPSHEETPAGE_V2_SIZE    PRSHT_NAME_AW(PROPSHEETPAGE, V2_SIZE)
+#define PROPSHEETPAGE_V3_SIZE    PRSHT_NAME_AW(PROPSHEETPAGE, V3_SIZE)
+#define PROPSHEETPAGE_V4_SIZE    PRSHT_NAME_AW(PROPSHEETPAGE, V4_SIZE)
+#define PROPSHEETHEADER_V1_SIZE  PRSHT_NAME_AW(PROPSHEETHEADER, V1_SIZE)
+#define PROPSHEETHEADER_V2_SIZE  PRSHT_NAME_AW(PROPSHEETHEADER, V2_SIZE)
+
+#undef PRSHT_NAME_AW
+#undef DECL_PRSHT_TYPE_AW
 
 /*
  * Property sheet support (defines)
@@ -255,6 +312,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 +323,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




More information about the wine-cvs mailing list