Module: wine Branch: master Commit: 1065d52486e0005be5fd1d19055c546909b4733c URL: http://source.winehq.org/git/wine.git/?a=commit;h=1065d52486e0005be5fd1d1905...
Author: Alexander Nicolaysen Sørnes alex@thehandofagony.com Date: Thu Aug 23 15:09:08 2007 +0200
comdlg32: PageSetupDlgA/W: Avoid crash when not passed a DEVMODE structure.
---
dlls/comdlg32/printdlg.c | 33 ++++++++++++++++++++------------- 1 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c index 714f09c..f3736ce 100644 --- a/dlls/comdlg32/printdlg.c +++ b/dlls/comdlg32/printdlg.c @@ -3167,12 +3167,15 @@ PRINTDLG_PageDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) EnableWindow(GetDlgItem(hDlg, edt7), FALSE); } /* Set orientation radiobutton properly */ - dm = GlobalLock(pda->dlga->hDevMode); - if (dm->u1.s1.dmOrientation == DMORIENT_LANDSCAPE) - CheckRadioButton(hDlg, rad1, rad2, rad2); - else /* this is default if papersize is not set */ - CheckRadioButton(hDlg, rad1, rad2, rad1); - GlobalUnlock(pda->dlga->hDevMode); + if(pda->dlga->hDevMode) + { + dm = GlobalLock(pda->dlga->hDevMode); + if (dm->u1.s1.dmOrientation == DMORIENT_LANDSCAPE) + CheckRadioButton(hDlg, rad1, rad2, rad2); + else /* this is default if papersize is not set */ + CheckRadioButton(hDlg, rad1, rad2, rad1); + GlobalUnlock(pda->dlga->hDevMode); + }
/* if orientation disabled */ if (pda->dlga->Flags & PSD_DISABLEORIENTATION) { @@ -3280,13 +3283,17 @@ PageDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) EnableWindow(GetDlgItem(hDlg, edt7), FALSE); }
- dm = GlobalLock(pda->dlga->hDevMode); - /* Landscape orientation */ - if (dm->u1.s1.dmOrientation == DMORIENT_LANDSCAPE) - CheckRadioButton(hDlg, rad1, rad2, rad2); - else /* this is default if papersize is not set */ - CheckRadioButton(hDlg, rad1, rad2, rad1); - GlobalUnlock(pda->dlga->hDevMode); + if(pda->dlga->hDevMode) + { + dm = GlobalLock(pda->dlga->hDevMode); + /* Landscape orientation */ + if (dm->u1.s1.dmOrientation == DMORIENT_LANDSCAPE) + CheckRadioButton(hDlg, rad1, rad2, rad2); + else /* this is default if papersize is not set */ + CheckRadioButton(hDlg, rad1, rad2, rad1); + GlobalUnlock(pda->dlga->hDevMode); + } + if (pda->dlga->Flags & PSD_DISABLEORIENTATION) { EnableWindow(GetDlgItem(hDlg,rad1),FALSE); EnableWindow(GetDlgItem(hDlg,rad2),FALSE);