From bb310d5486855004f2dba0b39c8c5e80c7cb711f Mon Sep 17 00:00:00 2001 From: Stefan Siebert Date: Mon, 24 Jul 2006 14:45:32 +0200 Subject: [PATCH] comdlg32: GetOpenFileNameW - Create unicode windows. --- dlls/comdlg32/filedlg.c | 47 +++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c index 37ce6c2aca2..6a780f126be 100644 --- a/dlls/comdlg32/filedlg.c +++ b/dlls/comdlg32/filedlg.c @@ -261,7 +261,7 @@ static BOOL WINAPI GetFileName95(FileOpenDlgInfos *fodInfos) /* Create the dialog from a template */ - if(!(hRes = FindResourceA(COMDLG32_hInstance,MAKEINTRESOURCEA(NEWFILEOPENORD),(LPSTR)RT_DIALOG))) + if(!(hRes = FindResourceW(COMDLG32_hInstance,MAKEINTRESOURCEW(NEWFILEOPENORD),(LPCWSTR)RT_DIALOG))) { COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE); return FALSE; @@ -285,11 +285,18 @@ static BOOL WINAPI GetFileName95(FileOpenDlgInfos *fodInfos) /* Some shell namespace extensions depend on COM being initialized. */ hr = OleInitialize(NULL); - lRes = DialogBoxIndirectParamA(COMDLG32_hInstance, - (LPDLGTEMPLATEA) template, - fodInfos->ofnInfos->hwndOwner, - FileOpenDlgProc95, - (LPARAM) fodInfos); + if (fodInfos->unicode) + lRes = DialogBoxIndirectParamW(COMDLG32_hInstance, + template, + fodInfos->ofnInfos->hwndOwner, + FileOpenDlgProc95, + (LPARAM) fodInfos); + else + lRes = DialogBoxIndirectParamA(COMDLG32_hInstance, + (LPDLGTEMPLATEA) template, + fodInfos->ofnInfos->hwndOwner, + FileOpenDlgProc95, + (LPARAM) fodInfos); if (SUCCEEDED(hr)) OleUninitialize(); @@ -771,9 +778,14 @@ static HWND CreateTemplateDialog(FileOpenDlgInfos *fodInfos, HWND hwnd) return NULL; } } - hChildDlg = CreateDialogIndirectParamA(hinst, template, hwnd, - IsHooked(fodInfos) ? (DLGPROC)fodInfos->ofnInfos->lpfnHook : FileOpenDlgProcUserTemplate, - (LPARAM)fodInfos->ofnInfos); + if (fodInfos->unicode) + hChildDlg = CreateDialogIndirectParamW(hinst, template, hwnd, + IsHooked(fodInfos) ? (DLGPROC)fodInfos->ofnInfos->lpfnHook : FileOpenDlgProcUserTemplate, + (LPARAM)fodInfos->ofnInfos); + else + hChildDlg = CreateDialogIndirectParamA(hinst, template, hwnd, + IsHooked(fodInfos) ? (DLGPROC)fodInfos->ofnInfos->lpfnHook : FileOpenDlgProcUserTemplate, + (LPARAM)fodInfos->ofnInfos); if(hChildDlg) { ShowWindow(hChildDlg,SW_SHOW); @@ -1197,11 +1209,18 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd) rectTB.left = rectlook.right; rectTB.top = rectlook.top-1; - fodInfos->DlgInfos.hwndTB = CreateWindowExA(0, TOOLBARCLASSNAMEA, NULL, - WS_CHILD | WS_GROUP | WS_VISIBLE | WS_CLIPSIBLINGS | TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NORESIZE, - rectTB.left, rectTB.top, - rectTB.right - rectTB.left, rectTB.bottom - rectTB.top, - hwnd, (HMENU)IDC_TOOLBAR, COMDLG32_hInstance, NULL); + if (fodInfos->unicode) + fodInfos->DlgInfos.hwndTB = CreateWindowExW(0, TOOLBARCLASSNAMEW, NULL, + WS_CHILD | WS_GROUP | WS_VISIBLE | WS_CLIPSIBLINGS | TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NORESIZE, + rectTB.left, rectTB.top, + rectTB.right - rectTB.left, rectTB.bottom - rectTB.top, + hwnd, (HMENU)IDC_TOOLBAR, COMDLG32_hInstance, NULL); + else + fodInfos->DlgInfos.hwndTB = CreateWindowExA(0, TOOLBARCLASSNAMEA, NULL, + WS_CHILD | WS_GROUP | WS_VISIBLE | WS_CLIPSIBLINGS | TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NORESIZE, + rectTB.left, rectTB.top, + rectTB.right - rectTB.left, rectTB.bottom - rectTB.top, + hwnd, (HMENU)IDC_TOOLBAR, COMDLG32_hInstance, NULL); SendMessageA(fodInfos->DlgInfos.hwndTB, TB_BUTTONSTRUCTSIZE, (WPARAM) sizeof(TBBUTTON), 0);