Commit in reactos/lib/comdlg32 on MAIN
Makefile.in+2-31.3 -> 1.4
cdlg_De.rc+23-21.6 -> 1.7
cdlg_Pl.rc+1-11.1 -> 1.2
filedlg.c+97-381.8 -> 1.9
filedlgbrowser.c+9-91.1 -> 1.2
fontdlg.c+50-1591.3 -> 1.4
printdlg.c+8-111.5 -> 1.6
winehq2ros.patch+18-181.5 -> 1.6
+208-241
8 modified files
Sync to Wine-20040813:
Alexandre Julliard
- Avoid some non-portable makefile constructs, and get rid of the
  ALTNAMES variable.
- Get rid of the non-standard ICOM_VTABLE macro.
Henning Gerhardt <henning.gerhardt@web.de>
- Minor fixes and updates to the German resource files.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Translation update.
Mike McCormack <mike@codeweavers.com>
- Unicode file dialogs send and receive unicode messages.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Fix a bug in passing parameters to CFn_WMInitDialog and CFn_WMCommand
  in FormatCharDlgProcW.
James Hawkins <truiken@gmail.com>
- Cleanup A->W cross calls.
- Better fix for collate icon behavior.

reactos/lib/comdlg32
Makefile.in 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- Makefile.in	14 Jul 2004 06:52:28 -0000	1.3
+++ Makefile.in	14 Aug 2004 19:21:01 -0000	1.4
@@ -4,11 +4,8 @@
 VPATH     = @srcdir@
 MODULE    = comdlg32.dll
 IMPORTS   = shell32 shlwapi comctl32 winspool user32 gdi32 kernel32 ntdll
-ALTNAMES  = commdlg.dll
 EXTRALIBS = -luuid
 
-SPEC_SRCS16 = $(ALTNAMES:.dll=.spec)
-
 C_SRCS = \
 	cdlg32.c \
 	colordlg.c \
@@ -28,6 +25,8 @@
 	generic.c \
 	printdlg16.c
 
+SPEC_SRCS16 = commdlg.spec
+
 RC_SRCS = rsrc.rc
 RC_BINSRC = cdlg_xx.rc
 RC_BINARIES = \

reactos/lib/comdlg32
cdlg_De.rc 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- cdlg_De.rc	8 Aug 2004 20:15:05 -0000	1.6
+++ cdlg_De.rc	14 Aug 2004 19:21:01 -0000	1.7
@@ -1,5 +1,6 @@
 /*
  * Copyright 1994 Martin von Loewis
+ * Copyright 2004 Henning Gerhardt
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -282,7 +283,7 @@
     PUSHBUTTON      "&Hilfe",         pshHelp,  50, 161, 48,14, WS_GROUP
 
     GROUPBOX        "Drucker",        grp4,   8,  4, 272,84, WS_GROUP
-    CONTROL         "In Fi&le drucken", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12
+    CONTROL         "In Da&tei drucken", chx1, "Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,212,70,64,12
     PUSHBUTTON      "&Eigenschaften", psh2, 212, 17,  60,14, WS_GROUP
     LTEXT           "&Name:",         stc6,  16, 20,  36,8
     COMBOBOX                          cmb4,  52, 18, 152,152,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_GROUP | WS_TABSTOP
@@ -355,7 +356,7 @@
     IDS_PATH                "System Ordner"
     IDS_DESKTOP             "Desktop"
     IDS_FONTS               "Schriftarten"
-    IDS_MYCOMPUTER          "Mein Computer"
+    IDS_MYCOMPUTER          "Arbeitsplatz"
 }
 
 STRINGTABLE DISCARDABLE
@@ -433,3 +434,23 @@
     PD32_PRINTER_STATUS_SERVER_UNKNOWN    "Druckserver unbekannt; "
     PD32_PRINTER_STATUS_POWER_SAVE        "Stromsparmodus; "
 }
+
+STRINGTABLE DISCARDABLE /* Color names */
+{
+   IDS_COLOR_BLACK	"Schwarz"
+   IDS_COLOR_MAROON	"Kastanienbraun"
+   IDS_COLOR_GREEN	"Gr�n"
+   IDS_COLOR_OLIVE	"Olivgr�n"
+   IDS_COLOR_NAVY	"Dunkelblau"
+   IDS_COLOR_PURPLE	"Violett"
+   IDS_COLOR_TEAL	"Teal"
+   IDS_COLOR_GRAY	"Grau"
+   IDS_COLOR_SILVER	"Silber"
+   IDS_COLOR_RED	"Rot"
+   IDS_COLOR_LIME	"Hellgr�n"
+   IDS_COLOR_YELLOW	"Gelb"
+   IDS_COLOR_BLUE	"Blau"
+   IDS_COLOR_FUCHSIA	"Lila"
+   IDS_COLOR_AQUA	"Aqua"
+   IDS_COLOR_WHITE	"Wei�"
+}

reactos/lib/comdlg32
cdlg_Pl.rc 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- cdlg_Pl.rc	9 Jan 2004 01:58:22 -0000	1.1
+++ cdlg_Pl.rc	14 Aug 2004 19:21:01 -0000	1.2
@@ -114,7 +114,7 @@
 /* CONTROL "" ,710,"STATIC",WS_BORDER|SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,4,118,116 */
 CHOOSE_FONT DIALOG 13, 54, 264, 147
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "Font"
+CAPTION "Czcionka"
 FONT 8, "Helv"
 BEGIN
 	LTEXT "&Czcionka:", 1088, 6,3,40,9, WS_CHILD | WS_VISIBLE | WS_GROUP

reactos/lib/comdlg32
filedlg.c 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- filedlg.c	8 Aug 2004 20:15:06 -0000	1.8
+++ filedlg.c	14 Aug 2004 19:21:01 -0000	1.9
@@ -781,27 +781,37 @@
 
     if(!fodInfos) return 0;
 
-    if(fodInfos->unicode)
-      FIXME("sending OPENFILENAMEA structure. Hook is expecting OPENFILENAMEW!\n");
-
     if(fodInfos->DlgInfos.hwndCustomDlg)
     {
-        OFNOTIFYA ofnNotify;
 	HRESULT ret;
-        ofnNotify.hdr.hwndFrom=hwndParentDlg;
-        ofnNotify.hdr.idFrom=0;
-        ofnNotify.hdr.code = uCode;
-        ofnNotify.lpOFN = fodInfos->ofnInfos;
-        ofnNotify.pszFile = NULL;
 	TRACE("CALL NOTIFY for %x\n", uCode);
-	ret = SendMessageA(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify);
+        if(fodInfos->unicode)
+        {
+            OFNOTIFYW ofnNotify;
+            ofnNotify.hdr.hwndFrom=hwndParentDlg;
+            ofnNotify.hdr.idFrom=0;
+            ofnNotify.hdr.code = uCode;
+            ofnNotify.lpOFN = (LPOPENFILENAMEW) fodInfos->ofnInfos;
+            ofnNotify.pszFile = NULL;
+	    ret = SendMessageW(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify);
+        }
+        else
+        {
+            OFNOTIFYA ofnNotify;
+            ofnNotify.hdr.hwndFrom=hwndParentDlg;
+            ofnNotify.hdr.idFrom=0;
+            ofnNotify.hdr.code = uCode;
+            ofnNotify.lpOFN = fodInfos->ofnInfos;
+            ofnNotify.pszFile = NULL;
+	    ret = SendMessageA(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify);
+        }
 	TRACE("RET NOTIFY\n");
 	return ret;
     }
     return TRUE;
 }
 
-HRESULT FILEDLG95_Handle_GetFilePath(HWND hwnd, DWORD size, LPSTR buffer)
+HRESULT FILEDLG95_Handle_GetFilePath(HWND hwnd, DWORD size, LPVOID buffer)
 {
     UINT sizeUsed = 0, n, total;
     LPWSTR lpstrFileList = NULL;
@@ -820,38 +830,71 @@
     TRACE("path >%s< filespec >%s< %d files\n",
          debugstr_w(lpstrCurrentDir),debugstr_w(lpstrFileList),n);
 
-    total = WideCharToMultiByte(CP_ACP, 0, lpstrCurrentDir, -1, 
-                                NULL, 0, NULL, NULL);
-    total += WideCharToMultiByte(CP_ACP, 0, lpstrFileList, sizeUsed, 
-                                NULL, 0, NULL, NULL);
-
-    /* Prepend the current path */
-    n = WideCharToMultiByte(CP_ACP, 0, lpstrCurrentDir, -1, 
-                            buffer, size, NULL, NULL);
-
-    if(n<size)
-    {
-        /* 'n' includes trailing \0 */
-        buffer[n-1] = '\\';
-        WideCharToMultiByte(CP_ACP, 0, lpstrFileList, sizeUsed, 
-                            &buffer[n], size-n, NULL, NULL);
+    if( fodInfos->unicode )
+    {
+        LPWSTR bufW = buffer;
+        total = strlenW(lpstrCurrentDir) + 1 + sizeUsed;
+
+        /* Prepend the current path */
+        n = strlenW(lpstrCurrentDir) + 1;
+        strncpyW( bufW, lpstrCurrentDir, size );
+        if(n<size)
+        {
+            /* 'n' includes trailing \0 */
+            bufW[n-1] = '\\';
+            memcpy( &bufW[n], lpstrFileList, (size-n)*sizeof(WCHAR) );
+        }
+        TRACE("returned -> %s\n",debugstr_wn(bufW, total));
     }
-    MemFree(lpstrFileList);
+    else
+    {
+        LPSTR bufA = buffer;
+        total = WideCharToMultiByte(CP_ACP, 0, lpstrCurrentDir, -1, 
+                                    NULL, 0, NULL, NULL);
+        total += WideCharToMultiByte(CP_ACP, 0, lpstrFileList, sizeUsed, 
+                                    NULL, 0, NULL, NULL);
+
+        /* Prepend the current path */
+        n = WideCharToMultiByte(CP_ACP, 0, lpstrCurrentDir, -1, 
+                                bufA, size, NULL, NULL);
 
-    TRACE("returned -> %s\n",debugstr_a(buffer));
+        if(n<size)
+        {
+            /* 'n' includes trailing \0 */
+            bufA[n-1] = '\\';
+            WideCharToMultiByte(CP_ACP, 0, lpstrFileList, sizeUsed, 
+                                &bufA[n], size-n, NULL, NULL);
+        }
+
+        TRACE("returned -> %s\n",debugstr_an(bufA, total));
+    }
+    MemFree(lpstrFileList);
 
     return total;
 }
 
-HRESULT FILEDLG95_Handle_GetFileSpec(HWND hwnd, DWORD size, LPSTR buffer)
+HRESULT FILEDLG95_Handle_GetFileSpec(HWND hwnd, DWORD size, LPVOID buffer)
 {
     UINT sizeUsed = 0;
     LPWSTR lpstrFileList = NULL;
+    FileOpenDlgInfos *fodInfos = (FileOpenDlgInfos *) GetPropA(hwnd,FileOpenDlgInfosStr);
 
     TRACE("CDM_GETSPEC:\n");
 
     FILEDLG95_FILENAME_GetFileNames(hwnd, &lpstrFileList, &sizeUsed);
-    WideCharToMultiByte(CP_ACP, 0, lpstrFileList, sizeUsed, buffer, size, NULL, NULL);
+    if( fodInfos->unicode )
+    {
+        LPWSTR bufW = buffer;
+        memcpy( bufW, lpstrFileList, sizeof(WCHAR)*sizeUsed );
+    }
+    else
+    {
+        LPSTR bufA = buffer;
+        sizeUsed = WideCharToMultiByte( CP_ACP, 0, lpstrFileList, sizeUsed,
+                                        NULL, 0, NULL, NULL);
+        WideCharToMultiByte(CP_ACP, 0, lpstrFileList, sizeUsed,
+                            bufA, size, NULL, NULL);
+    }
     MemFree(lpstrFileList);
 
     return sizeUsed;
@@ -864,29 +907,45 @@
 */
 HRESULT FILEDLG95_HandleCustomDialogMessages(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
-    char lpstrPath[MAX_PATH];
     FileOpenDlgInfos *fodInfos = (FileOpenDlgInfos *) GetPropA(hwnd,FileOpenDlgInfosStr);
     if(!fodInfos) return -1;
 
     switch(uMsg)
     {
         case CDM_GETFILEPATH:
-            return FILEDLG95_Handle_GetFilePath(hwnd, (UINT)wParam, (LPSTR)lParam);
+            return FILEDLG95_Handle_GetFilePath(hwnd, (UINT)wParam, (LPVOID)lParam);
 
         case CDM_GETFOLDERPATH:
             TRACE("CDM_GETFOLDERPATH:\n");
-	    SHGetPathFromIDListA(fodInfos->ShellInfos.pidlAbsCurrent,lpstrPath);
-            if ((LPSTR)lParam!=NULL)
-                lstrcpynA((LPSTR)lParam,lpstrPath,(int)wParam);
-            return strlen(lpstrPath);
+            if( fodInfos->unicode )
+            {
+                WCHAR lpstrPath[MAX_PATH], *bufW = (LPWSTR)lParam;
+	        SHGetPathFromIDListW(fodInfos->ShellInfos.pidlAbsCurrent,lpstrPath);
+                if (bufW)
+                    lstrcpynW(bufW,lpstrPath,(int)wParam);
+                return strlenW(lpstrPath);
+            }
+            else
+            {
+                char lpstrPath[MAX_PATH], *bufA = (LPSTR)lParam;
+	        SHGetPathFromIDListA(fodInfos->ShellInfos.pidlAbsCurrent,lpstrPath);
+                if (bufA)
+                    lstrcpynA(bufA,lpstrPath,(int)wParam);
+                return strlen(lpstrPath);
+            }
 
         case CDM_GETSPEC:
             return FILEDLG95_Handle_GetFileSpec(hwnd, (UINT)wParam, (LPSTR)lParam);
 
         case CDM_SETCONTROLTEXT:
             TRACE("CDM_SETCONTROLTEXT:\n");
-	    if ( 0 != lParam )
-	        SetDlgItemTextA( hwnd, (UINT) wParam, (LPSTR) lParam );
+	    if ( lParam )
+            {
+                if( fodInfos->unicode )
+	            SetDlgItemTextW( hwnd, (UINT) wParam, (LPWSTR) lParam );
+                else
+	            SetDlgItemTextA( hwnd, (UINT) wParam, (LPSTR) lParam );
+            }
 	    return TRUE;
 
         case CDM_HIDECONTROL:

reactos/lib/comdlg32
filedlgbrowser.c 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- filedlgbrowser.c	9 Jan 2004 01:58:22 -0000	1.1
+++ filedlgbrowser.c	14 Aug 2004 19:21:01 -0000	1.2
@@ -45,9 +45,9 @@
 typedef struct
 {
 
-    ICOM_VTABLE(IShellBrowser)   * lpVtbl;
-    ICOM_VTABLE(ICommDlgBrowser) * lpVtblCommDlgBrowser;
-    ICOM_VTABLE(IServiceProvider)* lpVtblServiceProvider;
+    IShellBrowserVtbl   * lpVtbl;
+    ICommDlgBrowserVtbl * lpVtblCommDlgBrowser;
+    IServiceProviderVtbl* lpVtblServiceProvider;
     DWORD ref;                                  /* Reference counter */
     HWND hwndOwner;                             /* Owner dialog of the interface */
 
@@ -56,9 +56,9 @@
 /**************************************************************************
 *   vtable
 */
-static ICOM_VTABLE(IShellBrowser) IShellBrowserImpl_Vtbl;
-static ICOM_VTABLE(ICommDlgBrowser) IShellBrowserImpl_ICommDlgBrowser_Vtbl;
-static ICOM_VTABLE(IServiceProvider) IShellBrowserImpl_IServiceProvider_Vtbl;
+static IShellBrowserVtbl IShellBrowserImpl_Vtbl;
+static ICommDlgBrowserVtbl IShellBrowserImpl_ICommDlgBrowser_Vtbl;
+static IServiceProviderVtbl IShellBrowserImpl_IServiceProvider_Vtbl;
 
 /**************************************************************************
 *   Local Prototypes
@@ -630,7 +630,7 @@
     return E_NOTIMPL;
 }
 
-static ICOM_VTABLE(IShellBrowser) IShellBrowserImpl_Vtbl =
+static IShellBrowserVtbl IShellBrowserImpl_Vtbl =
 {
         ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
         /* IUnknown */
@@ -855,7 +855,7 @@
     return S_OK;
 }
 
-static ICOM_VTABLE(ICommDlgBrowser) IShellBrowserImpl_ICommDlgBrowser_Vtbl =
+static ICommDlgBrowserVtbl IShellBrowserImpl_ICommDlgBrowser_Vtbl =
 {
         ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
         /* IUnknown */
@@ -945,7 +945,7 @@
 
 }
 
-static ICOM_VTABLE(IServiceProvider) IShellBrowserImpl_IServiceProvider_Vtbl =
+static IServiceProviderVtbl IShellBrowserImpl_IServiceProvider_Vtbl =
 {
         ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
         /* IUnknown */

reactos/lib/comdlg32
fontdlg.c 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- fontdlg.c	11 Mar 2004 21:15:50 -0000	1.3
+++ fontdlg.c	14 Aug 2004 19:21:01 -0000	1.4
@@ -163,14 +163,17 @@
 }
 
 /***********************************************************************
- *           ChooseFontA   (COMDLG32.@)
+ *           ChooseFontW   (COMDLG32.@)
  */
-BOOL WINAPI ChooseFontA(LPCHOOSEFONTA lpChFont)
+BOOL WINAPI ChooseFontW(LPCHOOSEFONTW lpChFont)
 {
     LPCVOID template;
     HRSRC hResInfo;
     HINSTANCE hDlginst;
     HGLOBAL hDlgTmpl;
+    
+    static const WCHAR chooseFontW[] = {'C','H','O','O','S','E','_',
+                                        'F','O','N','T',0};
 
     if ( (lpChFont->Flags&CF_ENABLETEMPLATEHANDLE)!=0 )
     {
@@ -180,8 +183,8 @@
         if ( (lpChFont->Flags&CF_ENABLETEMPLATE)!=0 )
         {
             hDlginst=lpChFont->hInstance;
-            if( !(hResInfo = FindResourceA(hDlginst, lpChFont->lpTemplateName,
-                            (LPSTR)RT_DIALOG)))
+            if( !(hResInfo = FindResourceW(hDlginst, lpChFont->lpTemplateName,
+                            (LPWSTR)RT_DIALOG)))
             {
                 COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
                 return FALSE;
@@ -189,7 +192,7 @@
         } else
         {
             hDlginst=COMDLG32_hInstance;
-            if (!(hResInfo = FindResourceA(hDlginst, "CHOOSE_FONT", (LPSTR)RT_DIALOG)))
+            if (!(hResInfo = FindResourceW(hDlginst, chooseFontW, (LPWSTR)RT_DIALOG)))
             {
                 COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
                 return FALSE;
@@ -208,169 +211,60 @@
     if (lpChFont->Flags & (CF_SELECTSCRIPT | CF_NOVERTFONTS ))
         FIXME(": unimplemented flag (ignored)\n");
 
-    return DialogBoxIndirectParamA(COMDLG32_hInstance, template,
-            lpChFont->hwndOwner, FormatCharDlgProcA, (LPARAM)lpChFont );
+    return DialogBoxIndirectParamW(COMDLG32_hInstance, template,
+            lpChFont->hwndOwner, FormatCharDlgProcW, (LPARAM)lpChFont );
 }
 
 /***********************************************************************
- *           ChooseFontW   (COMDLG32.@)
- *
- *  NOTES:
- *
- *      The LOGFONT conversion functions will break if the structure ever
- *      grows beyond the lfFaceName element.
- *
- *      The CHOOSEFONT conversion functions assume that both versions of
- *      lpLogFont and lpszStyle (if used) point to pre-allocated objects.
- *
- *      The ASCII version of lpTemplateName is created by ChooseFontAtoW
- *      and freed by ChooseFontWtoA.
+ *           ChooseFontA   (COMDLG32.@)
  */
-inline static VOID LogFontWtoA(const LOGFONTW *lfw, LOGFONTA *lfa)
-{
-    memcpy(lfa, lfw, sizeof(LOGFONTA));
-    WideCharToMultiByte(CP_ACP, 0, lfw->lfFaceName, -1, lfa->lfFaceName,
-                        LF_FACESIZE, NULL, NULL);
-    lfa->lfFaceName[LF_FACESIZE - 1] = '\0';
-}
-
-inline static VOID LogFontAtoW(const LOGFONTA *lfa, LOGFONTW *lfw)
-{
-    memcpy(lfw, lfa, sizeof(LOGFONTA));
-    MultiByteToWideChar(CP_ACP, 0, lfa->lfFaceName, -1, lfw->lfFaceName,
-                        LF_FACESIZE);
-    lfw->lfFaceName[LF_FACESIZE - 1] = 0;
-}
-
-static BOOL ChooseFontWtoA(const CHOOSEFONTW *cfw, CHOOSEFONTA *cfa)
-{
-    LOGFONTA    *lpLogFont = cfa->lpLogFont;
-    LPSTR       lpszStyle = cfa->lpszStyle;
-
-    memcpy(cfa, cfw, sizeof(CHOOSEFONTA));
-    cfa->lpLogFont = lpLogFont;
-    cfa->lpszStyle = lpszStyle;
-
-    LogFontWtoA(cfw->lpLogFont, lpLogFont);
-
-    if ((cfw->Flags&CF_ENABLETEMPLATE)!=0 && HIWORD(cfw->lpTemplateName)!=0)
-    {
-        cfa->lpTemplateName = HEAP_strdupWtoA(GetProcessHeap(), 0,
-                cfw->lpTemplateName);
-        if (cfa->lpTemplateName == NULL)
-            return FALSE;
-    }
-
-    if ((cfw->Flags & CF_USESTYLE) != 0 && cfw->lpszStyle != NULL)
-    {
-        WideCharToMultiByte(CP_ACP, 0, cfw->lpszStyle, -1, cfa->lpszStyle,
-                LF_FACESIZE, NULL, NULL);
-        cfa->lpszStyle[LF_FACESIZE - 1] = '\0';
-    }
-
-    return TRUE;
-}
-
-static VOID ChooseFontAtoW(const CHOOSEFONTA *cfa, CHOOSEFONTW *cfw)
-{
-    LOGFONTW    *lpLogFont = cfw->lpLogFont;
-    LPWSTR      lpszStyle = cfw->lpszStyle;
-    LPCWSTR     lpTemplateName = cfw->lpTemplateName;
-
-    memcpy(cfw, cfa, sizeof(CHOOSEFONTA));
-    cfw->lpLogFont = lpLogFont;
-    cfw->lpszStyle = lpszStyle;
-    cfw->lpTemplateName = lpTemplateName;
-
-    LogFontAtoW(cfa->lpLogFont, lpLogFont);
-
-    if ((cfa->Flags&CF_ENABLETEMPLATE)!=0 && HIWORD(cfa->lpTemplateName) != 0)
-        HeapFree(GetProcessHeap(), 0, (LPSTR)(cfa->lpTemplateName));
-
-    if ((cfa->Flags & CF_USESTYLE) != 0 && cfa->lpszStyle != NULL)
-    {
-        MultiByteToWideChar(CP_ACP, 0, cfa->lpszStyle, -1, cfw->lpszStyle,
-                LF_FACESIZE);
-        cfw->lpszStyle[LF_FACESIZE - 1] = 0;
-    }
-}
-
-BOOL WINAPI ChooseFontW(LPCHOOSEFONTW lpChFont)
+BOOL WINAPI ChooseFontA(LPCHOOSEFONTA lpChFont)
 {
-    CHOOSEFONTA     cf_a;
-    LOGFONTA        lf_a;
-    CHAR            style_a[LF_FACESIZE];
-
-    cf_a.lpLogFont = &lf_a;
-    cf_a.lpszStyle = style_a;
+    LPCVOID template;
+    HRSRC hResInfo;
+    HINSTANCE hDlginst;
+    HGLOBAL hDlgTmpl;
 
-    if (ChooseFontWtoA(lpChFont, &cf_a) == FALSE)
+    if ( (lpChFont->Flags&CF_ENABLETEMPLATEHANDLE)!=0 )
     {
-        COMDLG32_SetCommDlgExtendedError(CDERR_MEMALLOCFAILURE);
-        return FALSE;
-    }
-
-    if (ChooseFontA(&cf_a) == FALSE)
+        template=(LPCVOID)lpChFont->hInstance;
+    } else
     {
-        if (cf_a.lpTemplateName != NULL)
-            HeapFree(GetProcessHeap(), 0, (LPSTR)(cf_a.lpTemplateName));
-        return FALSE;
+        if ( (lpChFont->Flags&CF_ENABLETEMPLATE)!=0 )
+        {
+            hDlginst=lpChFont->hInstance;
+            if( !(hResInfo = FindResourceA(hDlginst, lpChFont->lpTemplateName,
+                            (LPSTR)RT_DIALOG)))
+            {
+                COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
+                return FALSE;
+            }
+        } else
+        {
+            hDlginst=COMDLG32_hInstance;
+            if (!(hResInfo = FindResourceA(hDlginst, "CHOOSE_FONT", (LPSTR)RT_DIALOG)))
+            {
+                COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
+                return FALSE;
+            }
+        }
+        if (!(hDlgTmpl = LoadResource(hDlginst, hResInfo )) ||
+                !(template = LockResource( hDlgTmpl )))
+        {
+            COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
+            return FALSE;
+        }
     }
-
-    ChooseFontAtoW(&cf_a, lpChFont);
-
-    return TRUE;
-}
-
-#if 0
-/***********************************************************************
- *           ChooseFontW   (COMDLG32.@)
- */
-BOOL WINAPI ChooseFontW(LPCHOOSEFONTW lpChFont)
-{
-    BOOL bRet=FALSE;
-    CHOOSEFONTA cf32a;
-    LOGFONTA lf32a;
-    LPCVOID template;
-    HANDLE hResInfo, hDlgTmpl;
-
     if (TRACE_ON(commdlg))
         _dump_cf_flags(lpChFont->Flags);
 
-    if (!(hResInfo = FindResourceA(COMDLG32_hInstance, "CHOOSE_FONT", (LPSTR)RT_DIALOG)))
-    {
-        COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
-        return FALSE;
-    }
-    if (!(hDlgTmpl = LoadResource(COMDLG32_hInstance, hResInfo )) ||
-            !(template = LockResource( hDlgTmpl )))
-    {
-        COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
-        return FALSE;
-    }
+    if (lpChFont->Flags & (CF_SELECTSCRIPT | CF_NOVERTFONTS ))
+        FIXME(": unimplemented flag (ignored)\n");
 
-    if (lpChFont->Flags & (CF_SELECTSCRIPT | CF_NOVERTFONTS | CF_ENABLETEMPLATE |
-                CF_ENABLETEMPLATEHANDLE)) FIXME(": unimplemented flag (ignored)\n");
-    memcpy(&cf32a, lpChFont, sizeof(cf32a));
-    memcpy(&lf32a, lpChFont->lpLogFont, sizeof(LOGFONTA));
-
-    WideCharToMultiByte( CP_ACP, 0, lpChFont->lpLogFont->lfFaceName, -1,
-            lf32a.lfFaceName, LF_FACESIZE, NULL, NULL );
-    lf32a.lfFaceName[LF_FACESIZE-1] = 0;
-    cf32a.lpLogFont=&lf32a;
-    cf32a.lpszStyle=HEAP_strdupWtoA(GetProcessHeap(), 0, lpChFont->lpszStyle);
-    lpChFont->lpTemplateName=(LPWSTR)&cf32a;
-    bRet = DialogBoxIndirectParamW(COMDLG32_hInstance, template,
-            lpChFont->hwndOwner, FormatCharDlgProcW, (LPARAM)lpChFont );
-    HeapFree(GetProcessHeap(), 0, cf32a.lpszStyle);
-    lpChFont->lpTemplateName=(LPWSTR)cf32a.lpTemplateName;
-    memcpy(lpChFont->lpLogFont, &lf32a, sizeof(CHOOSEFONTA));
-    MultiByteToWideChar( CP_ACP, 0, lf32a.lfFaceName, -1,
-            lpChFont->lpLogFont->lfFaceName, LF_FACESIZE );
-    lpChFont->lpLogFont->lfFaceName[LF_FACESIZE-1] = 0;
-    return bRet;
+    return DialogBoxIndirectParamA(COMDLG32_hInstance, template,
+            lpChFont->hwndOwner, FormatCharDlgProcA, (LPARAM)lpChFont );
 }
-#endif
+
 
 #define TEXT_EXTRAS 4
 #define TEXT_COLORS 16
@@ -1235,7 +1129,6 @@
         LPARAM lParam)
 {
     LPCHOOSEFONTW lpcf32w;
-    LPCHOOSEFONTA lpcf32a;
     INT_PTR res = FALSE;
     if (uMsg!=WM_INITDIALOG)
     {
@@ -1250,8 +1143,7 @@
     else
     {
         lpcf32w=(LPCHOOSEFONTW)lParam;
-        lpcf32a=(LPCHOOSEFONTA)lpcf32w->lpTemplateName;
-        if (!CFn_WMInitDialog(hDlg, wParam, lParam, lpcf32a))
+        if (!CFn_WMInitDialog(hDlg, wParam, lParam, (LPCHOOSEFONTA)lpcf32w))
         {
             TRACE("CFn_WMInitDialog returned FALSE\n");
             return FALSE;
@@ -1259,7 +1151,6 @@
         if (CFn_HookCallChk32((LPCHOOSEFONTA)lpcf32w))
             return CallWindowProcW((WNDPROC)lpcf32w->lpfnHook,hDlg,WM_INITDIALOG,wParam,lParam);
     }
-    lpcf32a=(LPCHOOSEFONTA)lpcf32w->lpTemplateName;
     switch (uMsg)
     {
     case WM_MEASUREITEM:
@@ -1267,7 +1158,7 @@
     case WM_DRAWITEM:
         return CFn_WMDrawItem(hDlg, wParam, lParam);
     case WM_COMMAND:
-        return CFn_WMCommand(hDlg, wParam, lParam, lpcf32a);
+        return CFn_WMCommand(hDlg, wParam, lParam, (LPCHOOSEFONTW)lpcf32w);
     case WM_DESTROY:
         return CFn_WMDestroy(hDlg, wParam, lParam);
     case WM_CHOOSEFONT_GETLOGFONT:

reactos/lib/comdlg32
printdlg.c 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- printdlg.c	8 Aug 2004 20:15:06 -0000	1.5
+++ printdlg.c	14 Aug 2004 19:21:01 -0000	1.6
@@ -1204,6 +1204,10 @@
     PrintStructures->hLandscapeIcon =
       LoadIconA(COMDLG32_hInstance, "PD32_LANDSCAPE");
 
+    /* display the collate/no_collate icon */
+    SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
+                        (LPARAM)PrintStructures->hNoCollateIcon);
+
     if(PrintStructures->hCollateIcon == 0 ||
        PrintStructures->hNoCollateIcon == 0 ||
        PrintStructures->hPortraitIcon == 0 ||
@@ -1308,6 +1312,10 @@
     PrintStructures->hLandscapeIcon =
       LoadIconA(COMDLG32_hInstance, "PD32_LANDSCAPE");
 
+    /* display the collate/no_collate icon */
+    SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
+                        (LPARAM)PrintStructures->hNoCollateIcon);
+
     if(PrintStructures->hCollateIcon == 0 ||
        PrintStructures->hNoCollateIcon == 0 ||
        PrintStructures->hPortraitIcon == 0 ||
@@ -1622,20 +1630,9 @@
         if(HIWORD(wParam) == EN_CHANGE) {
 	    INT copies = GetDlgItemInt(hDlg, edt3, NULL, FALSE);
 	    if(copies <= 1)
-            {
-                CheckDlgButton(hDlg, chx2, BST_UNCHECKED);
-                SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, 
-				    (WPARAM) IMAGE_ICON, 0);
 	        EnableWindow(GetDlgItem(hDlg, chx2), FALSE);
-            }
 	    else
-            {
                 EnableWindow(GetDlgItem(hDlg, chx2), TRUE);
-                
-                SendDlgItemMessageA(hDlg, ico3, STM_SETIMAGE, 
-                                    (WPARAM) IMAGE_ICON,
-                                    (LPARAM)PrintStructures->hNoCollateIcon);
-             }
         }
         break;
 

reactos/lib/comdlg32
winehq2ros.patch 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- winehq2ros.patch	14 Jul 2004 06:52:29 -0000	1.5
+++ winehq2ros.patch	14 Aug 2004 19:21:01 -0000	1.6
@@ -1,10 +1,10 @@
 Index: printdlg.c
 ===================================================================
 RCS file: /home/wine/wine/dlls/commdlg/printdlg.c,v
-retrieving revision 1.75
-diff -u -r1.75 printdlg.c
---- printdlg.c	19 Apr 2004 20:12:15 -0000	1.75
-+++ printdlg.c	16 Jun 2004 07:02:58 -0000
+retrieving revision 1.78
+diff -u -r1.78 printdlg.c
+--- printdlg.c	19 Jul 2004 19:35:28 -0000	1.78
++++ printdlg.c	14 Aug 2004 19:34:17 -0000
 @@ -341,7 +341,7 @@
  	        lpdm->dmCollate =
  		  (IsDlgButtonChecked(hDlg, chx2) == BST_CHECKED);
@@ -107,7 +107,7 @@
  
        PRINTDLG_SetUpPaperComboBoxW(hDlg, cmb2,
  				  PrintStructures->lpPrinterInfo->pPrinterName,
-@@ -1490,7 +1490,7 @@
+@@ -1498,7 +1498,7 @@
      case rad1: /* Paperorientation */
          if (lppd->Flags & PD_PRINTSETUP)
          {
@@ -116,7 +116,7 @@
                SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
                            (LPARAM)(PrintStructures->hPortraitIcon));
          }
-@@ -1499,7 +1499,7 @@
+@@ -1507,7 +1507,7 @@
      case rad2: /* Paperorientation */
          if (lppd->Flags & PD_PRINTSETUP)
          {
@@ -125,7 +125,7 @@
                SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
                            (LPARAM)(PrintStructures->hLandscapeIcon));
          }
-@@ -1523,7 +1523,7 @@
+@@ -1531,7 +1531,7 @@
        {
  	  DWORD Sel = SendDlgItemMessageA(hDlg, cmb2, CB_GETCURSEL, 0, 0);
  	  if(Sel != CB_ERR)
@@ -134,7 +134,7 @@
  							    CB_GETITEMDATA,
  							    Sel, 0);
        }
-@@ -1533,7 +1533,7 @@
+@@ -1541,7 +1541,7 @@
        {
  	  DWORD Sel = SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0);
  	  if(Sel != CB_ERR)
@@ -143,7 +143,7 @@
  							  CB_GETITEMDATA, Sel,
  							  0);
        }
-@@ -1544,8 +1544,8 @@
+@@ -1552,8 +1552,8 @@
  	case rad1:                         /* orientation */
  	case rad2:
  	    if (IsDlgButtonChecked(hDlg, rad1) == BST_CHECKED) {
@@ -154,7 +154,7 @@
  		    SendDlgItemMessageA(hDlg, stc10, STM_SETIMAGE,
  					(WPARAM)IMAGE_ICON,
  					(LPARAM)PrintStructures->hPortraitIcon);
-@@ -1554,8 +1554,8 @@
+@@ -1562,8 +1562,8 @@
  					(LPARAM)PrintStructures->hPortraitIcon);
  		}
  	    } else {
@@ -165,7 +165,7 @@
  		    SendDlgItemMessageA(hDlg, stc10, STM_SETIMAGE,
  					(WPARAM)IMAGE_ICON,
  					(LPARAM)PrintStructures->hLandscapeIcon);
-@@ -1654,7 +1654,7 @@
+@@ -1662,7 +1662,7 @@
      case rad1: /* Paperorientation */
          if (lppd->Flags & PD_PRINTSETUP)
          {
@@ -174,7 +174,7 @@
                SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
                            (LPARAM)(PrintStructures->hPortraitIcon));
          }
-@@ -1663,7 +1663,7 @@
+@@ -1671,7 +1671,7 @@
      case rad2: /* Paperorientation */
          if (lppd->Flags & PD_PRINTSETUP)
          {
@@ -183,7 +183,7 @@
                SendDlgItemMessageA(hDlg, ico1, STM_SETIMAGE, (WPARAM) IMAGE_ICON,
                            (LPARAM)(PrintStructures->hLandscapeIcon));
          }
-@@ -1687,7 +1687,7 @@
+@@ -1695,7 +1695,7 @@
        {
  	  DWORD Sel = SendDlgItemMessageA(hDlg, cmb2, CB_GETCURSEL, 0, 0);
  	  if(Sel != CB_ERR)
@@ -192,7 +192,7 @@
  							    CB_GETITEMDATA,
  							    Sel, 0);
        }
-@@ -1697,7 +1697,7 @@
+@@ -1705,7 +1705,7 @@
        {
  	  DWORD Sel = SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0);
  	  if(Sel != CB_ERR)
@@ -201,7 +201,7 @@
  							  CB_GETITEMDATA, Sel,
  							  0);
        }
-@@ -1708,8 +1708,8 @@
+@@ -1716,8 +1716,8 @@
  	case rad1:                         /* orientation */
  	case rad2:
  	    if (IsDlgButtonChecked(hDlg, rad1) == BST_CHECKED) {
@@ -212,7 +212,7 @@
  		    SendDlgItemMessageA(hDlg, stc10, STM_SETIMAGE,
  					(WPARAM)IMAGE_ICON,
  					(LPARAM)PrintStructures->hPortraitIcon);
-@@ -1718,8 +1718,8 @@
+@@ -1726,8 +1726,8 @@
  					(LPARAM)PrintStructures->hPortraitIcon);
  		}
  	    } else {
@@ -223,7 +223,7 @@
  		    SendDlgItemMessageA(hDlg, stc10, STM_SETIMAGE,
  					(WPARAM)IMAGE_ICON,
  					(LPARAM)PrintStructures->hLandscapeIcon);
-@@ -2911,7 +2911,7 @@
+@@ -2919,7 +2919,7 @@
  /***********************************************************************
   *	PrintDlgExA (COMDLG32.@)
   */
@@ -232,7 +232,7 @@
  {
  	FIXME("stub\n");
  	return E_NOTIMPL;
-@@ -2919,7 +2919,7 @@
+@@ -2927,7 +2927,7 @@
  /***********************************************************************
   *	PrintDlgExW (COMDLG32.@)
   */
CVSspam 0.2.8