commdlg: Fix PrintDlg parameter checks.

This commit is contained in:
Detlef Riekenberg 2010-01-10 20:51:21 +01:00 committed by Alexandre Julliard
parent 97194ec070
commit 93475667a0

View file

@ -107,6 +107,8 @@ BOOL16 WINAPI PrintDlg16( LPPRINTDLG16 lppd )
PRINTDLGA pd32;
BOOL ret;
if (!lppd) return PrintDlgA(NULL); /* generate failure with CDERR_INITIALIZATION */
pd32.lStructSize = sizeof(pd32);
pd32.Flags = lppd->Flags & ~(PD_ENABLEPRINTTEMPLATE | PD_ENABLEPRINTTEMPLATEHANDLE |
PD_ENABLESETUPTEMPLATE | PD_ENABLESETUPTEMPLATEHANDLE |
@ -128,6 +130,9 @@ BOOL16 WINAPI PrintDlg16( LPPRINTDLG16 lppd )
if (lppd->Flags & PD_ENABLESETUPHOOK)
FIXME( "custom setup hook %p no longer supported\n", lppd->lpfnSetupHook );
/* Generate failure with CDERR_STRUCTSIZE, when needed */
if (lppd->lStructSize != sizeof(PRINTDLG16)) pd32.lStructSize--;
if ((ret = PrintDlgA( &pd32 )))
{
lppd->hDC = HDC_16( pd32.hDC );