diff --git a/include/commdlg.h b/include/commdlg.h
index a54499d..1bf5d2f 100644
--- a/include/commdlg.h
+++ b/include/commdlg.h
@@ -485,6 +485,76 @@
 #define CDERR_NOHOOK           0x000B
 #define CDERR_REGISTERMSGFAIL  0x000C
 
+/* PageSetupDlg stuff ... */
+#define WM_PSD_PAGESETUPDLG	(WM_USER  )
+#define WM_PSD_FULLPAGERECT	(WM_USER+1)
+#define WM_PSD_MINMARGINRECT	(WM_USER+2)
+#define WM_PSD_MARGINRECT	(WM_USER+3)
+#define WM_PSD_GREEKTEXTRECT	(WM_USER+4)
+#define WM_PSD_ENVSTAMPRECT	(WM_USER+5)
+#define WM_PSD_YAFULLPAGERECT	(WM_USER+6)
+
+typedef UINT32 (CALLBACK* LPPAGEPAINTHOOK)( HWND32, UINT32, WPARAM32, LPARAM );
+typedef UINT32 (CALLBACK* LPPAGESETUPHOOK)( HWND32, UINT32, WPARAM32, LPARAM );
+
+typedef struct tagPSD32A
+{
+	DWORD		lStructSize;
+	HWND32		hwndOwner;
+	HGLOBAL32	hDevMode;
+	HGLOBAL32	hDevNames;
+	DWORD		Flags;
+	POINT32		ptPaperSize;
+	RECT32		rtMinMargin;
+	RECT32		rtMargin;
+	HINSTANCE32	hInstance;
+	LPARAM		lCustData;
+	LPPAGESETUPHOOK	lpfnPageSetupHook;
+	LPPAGEPAINTHOOK	lpfnPagePaintHook;
+	LPCSTR		lpPageSetupTemplateName;
+	HGLOBAL32	hPageSetupTemplate;
+} PAGESETUPDLG32A,*LPPAGESETUPDLG32A;
+
+typedef struct tagPSD32W
+{
+	DWORD		lStructSize;
+	HWND32		hwndOwner;
+	HGLOBAL32	hDevMode;
+	HGLOBAL32	hDevNames;
+	DWORD		Flags;
+	POINT32		ptPaperSize;
+	RECT32		rtMinMargin;
+	RECT32		rtMargin;
+	HINSTANCE32	hInstance;
+	LPARAM		lCustData;
+	LPPAGESETUPHOOK	lpfnPageSetupHook;
+	LPPAGEPAINTHOOK	lpfnPagePaintHook;
+	LPCWSTR		lpPageSetupTemplateName;
+	HGLOBAL32	hPageSetupTemplate;
+} PAGESETUPDLG32W,*LPPAGESETUPDLG32W;
+DECL_WINELIB_TYPE_AW(PAGESETUPDLG)
+DECL_WINELIB_TYPE_AW(LPPAGESETUPDLG)
+
+#define PSD_DEFAULTMINMARGINS             0x00000000
+#define PSD_INWININIINTLMEASURE           0x00000000
+
+#define PSD_MINMARGINS                    0x00000001
+#define PSD_MARGINS                       0x00000002
+#define PSD_INTHOUSANDTHSOFINCHES         0x00000004
+#define PSD_INHUNDREDTHSOFMILLIMETERS     0x00000008
+#define PSD_DISABLEMARGINS                0x00000010
+#define PSD_DISABLEPRINTER                0x00000020
+#define PSD_NOWARNING                     0x00000080
+#define PSD_DISABLEORIENTATION            0x00000100
+#define PSD_RETURNDEFAULT                 0x00000400
+#define PSD_DISABLEPAPER                  0x00000200
+#define PSD_SHOWHELP                      0x00000800
+#define PSD_ENABLEPAGESETUPHOOK           0x00002000
+#define PSD_ENABLEPAGESETUPTEMPLATE       0x00008000
+#define PSD_ENABLEPAGESETUPTEMPLATEHANDLE 0x00020000
+#define PSD_ENABLEPAGEPAINTHOOK           0x00040000
+#define PSD_DISABLEPAGEPAINTING           0x00080000
+
 BOOL16  WINAPI ChooseColor16(LPCHOOSECOLOR16 lpChCol);
 BOOL32  WINAPI ChooseColor32A(LPCHOOSECOLOR32A lpChCol);
 BOOL32  WINAPI ChooseColor32W(LPCHOOSECOLOR32W lpChCol);
@@ -506,6 +576,9 @@
 BOOL32  WINAPI GetSaveFileName32A(LPOPENFILENAME32A ofn);
 BOOL32  WINAPI GetSaveFileName32W(LPOPENFILENAME32W ofn);
 #define GetSaveFileName WINELIB_NAME_AW(GetSaveFileName)
+BOOL32 WINAPI PageSetupDlg32A( LPPAGESETUPDLG32A );
+BOOL32 WINAPI PageSetupDlg32W( LPPAGESETUPDLG32W );
+#define PageSetupDlg WINELIB_NAME_AW(PageSetupDlg)
 BOOL16  WINAPI PrintDlg( SEGPTR print);
 HWND16  WINAPI ReplaceText16( SEGPTR find);
 HWND32  WINAPI ReplaceText32A( LPFINDREPLACE32A lpFind);
