winapi: Add support for GDIPCONST.
[wine] / include / commdlg.h
index d046e4c..da3e6d1 100644 (file)
@@ -1,5 +1,21 @@
-/* 
+/*
  * COMMDLG - Common Wine Dialog ... :-)
+ *
+ * Copyright (C) the Wine project
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
 #ifndef __WINE_COMMDLG_H
 extern "C" {
 #endif
 
-#include "windef.h"            /* needed for CHOOSEFONT structure */
-#include "wingdi.h"
-#include "winuser.h"
-#include "pshpack1.h"
+#include <prsht.h>
+#include <pshpack1.h>
+
+#ifndef SNDMSG
+#ifdef __cplusplus
+#define SNDMSG ::SendMessage
+#else   /* __cplusplus */
+#define SNDMSG SendMessage
+#endif  /* __cplusplus */
+#endif  /* SNDMSG */
 
 #define OFN_READONLY                 0x00000001
 #define OFN_OVERWRITEPROMPT          0x00000002
@@ -31,15 +53,15 @@ extern "C" {
 #define OFN_SHAREAWARE               0x00004000
 #define OFN_NOREADONLYRETURN         0x00008000
 #define OFN_NOTESTFILECREATE         0x00010000
-#define OFN_NONETWORKBUTTON          0x00020000 
+#define OFN_NONETWORKBUTTON          0x00020000
 #define OFN_NOLONGNAMES              0x00040000
 #define OFN_EXPLORER                 0x00080000
 #define OFN_NODEREFERENCELINKS       0x00100000
 #define OFN_LONGNAMES                0x00200000
-
-/* WINE internal flags */
-#define OFN_UNICODE                 0x40000000 /*to differ between 32W/A hook*/
-#define OFN_WINE                    0x80000000 /* comdlg32 */
+#define OFN_ENABLEINCLUDENOTIFY      0x00400000
+#define OFN_ENABLESIZING             0x00800000
+#define OFN_DONTADDTORECENT          0x02000000
+#define OFN_FORCESHOWHIDDEN          0x10000000
 
 #define OFN_SHAREFALLTHROUGH     2
 #define OFN_SHARENOWARN          1
@@ -47,34 +69,10 @@ extern "C" {
 
 #define SAVE_DIALOG  1
 #define OPEN_DIALOG  2
-    
-typedef UINT16 (CALLBACK *LPOFNHOOKPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
-typedef UINT (CALLBACK *LPOFNHOOKPROC)(HWND,UINT,WPARAM,LPARAM);
 
-typedef struct {
-       DWORD           lStructSize;
-       HWND16          hwndOwner;
-       HINSTANCE16     hInstance;
-       SEGPTR          lpstrFilter;
-       SEGPTR          lpstrCustomFilter;
-       DWORD           nMaxCustFilter;
-       DWORD           nFilterIndex;
-       SEGPTR          lpstrFile;
-       DWORD           nMaxFile;
-       SEGPTR          lpstrFileTitle;
-       DWORD           nMaxFileTitle;
-       SEGPTR          lpstrInitialDir;
-       SEGPTR          lpstrTitle;
-       DWORD           Flags;
-       UINT16          nFileOffset;
-       UINT16          nFileExtension;
-       SEGPTR          lpstrDefExt;
-       LPARAM          lCustData;
-       LPOFNHOOKPROC16 lpfnHook;
-       SEGPTR          lpTemplateName;
-}   OPENFILENAME16,*LPOPENFILENAME16;
+typedef UINT (CALLBACK *LPOFNHOOKPROC)(HWND,UINT,WPARAM,LPARAM);
 
-typedef struct {
+typedef struct tagOFNA {
        DWORD           lStructSize;
        HWND            hwndOwner;
        HINSTANCE       hInstance;
@@ -97,7 +95,7 @@ typedef struct {
        LPCSTR          lpTemplateName;
 } OPENFILENAMEA,*LPOPENFILENAMEA;
 
-typedef struct {
+typedef struct tagOFNW {
        DWORD           lStructSize;
        HWND            hwndOwner;
        HINSTANCE       hInstance;
@@ -123,6 +121,15 @@ typedef struct {
 DECL_WINELIB_TYPE_AW(OPENFILENAME)
 DECL_WINELIB_TYPE_AW(LPOPENFILENAME)
 
+#ifndef CDSIZEOF_STRUCT
+#define CDSIZEOF_STRUCT(type,field) ((int)&(((type *)0)->field) + sizeof(((type*)0)->field))
+#endif
+
+#define OPENFILENAME_SIZE_VERSION_400A CDSIZEOF_STRUCT(OPENFILENAMEA,lpTemplateName)
+#define OPENFILENAME_SIZE_VERSION_400W CDSIZEOF_STRUCT(OPENFILENAMEW,lpTemplateName)
+#define OPENFILENAME_SIZE_VERSION_400 WINELIB_NAME_AW(OPENFILENAME_SIZE_VERSION_400)
+
+
 typedef struct
 {
        NMHDR           hdr;
@@ -139,27 +146,13 @@ typedef struct
 
 DECL_WINELIB_TYPE_AW(OFNOTIFY)
 DECL_WINELIB_TYPE_AW(LPOFNOTIFY)
-typedef UINT16 (CALLBACK *LPCCHOOKPROC16) (HWND16, UINT16, WPARAM16, LPARAM);
-typedef UINT (CALLBACK *LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
 
-typedef struct {
-       DWORD           lStructSize;
-       HWND16          hwndOwner;
-       HWND16          hInstance;
-       COLORREF        rgbResult;
-       COLORREF       *lpCustColors;
-       DWORD           Flags;
-       LPARAM          lCustData;
-        LPCCHOOKPROC16  lpfnHook;
-       SEGPTR          lpTemplateName;
-} CHOOSECOLOR16;
-typedef CHOOSECOLOR16 *LPCHOOSECOLOR16;
+typedef UINT (CALLBACK *LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
 
 typedef struct {
        DWORD           lStructSize;
        HWND            hwndOwner;
-       HWND            hInstance;
+       HWND            hInstance; /* Should be an HINSTANCE but MS made a typo */
        DWORD           rgbResult;
        LPDWORD         lpCustColors;
        DWORD           Flags;
@@ -172,7 +165,7 @@ typedef CHOOSECOLORA *LPCHOOSECOLORA;
 typedef struct {
        DWORD           lStructSize;
        HWND            hwndOwner;
-       HWND            hInstance;
+       HWND            hInstance; /* Should be an HINSTANCE but MS made a typo */
        DWORD           rgbResult;
        LPDWORD         lpCustColors;
        DWORD           Flags;
@@ -193,30 +186,15 @@ DECL_WINELIB_TYPE_AW(LPCHOOSECOLOR)
 #define CC_ENABLEHOOK            0x00000010
 #define CC_ENABLETEMPLATE        0x00000020
 #define CC_ENABLETEMPLATEHANDLE  0x00000040
+#define CC_SOLIDCOLOR            0x00000080
+#define CC_ANYCOLOR              0x00000100
 
-typedef UINT16 (CALLBACK *LPFRHOOKPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
 typedef UINT (CALLBACK *LPFRHOOKPROC)(HWND,UINT,WPARAM,LPARAM);
 
-typedef struct {
-       DWORD           lStructSize;                    /* size of this struct 0x20 */
-       HWND16          hwndOwner;                              /* handle to owner's window */
-       HINSTANCE16     hInstance;                              /* instance handle of.EXE that  */
-                                                                               /*      contains cust. dlg. template */
-       DWORD           Flags;                  /* one or more of the FR_?? */
-       SEGPTR          lpstrFindWhat;          /* ptr. to search string    */
-       SEGPTR          lpstrReplaceWith;       /* ptr. to replace string   */
-       UINT16          wFindWhatLen;           /* size of find buffer      */
-       UINT16          wReplaceWithLen;        /* size of replace buffer   */
-       LPARAM          lCustData;              /* data passed to hook fn.  */
-        LPFRHOOKPROC16  lpfnHook;
-       SEGPTR          lpTemplateName;         /* custom template name     */
-       } FINDREPLACE16, *LPFINDREPLACE16;
-
 typedef struct {
        DWORD           lStructSize;
        HWND            hwndOwner;
        HINSTANCE       hInstance;
-
        DWORD           Flags;
        LPSTR           lpstrFindWhat;
        LPSTR           lpstrReplaceWith;
@@ -225,13 +203,12 @@ typedef struct {
        LPARAM          lCustData;
         LPFRHOOKPROC    lpfnHook;
        LPCSTR          lpTemplateName;
-       } FINDREPLACEA, *LPFINDREPLACEA;
+} FINDREPLACEA, *LPFINDREPLACEA;
 
 typedef struct {
        DWORD           lStructSize;
        HWND            hwndOwner;
        HINSTANCE       hInstance;
-
        DWORD           Flags;
        LPWSTR          lpstrFindWhat;
        LPWSTR          lpstrReplaceWith;
@@ -240,11 +217,11 @@ typedef struct {
        LPARAM          lCustData;
         LPFRHOOKPROC    lpfnHook;
        LPCWSTR         lpTemplateName;
-       } FINDREPLACEW, *LPFINDREPLACEW;
-       
+} FINDREPLACEW, *LPFINDREPLACEW;
+
 DECL_WINELIB_TYPE_AW(FINDREPLACE)
 DECL_WINELIB_TYPE_AW(LPFINDREPLACE)
-       
+
 #define FR_DOWN                         0x00000001
 #define FR_WHOLEWORD                    0x00000002
 #define FR_MATCHCASE                    0x00000004
@@ -262,73 +239,50 @@ DECL_WINELIB_TYPE_AW(LPFINDREPLACE)
 #define FR_HIDEUPDOWN                   0x00004000
 #define FR_HIDEMATCHCASE                0x00008000
 #define FR_HIDEWHOLEWORD                0x00010000
+#define FR_MATCHDIAC                    0x20000000
+#define FR_MATCHKASHIDA                 0x40000000
+#define FR_MATCHALEFHAMZA               0x80000000
 
-typedef UINT16 (CALLBACK *LPCFHOOKPROC16)(HWND16,UINT16,WPARAM16,LPARAM);
 typedef UINT (CALLBACK *LPCFHOOKPROC)(HWND,UINT,WPARAM,LPARAM);
 
-typedef struct 
+typedef struct tagCHOOSEFONTA
 {
-       DWORD                   lStructSize;
-       HWND16                  hwndOwner;          /* caller's window handle   */
-       HDC16                   hDC;                /* printer DC/IC or NULL    */
-       SEGPTR                  lpLogFont;          /* ptr. to a LOGFONT struct */
-       short                   iPointSize;         /* 10 * size in points of selected font */
-       DWORD                   Flags;  /* enum. type flags         */
-       COLORREF                rgbColors;          /* returned text color      */
-       LPARAM                  lCustData;          /* data passed to hook fn.  */
-       LPCFHOOKPROC16          lpfnHook;
-       SEGPTR                  lpTemplateName;     /* custom template name     */
-       HINSTANCE16             hInstance;          /* instance handle of.EXE that   */
-                                                       /* contains cust. dlg. template  */
-       SEGPTR                  lpszStyle;  /* return the style field here   */
-                                                       /* must be LF_FACESIZE or bigger */
-       UINT16                  nFontType;              /* same value reported to the    */
-                                                       /* EnumFonts callback with the   */
-                                                       /* extra FONTTYPE_ bits added    */
-       short                   nSizeMin;   /* minimum pt size allowed & */
-       short                   nSizeMax;   /* max pt size allowed if    */
-                                                       /* CF_LIMITSIZE is used      */
-} CHOOSEFONT16, *LPCHOOSEFONT16;
-
-
-typedef struct
-{
-       UINT    lStructSize; 
-       HWND            hwndOwner; 
-       HDC             hDC; 
-       LPLOGFONTA    lpLogFont; 
-       INT             iPointSize; 
-       DWORD           Flags; 
-       COLORREF        rgbColors; 
-       LPARAM          lCustData; 
-       LPCFHOOKPROC    lpfnHook; 
-       LPCSTR          lpTemplateName; 
-       HINSTANCE       hInstance; 
-       LPSTR           lpszStyle; 
-       UINT16          nFontType; 
-       UINT16  ___MISSING_ALIGNMENT__; 
-       INT     nSizeMin; 
-       INT             nSizeMax; 
+       UINT    lStructSize;
+       HWND            hwndOwner;
+       HDC             hDC;
+       LPLOGFONTA    lpLogFont;
+       INT             iPointSize;
+       DWORD           Flags;
+       COLORREF        rgbColors;
+       LPARAM          lCustData;
+       LPCFHOOKPROC    lpfnHook;
+       LPCSTR          lpTemplateName;
+       HINSTANCE       hInstance;
+       LPSTR           lpszStyle;
+       WORD            nFontType;
+       WORD    ___MISSING_ALIGNMENT__;
+       INT     nSizeMin;
+       INT             nSizeMax;
 } CHOOSEFONTA, *LPCHOOSEFONTA;
 
-typedef struct
+typedef struct tagCHOOSEFONTW
 {
-       UINT    lStructSize; 
-       HWND            hwndOwner; 
-       HDC             hDC; 
-       LPLOGFONTW    lpLogFont; 
-       INT             iPointSize; 
-       DWORD           Flags; 
-       COLORREF        rgbColors; 
-       LPARAM          lCustData; 
-       LPCFHOOKPROC    lpfnHook; 
-       LPCWSTR         lpTemplateName; 
-       HINSTANCE       hInstance; 
-       LPWSTR          lpszStyle; 
-       UINT16          nFontType; 
-       UINT16  ___MISSING_ALIGNMENT__; 
-       INT     nSizeMin; 
-       INT             nSizeMax; 
+       UINT    lStructSize;
+       HWND            hwndOwner;
+       HDC             hDC;
+       LPLOGFONTW    lpLogFont;
+       INT             iPointSize;
+       DWORD           Flags;
+       COLORREF        rgbColors;
+       LPARAM          lCustData;
+       LPCFHOOKPROC    lpfnHook;
+       LPCWSTR         lpTemplateName;
+       HINSTANCE       hInstance;
+       LPWSTR          lpszStyle;
+       WORD            nFontType;
+       WORD    ___MISSING_ALIGNMENT__;
+       INT     nSizeMin;
+       INT             nSizeMax;
 } CHOOSEFONTW, *LPCHOOSEFONTW;
 
 DECL_WINELIB_TYPE_AW(CHOOSEFONT)
@@ -374,13 +328,90 @@ DECL_WINELIB_TYPE_AW(LPCHOOSEFONT)
 #define WM_CHOOSEFONT_SETLOGFONT       (WM_USER + 101)
 #define WM_CHOOSEFONT_SETFLAGS         (WM_USER + 102)
 
-#define LBSELCHSTRING  "commdlg_LBSelChangedNotify"
-#define SHAREVISTRING  "commdlg_ShareViolation"
-#define FILEOKSTRING   "commdlg_FileNameOK"
-#define COLOROKSTRING  "commdlg_ColorOK"
-#define SETRGBSTRING   "commdlg_SetRGBColor"
-#define FINDMSGSTRING  "commdlg_FindReplace"
-#define HELPMSGSTRING  "commdlg_help"
+#define LBSELCHSTRINGA  "commdlg_LBSelChangedNotify"
+#if defined(__GNUC__)
+# define LBSELCHSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+  'L','B','S','e','l','C','h','a','n','g','e','d','N','o','t','i','f','y',0 }
+#elif defined(_MSC_VER)
+# define LBSELCHSTRINGW L"commdlg_LBSelChangedNotify"
+#else
+static const WCHAR LBSELCHSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+  'L','B','S','e','l','C','h','a','n','g','e','d','N','o','t','i','f','y',0 };
+#endif
+#define LBSELCHSTRING   WINELIB_NAME_AW(LBSELCHSTRING)
+
+#define SHAREVISTRINGA  "commdlg_ShareViolation"
+#if defined(__GNUC__)
+# define SHAREVISTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+  'S','h','a','r','e','V','i','o','l','a','t','i','o','n',0 }
+#elif defined(_MSC_VER)
+# define SHAREVISTRINGW L"commdlg_ShareViolation"
+#else
+static const WCHAR SHAREVISTRINGW[] = { 'c','o','m','m','d','l','g','_',
+  'S','h','a','r','e','V','i','o','l','a','t','i','o','n',0 };
+#endif
+#define SHAREVISTRING   WINELIB_NAME_AW(SHAREVISTRING)
+
+#define FILEOKSTRINGA   "commdlg_FileNameOK"
+#if defined(__GNUC__)
+# define FILEOKSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+  'F','i','l','e','N','a','m','e','O','K',0 }
+#elif defined(_MSC_VER)
+# define FILEOKSTRINGW  L"commdlg_FileNameOK"
+#else
+static const WCHAR FILEOKSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+  'F','i','l','e','N','a','m','e','O','K',0 };
+#endif
+#define FILEOKSTRING    WINELIB_NAME_AW(FILEOKSTRING)
+
+#define COLOROKSTRINGA  "commdlg_ColorOK"
+#if defined(__GNUC__)
+# define COLOROKSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+  'C','o','l','o','r','O','K',0 }
+#elif defined(_MSC_VER)
+# define COLOROKSTRINGW L"commdlg_ColorOK"
+#else
+static const WCHAR COLOROKSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+  'C','o','l','o','r','O','K',0 };
+#endif
+#define COLOROKSTRING   WINELIB_NAME_AW(COLOROKSTRING)
+
+#define SETRGBSTRINGA   "commdlg_SetRGBColor"
+#if defined(__GNUC__)
+# define SETRGBSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+  'S','e','t','R','G','B','C','o','l','o','r',0 }
+#elif defined(_MSC_VER)
+# define SETRGBSTRINGW  L"commdlg_SetRGBColor"
+#else
+static const WCHAR SETRGBSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+  'S','e','t','R','G','B','C','o','l','o','r',0 };
+#endif
+#define SETRGBSTRING    WINELIB_NAME_AW(SETRGBSTRING)
+
+#define FINDMSGSTRINGA  "commdlg_FindReplace"
+#if defined(__GNUC__)
+# define FINDMSGSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+  'F','i','n','d','R','e','p','l','a','c','e',0 }
+#elif defined(_MSC_VER)
+# define FINDMSGSTRINGW L"commdlg_FindReplace"
+#else
+static const WCHAR FINDMSGSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+  'F','i','n','d','R','e','p','l','a','c','e',0 };
+#endif
+#define FINDMSGSTRING   WINELIB_NAME_AW(FINDMSGSTRING)
+
+#define HELPMSGSTRINGA  "commdlg_help"
+#if defined(__GNUC__)
+# define HELPMSGSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+  'H','e','l','p',0 }
+#elif defined(_MSC_VER)
+# define HELPMSGSTRINGW L"commdlg_help"
+#else
+static const WCHAR HELPMSGSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+  'H','e','l','p',0 };
+#endif
+#define HELPMSGSTRING   WINELIB_NAME_AW(HELPMSGSTRING)
+
 
 #define CD_LBSELNOITEMS -1
 #define CD_LBSELCHANGE   0
@@ -442,35 +473,39 @@ DECL_WINELIB_TYPE_AW(LPCHOOSEFONT)
 #define CommDlg_OpenSave_SetDefExt(_hdlg, _pszext) \
         (void)SNDMSG(_hdlg, CDM_SETDEFEXT, 0, (LPARAM)(LPSTR)_pszext)
 
+#define CommDlg_OpenSave_GetSpecA(_hdlg, _psz, _cbmax) \
+        (int)SNDMSG(_hdlg, CDM_GETSPEC, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz)
+#define CommDlg_OpenSave_GetSpecW(_hdlg, _psz, _cbmax) \
+        (int)SNDMSG(_hdlg, CDM_GETSPEC, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz)
+#define CommDlg_OpenSave_GetSpec WINELIB_NAME_AW(CommDlg_OpenSave_GetSpec)
 
-typedef UINT16 (CALLBACK *LPPRINTHOOKPROC16) (HWND16, UINT16, WPARAM16, LPARAM);
-typedef UINT (CALLBACK *LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
+#define CommDlg_OpenSave_GetFilePathA(_hdlg, _psz, _cbmax) \
+        (int)SNDMSG(_hdlg, CDM_GETFILEPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz)
+#define CommDlg_OpenSave_GetFilePathW(_hdlg, _psz, _cbmax) \
+        (int)SNDMSG(_hdlg, CDM_GETFILEPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz)
+#define CommDlg_OpenSave_GetFilePath WINELIB_NAME_AW(CommDlg_OpenSave_GetFilePath)
 
-typedef UINT16 (CALLBACK *LPSETUPHOOKPROC16) (HWND16, UINT16, WPARAM16, LPARAM);
-typedef UINT (CALLBACK *LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
+#define CommDlg_OpenSave_GetFolderPathA(_hdlg, _psz, _cbmax) \
+        (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPSTR)_psz)
+#define CommDlg_OpenSave_GetFolderPathW(_hdlg, _psz, _cbmax) \
+        (int)SNDMSG(_hdlg, CDM_GETFOLDERPATH, (WPARAM)_cbmax, (LPARAM)(LPWSTR)_psz)
+#define CommDlg_OpenSave_GetFolderPath WINELIB_NAME_AW(CommDlg_OpenSave_GetFolderPath)
 
-typedef struct
-{
-    DWORD            lStructSize;
-    HWND16           hwndOwner;
-    HGLOBAL16        hDevMode;
-    HGLOBAL16        hDevNames;
-    HDC16            hDC;
-    DWORD            Flags;
-    WORD             nFromPage;
-    WORD             nToPage;
-    WORD             nMinPage;
-    WORD             nMaxPage;
-    WORD             nCopies;
-    HINSTANCE16      hInstance;
-    LPARAM           lCustData;
-    LPPRINTHOOKPROC16 lpfnPrintHook;
-    LPSETUPHOOKPROC16 lpfnSetupHook;
-    SEGPTR           lpPrintTemplateName;
-    SEGPTR           lpSetupTemplateName;
-    HGLOBAL16        hPrintTemplate;
-    HGLOBAL16        hSetupTemplate;
-} PRINTDLG16, *LPPRINTDLG16;
+#define CommDlg_OpenSave_GetFolderIDList(_hdlg, _pidl, _cbmax) \
+        (int)SNDMSG(_hdlg, CDM_GETFOLDERIDLIST, (WPARAM)_cbmax, (LPARAM)(LPVOID)_pidl)
+
+#define CommDlg_OpenSave_SetControlText(_hdlg, _id, _text) \
+        (void)SNDMSG(_hdlg, CDM_SETCONTROLTEXT, (WPARAM)_id, (LPARAM)(LPSTR)_text)
+
+#define CommDlg_OpenSave_HideControl(_hdlg, _id) \
+        (void)SNDMSG(_hdlg, CDM_HIDECONTROL, (WPARAM)_id, 0)
+
+#define CommDlg_OpenSave_SetDefExt(_hdlg, _pszext) \
+        (void)SNDMSG(_hdlg, CDM_SETDEFEXT, 0, (LPARAM)(LPSTR)_pszext)
+
+
+typedef UINT (CALLBACK *LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
+typedef UINT (CALLBACK *LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
 
 typedef struct tagPDA
 {
@@ -544,13 +579,15 @@ DECL_WINELIB_TYPE_AW(LPPRINTDLG)
 #define PD_USEDEVMODECOPIESANDCOLLATE 0x00040000
 #define PD_DISABLEPRINTTOFILE        0x00080000
 #define PD_HIDEPRINTTOFILE           0x00100000
+#define PD_NONETWORKBUTTON           0x00200000
 
-typedef struct {
-       UINT16  wDriverOffset;
-       UINT16  wDeviceOffset;
-       UINT16  wOutputOffset;
-       UINT16  wDefault;
-       } DEVNAMES;
+typedef struct
+{
+    WORD  wDriverOffset;
+    WORD  wDeviceOffset;
+    WORD  wOutputOffset;
+    WORD  wDefault;
+} DEVNAMES;
 typedef DEVNAMES * LPDEVNAMES;
 
 #define DN_DEFAULTPRN      0x0001
@@ -564,8 +601,8 @@ typedef DEVNAMES * LPDEVNAMES;
 #define WM_PSD_ENVSTAMPRECT    (WM_USER+5)
 #define WM_PSD_YAFULLPAGERECT  (WM_USER+6)
 
-typedef UINT (CALLBACKLPPAGEPAINTHOOK)( HWND, UINT, WPARAM, LPARAM );
-typedef UINT (CALLBACKLPPAGESETUPHOOK)( HWND, UINT, WPARAM, LPARAM );
+typedef UINT (CALLBACK *LPPAGEPAINTHOOK)( HWND, UINT, WPARAM, LPARAM );
+typedef UINT (CALLBACK *LPPAGESETUPHOOK)( HWND, UINT, WPARAM, LPARAM );
 
 typedef struct tagPSDA
 {
@@ -624,63 +661,103 @@ DECL_WINELIB_TYPE_AW(LPPAGESETUPDLG)
 #define PSD_ENABLEPAGESETUPTEMPLATEHANDLE 0x00020000
 #define PSD_ENABLEPAGEPAINTHOOK           0x00040000
 #define PSD_DISABLEPAGEPAINTING           0x00080000
+#define PSD_NONETWORKBUTTON              0x00200000
+
+typedef struct tagPRINTPAGERANGE
+{
+    DWORD       nFromPage;
+    DWORD       nToPage;
+} PRINTPAGERANGE, *LPPRINTPAGERANGE;
+
+typedef struct tagPDEXA
+{
+    DWORD               lStructSize;
+    HWND                hwndOwner;
+    HGLOBAL             hDevMode;
+    HGLOBAL             hDevNames;
+    HDC                 hDC;
+    DWORD               Flags;
+    DWORD               Flags2;
+    DWORD               ExclusionFlags;
+    DWORD               nPageRanges;
+    DWORD               nMaxPageRanges;
+    LPPRINTPAGERANGE    lpPageRanges;
+    DWORD               nMinPage;
+    DWORD               nMaxPage;
+    DWORD               nCopies;
+    HINSTANCE           hInstance;
+    LPCSTR              lpPrintTemplateName;
+    void* /*LPUNKNOWN*/ lpCallback;
+    DWORD               nPropertyPages;
+    HPROPSHEETPAGE*     lphPropertyPages;
+    DWORD               nStartPage;
+    DWORD               dwResultAction;
+} PRINTDLGEXA, *LPPRINTDLGEXA;
+
+typedef struct tagPDEXW
+{
+    DWORD               lStructSize;
+    HWND                hwndOwner;
+    HGLOBAL             hDevMode;
+    HGLOBAL             hDevNames;
+    HDC                 hDC;
+    DWORD               Flags;
+    DWORD               Flags2;
+    DWORD               ExclusionFlags;
+    DWORD               nPageRanges;
+    DWORD               nMaxPageRanges;
+    LPPRINTPAGERANGE    lpPageRanges;
+    DWORD               nMinPage;
+    DWORD               nMaxPage;
+    DWORD               nCopies;
+    HINSTANCE           hInstance;
+    LPCWSTR             lpPrintTemplateName;
+    void* /*LPUNKNOWN*/ lpCallback;
+    DWORD               nPropertyPages;
+    HPROPSHEETPAGE*     lphPropertyPages;
+    DWORD               nStartPage;
+    DWORD               dwResultAction;
+} PRINTDLGEXW, *LPPRINTDLGEXW;
+
+DECL_WINELIB_TYPE_AW(PRINTDLGEX)
+DECL_WINELIB_TYPE_AW(LPPRINTDLGEX)
 
-BOOL16  WINAPI ChooseColor16(LPCHOOSECOLOR16 lpChCol);
 BOOL  WINAPI ChooseColorA(LPCHOOSECOLORA lpChCol);
 BOOL  WINAPI ChooseColorW(LPCHOOSECOLORW lpChCol);
 #define ChooseColor WINELIB_NAME_AW(ChooseColor)
 DWORD   WINAPI CommDlgExtendedError(void);
-HWND16  WINAPI FindText16( SEGPTR find);
 HWND  WINAPI FindTextA(LPFINDREPLACEA lpFind);
 HWND  WINAPI FindTextW(LPFINDREPLACEW lpFind);
 #define FindText WINELIB_NAME_AW(FindText)
-INT16   WINAPI GetFileTitle16(LPCSTR lpFile, LPSTR lpTitle, UINT16 cbBuf);
-INT16   WINAPI GetFileTitleA(LPCSTR lpFile, LPSTR lpTitle, UINT cbBuf);
-INT16   WINAPI GetFileTitleW(LPCWSTR lpFile, LPWSTR lpTitle, UINT cbBuf);
+short   WINAPI GetFileTitleA(LPCSTR lpFile, LPSTR lpTitle, WORD cbBuf);
+short   WINAPI GetFileTitleW(LPCWSTR lpFile, LPWSTR lpTitle, WORD cbBuf);
 #define GetFileTitle WINELIB_NAME_AW(GetFileTitle)
-BOOL16  WINAPI GetOpenFileName16(SEGPTR ofn);
 BOOL  WINAPI GetOpenFileNameA(LPOPENFILENAMEA ofn);
 BOOL  WINAPI GetOpenFileNameW(LPOPENFILENAMEW ofn);
-BOOL  WINAPI GetFileDialog95A(LPOPENFILENAMEA ofn,UINT iDlgType);
-BOOL  WINAPI GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType);
 #define GetOpenFileName WINELIB_NAME_AW(GetOpenFileName)
-BOOL16  WINAPI GetSaveFileName16(SEGPTR ofn);
 BOOL  WINAPI GetSaveFileNameA(LPOPENFILENAMEA ofn);
 BOOL  WINAPI GetSaveFileNameW(LPOPENFILENAMEW ofn);
 #define GetSaveFileName WINELIB_NAME_AW(GetSaveFileName)
 BOOL WINAPI PageSetupDlgA( LPPAGESETUPDLGA );
 BOOL WINAPI PageSetupDlgW( LPPAGESETUPDLGW );
 #define PageSetupDlg WINELIB_NAME_AW(PageSetupDlg)
-BOOL16  WINAPI PrintDlg16( LPPRINTDLG16 print);
 BOOL  WINAPI PrintDlgA( LPPRINTDLGA printdlg);
 BOOL  WINAPI PrintDlgW( LPPRINTDLGW printdlg);
 #define PrintDlg WINELIB_NAME_AW(PrintDlg)
-HWND16  WINAPI ReplaceText16( SEGPTR find);
+HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA);
+HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW);
+#define PrintDlgEx WINELIB_NAME_AW(PrintDlgEx)
 HWND  WINAPI ReplaceTextA( LPFINDREPLACEA lpFind);
 HWND  WINAPI ReplaceTextW( LPFINDREPLACEW lpFind);
 #define ReplaceText WINELIB_NAME_AW(ReplaceText)
-BOOL16  WINAPI ChooseFont16(LPCHOOSEFONT16);
 BOOL  WINAPI ChooseFontA(LPCHOOSEFONTA);
 BOOL  WINAPI ChooseFontW(LPCHOOSEFONTW);
 #define ChooseFont WINELIB_NAME_AW(ChooseFont)
-LRESULT WINAPI FileOpenDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
-LRESULT WINAPI FileSaveDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
-LRESULT WINAPI ColorDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
-LRESULT WINAPI FindTextDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
-LRESULT WINAPI ReplaceTextDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
-LRESULT WINAPI PrintDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
-LRESULT WINAPI PrintDlgProcA(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
-LRESULT WINAPI PrintDlgProcW(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
-LRESULT WINAPI PrintSetupDlgProc16(HWND16 hWnd, UINT16 wMsg, WPARAM16 wParam, LPARAM lParam);
-LRESULT WINAPI FormatCharDlgProc16(HWND16,UINT16,WPARAM16,LPARAM);
-LRESULT WINAPI FormatCharDlgProcA(HWND,UINT,WPARAM,LPARAM);
-LRESULT WINAPI FormatCharDlgProcW(HWND,UINT,WPARAM,LPARAM);
-#define FormatCharDlgProc WINELIB_NAME_AW(FormatCharDlgProc)
-
-void COMDLG32_SetCommDlgExtendedError(DWORD err); 
-
-
-#include "poppack.h"
+
+void COMDLG32_SetCommDlgExtendedError(DWORD err);
+
+
+#include <poppack.h>
 
 #ifdef __cplusplus
 }