Module: wine Branch: master Commit: 82016c19efadbd1866a89625e63d8e7af3109d36 URL: http://source.winehq.org/git/wine.git/?a=commit;h=82016c19efadbd1866a89625e6...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Dec 23 17:55:04 2009 +0100
comdlg32: Don't use the instance of the owner window for dialog boxes.
---
dlls/comdlg32/filedlg.c | 8 ++------ dlls/comdlg32/printdlg.c | 6 ++++-- 2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c index 034403e..5e8f75e 100644 --- a/dlls/comdlg32/filedlg.c +++ b/dlls/comdlg32/filedlg.c @@ -3867,7 +3867,6 @@ static BOOL GetFileName31A(LPOPENFILENAMEA lpofn, /* address of structure with d UINT dlgType /* type dialogue : open/save */ ) { - HINSTANCE hInst; BOOL bRet = FALSE; PFD31_DATA lfs;
@@ -3877,8 +3876,7 @@ static BOOL GetFileName31A(LPOPENFILENAMEA lpofn, /* address of structure with d lfs = FD31_AllocPrivate((LPARAM) lpofn, dlgType, FALSE); if (lfs) { - hInst = (HINSTANCE)GetWindowLongPtrW( lpofn->hwndOwner, GWLP_HINSTANCE ); - bRet = DialogBoxIndirectParamA( hInst, lfs->template, lpofn->hwndOwner, + bRet = DialogBoxIndirectParamA( COMDLG32_hInstance, lfs->template, lpofn->hwndOwner, FD32_FileOpenDlgProc, (LPARAM)lfs); FD31_DestroyPrivate(lfs); } @@ -3896,7 +3894,6 @@ static BOOL GetFileName31W(LPOPENFILENAMEW lpofn, /* address of structure with d UINT dlgType /* type dialogue : open/save */ ) { - HINSTANCE hInst; BOOL bRet = FALSE; PFD31_DATA lfs;
@@ -3905,8 +3902,7 @@ static BOOL GetFileName31W(LPOPENFILENAMEW lpofn, /* address of structure with d lfs = FD31_AllocPrivate((LPARAM) lpofn, dlgType, TRUE); if (lfs) { - hInst = (HINSTANCE)GetWindowLongPtrW( lpofn->hwndOwner, GWLP_HINSTANCE ); - bRet = DialogBoxIndirectParamW( hInst, lfs->template, lpofn->hwndOwner, + bRet = DialogBoxIndirectParamW( COMDLG32_hInstance, lfs->template, lpofn->hwndOwner, FD32_FileOpenDlgProc, (LPARAM)lfs); FD31_DestroyPrivate(lfs); } diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c index 72d8dd8..149694a 100644 --- a/dlls/comdlg32/printdlg.c +++ b/dlls/comdlg32/printdlg.c @@ -2080,7 +2080,6 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd) return FALSE; }
- hInst = (HINSTANCE)GetWindowLongPtrA( lppd->hwndOwner, GWLP_HINSTANCE ); if(TRACE_ON(commdlg)) { char flagstr[1000] = ""; const struct pd_flags *pflag = pd_flags; @@ -2173,6 +2172,8 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd) /* and create & process the dialog . * -1 is failure, 0 is broken hwnd, everything else is ok. */ + hInst = COMDLG32_hInstance; + if (lppd->Flags & (PD_ENABLESETUPTEMPLATE | PD_ENABLEPRINTTEMPLATE)) hInst = lppd->hInstance; bRet = (0<DialogBoxIndirectParamA(hInst, ptr, lppd->hwndOwner, PrintDlgProcA, (LPARAM)PrintStructures)); @@ -2230,7 +2231,6 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd) return FALSE; }
- hInst = (HINSTANCE)GetWindowLongPtrW( lppd->hwndOwner, GWLP_HINSTANCE ); if(TRACE_ON(commdlg)) { char flagstr[1000] = ""; const struct pd_flags *pflag = pd_flags; @@ -2323,6 +2323,8 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd) /* and create & process the dialog . * -1 is failure, 0 is broken hwnd, everything else is ok. */ + hInst = COMDLG32_hInstance; + if (lppd->Flags & (PD_ENABLESETUPTEMPLATE | PD_ENABLEPRINTTEMPLATE)) hInst = lppd->hInstance; bRet = (0<DialogBoxIndirectParamW(hInst, ptr, lppd->hwndOwner, PrintDlgProcW, (LPARAM)PrintStructures));