Huw Davies : comdlg32: Initialize the printer combobox using unicode strings.

Alexandre Julliard julliard at winehq.org
Wed Jan 21 06:39:51 CST 2009


Module: wine
Branch: master
Commit: bb9494ba82835ee6f097a2efd0dffe8df18264e2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bb9494ba82835ee6f097a2efd0dffe8df18264e2

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed Jan 21 10:28:00 2009 +0000

comdlg32: Initialize the printer combobox using unicode strings.

---

 dlls/comdlg32/printdlg.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c
index 146fe4f..168b9b6 100644
--- a/dlls/comdlg32/printdlg.c
+++ b/dlls/comdlg32/printdlg.c
@@ -2597,6 +2597,20 @@ static void pagesetup_set_defaultsource(PageSetupDataA *pda, WORD source)
     GlobalUnlock(pda->dlga->hDevMode);
 }
 
+static WCHAR *pagesetup_get_devname(const PageSetupDataA *pda)
+{
+    DEVNAMES *dn;
+    int len;
+    WCHAR *name;
+
+    dn = GlobalLock(pda->dlga->hDevNames);
+    len = MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wDeviceOffset, -1, NULL, 0);
+    name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+    MultiByteToWideChar(CP_ACP, 0, (char*)dn + dn->wDeviceOffset, -1, name, len);
+    GlobalUnlock(pda->dlga->hDevNames);
+    return name;
+}
+
 static BOOL pagesetup_update_papersize(PageSetupDataA *pda)
 {
     DEVNAMES *dn;
@@ -2793,14 +2807,17 @@ static void pagesetup_init_combos(HWND hDlg, PageSetupDataA *pda)
     DEVNAMES	*dn;
     DEVMODEA	*dm;
     LPSTR	devname,portname;
+    LPWSTR devnameW;
 
     dn = GlobalLock(pda->dlga->hDevNames);
     dm = GlobalLock(pda->dlga->hDevMode);
+    devnameW = pagesetup_get_devname(pda);
     devname  = ((char*)dn)+dn->wDeviceOffset;
     portname = ((char*)dn)+dn->wOutputOffset;
-    PRINTDLG_SetUpPrinterListComboA(hDlg, cmb1, devname);
+    PRINTDLG_SetUpPrinterListComboW(hDlg, cmb1, devnameW);
     PRINTDLG_SetUpPaperComboBoxA(hDlg,cmb2,devname,portname,dm);
     PRINTDLG_SetUpPaperComboBoxA(hDlg,cmb3,devname,portname,dm);
+    HeapFree(GetProcessHeap(), 0, devnameW);
     GlobalUnlock(pda->dlga->hDevNames);
     GlobalUnlock(pda->dlga->hDevMode);
 }




More information about the wine-cvs mailing list