Sync to Wine-20050111:

Robert Shearman <rob@codeweavers.com>
- Change dialog templates to not explicitly specify extended window
styles for the static rects on the Page Setup dialog as the ones
specified were wrong anyway.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Replace 'All xxx pages' text in common print dialog by simple 'All'.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Updated Spanish resource.
Jacek Caban <jack@itma.pwr.wroc.pl>
- Moved save* strings to resources.
- Moved string to resources.
- Get rid of W->A calls.
- Unicodified fontdlg.
Eric Pouech <pouech-eric@wanadoo.fr>
- Removed excessive statement (break after return or goto, not useful
break, not needed vars...)
Paul Vriens <Paul.Vriens@xs4all.nl>
- use Interlocked* functions in AddRef and Release.
- store the result of the Interlocked functions and use only this.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Alexandre Julliard <julliard@winehq.org>
- Janitorial: C booleans must not be compared against TRUE.

svn path=/trunk/; revision=12935
This commit is contained in:
Gé van Geldorp 2005-01-11 23:05:16 +00:00
parent fe687a094d
commit 85527b3aaa
24 changed files with 484 additions and 417 deletions

View file

@ -93,7 +93,7 @@ typedef struct {
#define PD32_DEFAULT_PRINTER 1582 #define PD32_DEFAULT_PRINTER 1582
#define PD32_NR_OF_DOCUMENTS_IN_QUEUE 1583 #define PD32_NR_OF_DOCUMENTS_IN_QUEUE 1583
#define PD32_PRINT_ALL_X_PAGES 1584
#define PD32_MARGINS_IN_INCHES 1585 #define PD32_MARGINS_IN_INCHES 1585
#define PD32_MARGINS_IN_MILIMETERS 1586 #define PD32_MARGINS_IN_MILIMETERS 1586
#define PD32_MILIMETERS 1587 #define PD32_MILIMETERS 1587
@ -145,6 +145,13 @@ typedef struct {
#define IDS_COLOR_AQUA 1054 #define IDS_COLOR_AQUA 1054
#define IDS_COLOR_WHITE 1055 #define IDS_COLOR_WHITE 1055
#define IDS_FONT_SIZE 1200
#define IDS_SAVE_BUTTON 1201
#define IDS_SAVE_IN 1202
#define IDS_SAVE 1203
#define IDS_SAVE_AS 1204
#define IDS_OPEN_FILE 1205
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"
#include "wingdi.h" #include "wingdi.h"
@ -199,26 +206,25 @@ typedef struct
{ {
HWND hWnd1; HWND hWnd1;
HWND hWnd2; HWND hWnd2;
LPCHOOSEFONTA lpcf32a; LPCHOOSEFONTW lpcf32w;
int added; int added;
} CFn_ENUMSTRUCT, *LPCFn_ENUMSTRUCT; } CFn_ENUMSTRUCT, *LPCFn_ENUMSTRUCT;
INT AddFontFamily(const ENUMLOGFONTEXA *lpElfex, const NEWTEXTMETRICEXA *lpNTM, INT AddFontFamily(const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *lpNTM,
UINT nFontType, LPCHOOSEFONTA lpcf, HWND hwnd, UINT nFontType, LPCHOOSEFONTW lpcf, HWND hwnd,
LPCFn_ENUMSTRUCT e); LPCFn_ENUMSTRUCT e);
INT AddFontStyle(const ENUMLOGFONTEXA *lpElfex, const NEWTEXTMETRICEXA *metrics, INT AddFontStyle(const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *metrics,
UINT nFontType, LPCHOOSEFONTA lpcf, HWND hcmb2, HWND hcmb3, UINT nFontType, LPCHOOSEFONTW lpcf, HWND hcmb2, HWND hcmb3,
HWND hDlg, BOOL iswin16); HWND hDlg, BOOL iswin16);
void _dump_cf_flags(DWORD cflags); void _dump_cf_flags(DWORD cflags);
LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam, LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
LPCHOOSEFONTA lpcf); LPCHOOSEFONTW lpcf);
LRESULT CFn_WMMeasureItem(HWND hDlg, WPARAM wParam, LPARAM lParam); LRESULT CFn_WMMeasureItem(HWND hDlg, WPARAM wParam, LPARAM lParam);
LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam); LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam);
LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
LPCHOOSEFONTA lpcf); LPCHOOSEFONTW lpcf);
LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam, LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam,
LPCHOOSEFONTA lpcf); LPCHOOSEFONTW lpcf);
LRESULT CFn_WMDestroy(HWND hwnd, WPARAM wParam, LPARAM lParam);
#endif /* _WINE_DLL_CDLG_H */ #endif /* _WINE_DLL_CDLG_H */

View file

@ -300,9 +300,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ò³ÃæÉèÖÃ" CAPTION "Ò³ÃæÉèÖÃ"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Ö½ÕÅ", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "Ö½ÕÅ", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "´óС(&S):", stc2, 16, 112, 36, 8 LTEXT "´óС(&S):", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -408,7 +408,6 @@ supported by your printer.\nPlease enter a value between 1 and %d."
PD32_DEFAULT_PRINTER "Default Printer; " PD32_DEFAULT_PRINTER "Default Printer; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "There are %d documents in the queue" PD32_NR_OF_DOCUMENTS_IN_QUEUE "There are %d documents in the queue"
PD32_PRINT_ALL_X_PAGES "&All %d pages"
PD32_MARGINS_IN_INCHES "Margins [inches]" PD32_MARGINS_IN_INCHES "Margins [inches]"
PD32_MARGINS_IN_MILIMETERS "Margins [mm]" PD32_MARGINS_IN_MILIMETERS "Margins [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"

View file

@ -120,9 +120,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Seite einrichten" CAPTION "Seite einrichten"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Papier", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "Papier", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Größe:", stc2, 16, 112, 36, 8 LTEXT "&Größe:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -402,7 +402,6 @@ Bitte geben sie einen Wert zwischen %d und %d an."
PD32_DEFAULT_PRINTER "Standard Drucker; " PD32_DEFAULT_PRINTER "Standard Drucker; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Es sind %d Dokumente in der Queue" PD32_NR_OF_DOCUMENTS_IN_QUEUE "Es sind %d Dokumente in der Queue"
PD32_PRINT_ALL_X_PAGES "&Alle %d Seiten"
PD32_MARGINS_IN_INCHES "Ränder [inches/zoll]" PD32_MARGINS_IN_INCHES "Ränder [inches/zoll]"
PD32_MARGINS_IN_MILIMETERS "Ränder [mm]" PD32_MARGINS_IN_MILIMETERS "Ränder [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"

View file

@ -300,9 +300,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Setup Page" CAPTION "Setup Page"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Paper", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "Paper", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Size:", stc2, 16, 112, 36, 8 LTEXT "&Size:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -408,7 +408,6 @@ supported by your printer.\nPlease enter a value between 1 and %d."
PD32_DEFAULT_PRINTER "Default Printer; " PD32_DEFAULT_PRINTER "Default Printer; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "There are %d documents in the queue" PD32_NR_OF_DOCUMENTS_IN_QUEUE "There are %d documents in the queue"
PD32_PRINT_ALL_X_PAGES "&All %d pages"
PD32_MARGINS_IN_INCHES "Margins [inches]" PD32_MARGINS_IN_INCHES "Margins [inches]"
PD32_MARGINS_IN_MILIMETERS "Margins [mm]" PD32_MARGINS_IN_MILIMETERS "Margins [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"
@ -461,6 +460,15 @@ STRINGTABLE DISCARDABLE /* Color names */
IDS_COLOR_WHITE "White" IDS_COLOR_WHITE "White"
} }
STRINGTABLE DISCARDABLE
{
IDS_FONT_SIZE "Select a font size between %d and %d points."
IDS_SAVE_BUTTON "&Save"
IDS_SAVE_IN "Save &in:"
IDS_SAVE "Save"
IDS_SAVE_AS "Save as"
IDS_OPEN_FILE "Open File"
}
/****************************************************************/ /****************************************************************/
/* English neutral resources /* English neutral resources

View file

@ -1,6 +1,6 @@
/* /*
* Copyright 1995 Jon Tombs * Copyright 1995 Jon Tombs
* Copyright 2004 José Manuel Ferrer Ortiz * Copyright 2004, 2005 José Manuel Ferrer Ortiz
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -139,7 +139,7 @@ FONT 8, "MS Shell Dlg"
CHECKBOX "&Subrayado", chx2, 10,94,50,10, BS_AUTOCHECKBOX CHECKBOX "&Subrayado", chx2, 10,94,50,10, BS_AUTOCHECKBOX
LTEXT "&Color:", stc4 ,6,110,30,9 LTEXT "&Color:", stc4 ,6,110,30,9
COMBOBOX cmb4,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | COMBOBOX cmb4,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP
GROUPBOX "Ejemplo",grp2,98,72,120,36,WS_GROUP GROUPBOX "Ejemplo",grp2,98,72,120,36,WS_GROUP
CTEXT "AaBbYyZzÑñ",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE CTEXT "AaBbYyZzÑñ",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
LTEXT "Codificación:",stc7 ,98,114,80,9 LTEXT "Codificación:",stc7 ,98,114,80,9
@ -155,7 +155,7 @@ FONT 8, "MS Shell Dlg"
{ {
LTEXT "Colores &básicos:", 1088, 4, 4, 140, 10 LTEXT "Colores &básicos:", 1088, 4, 4, 140, 10
LTEXT "Colores person&alizados:", 1089, 4, 106, 140, 10 LTEXT "Colores person&alizados:", 1089, 4, 106, 140, 10
LTEXT "Color|Sól&ido", 1090, 150, 151, 48, 10 LTEXT "Color | Sól&ido", 1090, 150, 151, 48, 10
LTEXT "&Rojo:", 726 /*1094*/,249,126,24,10 LTEXT "&Rojo:", 726 /*1094*/,249,126,24,10
EDITTEXT 706, 275,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP EDITTEXT 706, 275,124,21,12, WS_BORDER | WS_GROUP | WS_TABSTOP
LTEXT "&Verde:",727/*1095*/,249,140,24,10 LTEXT "&Verde:",727/*1095*/,249,140,24,10
@ -178,7 +178,7 @@ FONT 8, "MS Shell Dlg"
PUSHBUTTON "A&yuda", pshHelp,100,166, 44, 14 PUSHBUTTON "A&yuda", pshHelp,100,166, 44, 14
PUSHBUTTON "Añadir a &colores personalizados", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "Añadir a &colores personalizados", 712/*1024*/, 152, 166, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&Definir colores personalizados >>", 719/*1025*/, 4, 150, 142, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "&Definir colores personalizados >>", 719/*1025*/, 4, 150, 142, 14, WS_GROUP | WS_TABSTOP
PUSHBUTTON "&i",713,300,200,4,14 /* just a dummy: 'i' is like &i in "sol&id" */ PUSHBUTTON "&i",713,300,200,4,14 /* just a dummy: 'i' is like &i in "sol&id" */
} }
@ -267,7 +267,7 @@ FONT 8, "MS Shell Dlg"
BEGIN BEGIN
DEFPUSHBUTTON "Aceptar",IDOK,180,156,48,14,WS_GROUP DEFPUSHBUTTON "Aceptar",IDOK,180,156,48,14,WS_GROUP
PUSHBUTTON "Cancelar",IDCANCEL,232,156,48,14 PUSHBUTTON "Cancelar",IDCANCEL,232,156,48,14
/* PUSHBUTTON "Network...", psh5, 284,156,48,14 */ /* PUSHBUTTON "Red...", psh5, 284,156,48,14 */
GROUPBOX "Impresora", grp4, 8, 4, 272,84, WS_GROUP GROUPBOX "Impresora", grp4, 8, 4, 272,84, WS_GROUP
PUSHBUTTON "&Propiedades", psh2, 212, 17, 60,14, WS_GROUP PUSHBUTTON "&Propiedades", psh2, 212, 17, 60,14, WS_GROUP
@ -299,9 +299,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Página de configuración" CAPTION "Página de configuración"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Papel", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "Papel", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Tamaño:", stc2, 16, 112, 36, 8 LTEXT "&Tamaño:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -409,7 +409,6 @@ desconocido."
PD32_DEFAULT_PRINTER "Impresora por defecto; " PD32_DEFAULT_PRINTER "Impresora por defecto; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Hay %d documentos en la cola" PD32_NR_OF_DOCUMENTS_IN_QUEUE "Hay %d documentos en la cola"
PD32_PRINT_ALL_X_PAGES "&Todas las %d páginas"
PD32_MARGINS_IN_INCHES "Márgenes [pulgadas]" PD32_MARGINS_IN_INCHES "Márgenes [pulgadas]"
PD32_MARGINS_IN_MILIMETERS "Márgenes [mm]" PD32_MARGINS_IN_MILIMETERS "Márgenes [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"
@ -418,7 +417,7 @@ desconocido."
PD32_PRINTER_STATUS_PAUSED "Pausada; " PD32_PRINTER_STATUS_PAUSED "Pausada; "
PD32_PRINTER_STATUS_ERROR "Error; " PD32_PRINTER_STATUS_ERROR "Error; "
PD32_PRINTER_STATUS_PENDING_DELETION "Borrado pendiente; " PD32_PRINTER_STATUS_PENDING_DELETION "Borrado pendiente; "
PD32_PRINTER_STATUS_PAPER_JAM "Paper jam; " PD32_PRINTER_STATUS_PAPER_JAM "Papel atascado; "
PD32_PRINTER_STATUS_PAPER_OUT "Sin papel; " PD32_PRINTER_STATUS_PAPER_OUT "Sin papel; "
PD32_PRINTER_STATUS_MANUAL_FEED "Ponga papel a mano; " PD32_PRINTER_STATUS_MANUAL_FEED "Ponga papel a mano; "
PD32_PRINTER_STATUS_PAPER_PROBLEM "Problema con el papel; " PD32_PRINTER_STATUS_PAPER_PROBLEM "Problema con el papel; "
@ -451,7 +450,7 @@ STRINGTABLE DISCARDABLE /* Color names */
IDS_COLOR_OLIVE "Oliva" IDS_COLOR_OLIVE "Oliva"
IDS_COLOR_NAVY "Azul marino" IDS_COLOR_NAVY "Azul marino"
IDS_COLOR_PURPLE "Morado" IDS_COLOR_PURPLE "Morado"
IDS_COLOR_TEAL "Teal" IDS_COLOR_TEAL "Turquesa"
IDS_COLOR_GRAY "Gris" IDS_COLOR_GRAY "Gris"
IDS_COLOR_SILVER "Plateado" IDS_COLOR_SILVER "Plateado"
IDS_COLOR_RED "Rojo" IDS_COLOR_RED "Rojo"
@ -462,3 +461,8 @@ STRINGTABLE DISCARDABLE /* Color names */
IDS_COLOR_AQUA "Agua" IDS_COLOR_AQUA "Agua"
IDS_COLOR_WHITE "Blanco" IDS_COLOR_WHITE "Blanco"
} }
STRINGTABLE DISCARDABLE
{
IDS_FONT_SIZE "Elija un tamaño de fuente entre %d and %d puntos."
}

View file

@ -303,9 +303,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Mise en page" CAPTION "Mise en page"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Papier", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "Papier", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Taille:", stc2, 16, 112, 36, 8 LTEXT "&Taille:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -411,7 +411,6 @@ Veuillez indiquer un nombre de copies entre 1 et %d."
PD32_DEFAULT_PRINTER "Imprimante par défaut; " PD32_DEFAULT_PRINTER "Imprimante par défaut; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Il y a %d documents dans la file d'attente" PD32_NR_OF_DOCUMENTS_IN_QUEUE "Il y a %d documents dans la file d'attente"
PD32_PRINT_ALL_X_PAGES "&Toutes les %d pages"
PD32_MARGINS_IN_INCHES "Marges [pouces]" PD32_MARGINS_IN_INCHES "Marges [pouces]"
PD32_MARGINS_IN_MILIMETERS "Marges [mm]" PD32_MARGINS_IN_MILIMETERS "Marges [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"

View file

@ -300,9 +300,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Setup di Pagina" CAPTION "Setup di Pagina"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Carta", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "Carta", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Dimensione:", stc2, 16, 112, 36, 8 LTEXT "&Dimensione:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -407,7 +407,6 @@ supportato dalla stampante.\nInserire un valore compreso tra 1 e %d"
PD32_DEFAULT_PRINTER "Stampante predefinita; " PD32_DEFAULT_PRINTER "Stampante predefinita; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Ci sono %d documenti nella coda di stampa" PD32_NR_OF_DOCUMENTS_IN_QUEUE "Ci sono %d documenti nella coda di stampa"
PD32_PRINT_ALL_X_PAGES "&Tutte le %d pagine"
PD32_MARGINS_IN_INCHES "Margini [pollici]" PD32_MARGINS_IN_INCHES "Margini [pollici]"
PD32_MARGINS_IN_MILIMETERS "Margini [mm]" PD32_MARGINS_IN_MILIMETERS "Margini [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"

View file

@ -251,7 +251,7 @@ FONT 8, "MS Shell Dlg"
EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER EDITTEXT edt3, 240,106, 32,12, WS_GROUP | ES_NUMBER
GROUPBOX "Afdrukbereik", grp1, 8,92, 144,64, WS_GROUP GROUPBOX "Afdrukbereik", grp1, 8,92, 144,64, WS_GROUP
CONTROL "&Alle xx", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12 CONTROL "&Alle", rad1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,106,64,12
CONTROL "&Pagina's", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12 CONTROL "&Pagina's", rad3,"Button",BS_AUTORADIOBUTTON,16,122,36,12
CONTROL "Sele&ctie", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12 CONTROL "Sele&ctie", rad2,"Button",BS_AUTORADIOBUTTON,16,138,64,12
EDITTEXT edt1, 74,122, 26,12, WS_GROUP | ES_NUMBER EDITTEXT edt1, 74,122, 26,12, WS_GROUP | ES_NUMBER
@ -289,7 +289,6 @@ gespecifieerde fout"
PD32_DEFAULT_PRINTER "Default Printer, " PD32_DEFAULT_PRINTER "Default Printer, "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Er staan %d documenten in de \ PD32_NR_OF_DOCUMENTS_IN_QUEUE "Er staan %d documenten in de \
wachtrij" wachtrij"
PD32_PRINT_ALL_X_PAGES "&Alle %d pagina's"
PD32_MARGINS_IN_INCHES "Marges [inch]" PD32_MARGINS_IN_INCHES "Marges [inch]"
PD32_MARGINS_IN_MILIMETERS "Marges [mm]" PD32_MARGINS_IN_MILIMETERS "Marges [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"

View file

@ -302,9 +302,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ustawienia Strony" CAPTION "Ustawienia Strony"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Papier", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "Papier", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Rozmiar:", stc2, 16, 112, 36, 8 LTEXT "&Rozmiar:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -405,7 +405,6 @@ STRINGTABLE DISCARDABLE
PD32_DEFAULT_PRINTER "Domyœlna Drukarka; " PD32_DEFAULT_PRINTER "Domyœlna Drukarka; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "W kolejce znajduj¹ siê %d dokumenty" PD32_NR_OF_DOCUMENTS_IN_QUEUE "W kolejce znajduj¹ siê %d dokumenty"
PD32_PRINT_ALL_X_PAGES "&Wszystkie %d strony"
PD32_MARGINS_IN_INCHES "Marginesy [cale]" PD32_MARGINS_IN_INCHES "Marginesy [cale]"
PD32_MARGINS_IN_MILIMETERS "Marginesy [mm]" PD32_MARGINS_IN_MILIMETERS "Marginesy [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"
@ -437,6 +436,16 @@ STRINGTABLE DISCARDABLE
PD32_PRINTER_STATUS_POWER_SAVE "Tryb oszczêdzania energii; " PD32_PRINTER_STATUS_POWER_SAVE "Tryb oszczêdzania energii; "
} }
STRINGTABLE DISCARDABLE
{
IDS_FONT_SIZE "Wybierz czcionkê o rozmiarze pomiêdzy %d a %d punktami."
IDS_SAVE_BUTTON "&Zapisz"
IDS_SAVE_IN "Zapisz &w:"
IDS_SAVE "Zapisz"
IDS_SAVE_AS "Zapisz jako"
IDS_OPEN_FILE "Otwórz Plik"
}
STRINGTABLE DISCARDABLE /* Color names */ STRINGTABLE DISCARDABLE /* Color names */
{ {
IDS_COLOR_BLACK "Czarny" IDS_COLOR_BLACK "Czarny"

View file

@ -301,9 +301,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Configurações de Página" CAPTION "Configurações de Página"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Papel", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "Papel", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Tamanho:", stc2, 16, 112, 36, 8 LTEXT "&Tamanho:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -407,7 +407,6 @@ pela sua impressora.\nPor favor entre um valor entre 1 e %d."
PD32_DEFAULT_PRINTER "Impressora Padrão; " PD32_DEFAULT_PRINTER "Impressora Padrão; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Existem %d documentos na fila" PD32_NR_OF_DOCUMENTS_IN_QUEUE "Existem %d documentos na fila"
PD32_PRINT_ALL_X_PAGES "&Todas %d páginas"
PD32_MARGINS_IN_INCHES "Margens [polegadas]" PD32_MARGINS_IN_INCHES "Margens [polegadas]"
PD32_MARGINS_IN_MILIMETERS "Margens [mm]" PD32_MARGINS_IN_MILIMETERS "Margens [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"

View file

@ -376,7 +376,6 @@ STRINGTABLE DISCARDABLE
PD32_DEFAULT_PRINTER "Ïðèíòåð ïî óìîë÷àíèþ; " PD32_DEFAULT_PRINTER "Ïðèíòåð ïî óìîë÷àíèþ; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d äîêóìåíòîâ â î÷åðåäè" PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d äîêóìåíòîâ â î÷åðåäè"
PD32_PRINT_ALL_X_PAGES "&Âñå %d ñòðàíèö"
PD32_MARGINS_IN_INCHES "Ãðàíèöû [äþéìû)" PD32_MARGINS_IN_INCHES "Ãðàíèöû [äþéìû)"
PD32_MARGINS_IN_MILIMETERS "Ãðàíèöû [ìì]" PD32_MARGINS_IN_MILIMETERS "Ãðàíèöû [ìì]"
PD32_MILIMETERS "ìì" PD32_MILIMETERS "ìì"

View file

@ -300,9 +300,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Priprava strani" CAPTION "Priprava strani"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Papir", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "Papir", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "Veli&kost:", stc2, 16, 112, 36, 8 LTEXT "Veli&kost:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -405,7 +405,6 @@ Vnesite
PD32_DEFAULT_PRINTER "Privzeti tiskalnik; " PD32_DEFAULT_PRINTER "Privzeti tiskalnik; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d èakajoèih dok." PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d èakajoèih dok."
PD32_PRINT_ALL_X_PAGES "&Vse strani -- %d"
PD32_MARGINS_IN_INCHES "Robovi [palci]" PD32_MARGINS_IN_INCHES "Robovi [palci]"
PD32_MARGINS_IN_MILIMETERS "Robovi [mm]" PD32_MARGINS_IN_MILIMETERS "Robovi [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"

View file

@ -378,7 +378,6 @@ supported by your printer.\nPlease enter a value between 1 and %d"
PD32_DEFAULT_PRINTER "Implicitná tlaèiareò; " PD32_DEFAULT_PRINTER "Implicitná tlaèiareò; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "There are %d documents in queue" PD32_NR_OF_DOCUMENTS_IN_QUEUE "There are %d documents in queue"
PD32_PRINT_ALL_X_PAGES "&Všetky %d strany"
PD32_MARGINS_IN_INCHES "Okraje [palce]" PD32_MARGINS_IN_INCHES "Okraje [palce]"
PD32_MARGINS_IN_MILIMETERS "Okraje [mm]" PD32_MARGINS_IN_MILIMETERS "Okraje [mm]"
PD32_MILIMETERS "mm" PD32_MILIMETERS "mm"

View file

@ -293,9 +293,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Utskriftsformat" CAPTION "Utskriftsformat"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "Papper", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "Papper", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "&Storlek:", stc2, 16, 112, 36, 8 LTEXT "&Storlek:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160,CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160,CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -398,7 +398,6 @@ pappersgr
PD32_DEFAULT_PRINTER "Standardskrivare; " PD32_DEFAULT_PRINTER "Standardskrivare; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "Det är %d dokument i kön" PD32_NR_OF_DOCUMENTS_IN_QUEUE "Det är %d dokument i kön"
PD32_PRINT_ALL_X_PAGES "&Alla %d sidor"
PD32_MARGINS_IN_INCHES "Marginaler [inches]" PD32_MARGINS_IN_INCHES "Marginaler [inches]"
PD32_MARGINS_IN_MILIMETERS "Marginaler [millimeter]" PD32_MARGINS_IN_MILIMETERS "Marginaler [millimeter]"
PD32_MILIMETERS "millimeter" PD32_MILIMETERS "millimeter"

View file

@ -297,9 +297,9 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "»ÃѺáµè§" CAPTION "»ÃѺáµè§"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "", rct1, 130, 0x00020006, 80, 8, 80, 80, SS_WHITERECT CONTROL "", rct1, "Static", SS_WHITERECT, 80, 8, 80, 80
CONTROL "", rct2, 130, 0x00020005, 160, 12, 4, 80, SS_GRAYRECT CONTROL "", rct2, "Static", SS_GRAYRECT, 160, 12, 4, 80
CONTROL "", rct3, 130, 0x00020005, 84, 88, 80, 4, SS_GRAYRECT CONTROL "", rct3, "Static", SS_GRAYRECT, 84, 88, 80, 4
GROUPBOX "¡ÃдÒÉ", grp2, 8, 96, 224, 56, BS_GROUPBOX GROUPBOX "¡ÃдÒÉ", grp2, 8, 96, 224, 56, BS_GROUPBOX
LTEXT "¢¹Ò´:", stc2, 16, 112, 36, 8 LTEXT "¢¹Ò´:", stc2, 16, 112, 36, 8
COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL COMBOBOX cmb2, 64, 110, 160, 160, CBS_SIMPLE|CBS_DROPDOWN|CBS_SORT|WS_GROUP|WS_TABSTOP|WS_VSCROLL
@ -402,7 +402,6 @@ supported by your printer.\nPlease enter a value between 1 and %d."
PD32_DEFAULT_PRINTER "à¤Ã×èͧ¾ÔÁ¾ì»¡µÔ; " PD32_DEFAULT_PRINTER "à¤Ã×èͧ¾ÔÁ¾ì»¡µÔ; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "ÁÕ %d á¿éÁÃÍÍÂÙè" PD32_NR_OF_DOCUMENTS_IN_QUEUE "ÁÕ %d á¿éÁÃÍÍÂÙè"
PD32_PRINT_ALL_X_PAGES "·Ø¡ %d ˹éÒ"
PD32_MARGINS_IN_INCHES "¢Íº¡ÃдÒÉ [¹ÔéÇ]" PD32_MARGINS_IN_INCHES "¢Íº¡ÃдÒÉ [¹ÔéÇ]"
PD32_MARGINS_IN_MILIMETERS "¢Íº¡ÃдÒÉ [ÁÁ.]" PD32_MARGINS_IN_MILIMETERS "¢Íº¡ÃдÒÉ [ÁÁ.]"
PD32_MILIMETERS "ÁÁ." PD32_MILIMETERS "ÁÁ."

View file

@ -376,7 +376,6 @@ STRINGTABLE DISCARDABLE
PD32_DEFAULT_PRINTER "Ïðèíòåð çà îáóìîâëåííÿì; " PD32_DEFAULT_PRINTER "Ïðèíòåð çà îáóìîâëåííÿì; "
PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d äîêóìåíò³â ó ÷åðç³" PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d äîêóìåíò³â ó ÷åðç³"
PD32_PRINT_ALL_X_PAGES "&Âñ³ %d ñòîð³íîê"
PD32_MARGINS_IN_INCHES "Ìåæ³ [äþéìè]" PD32_MARGINS_IN_INCHES "Ìåæ³ [äþéìè]"
PD32_MARGINS_IN_MILIMETERS "Ìåæ³ [ìì]" PD32_MARGINS_IN_MILIMETERS "Ìåæ³ [ìì]"
PD32_MILIMETERS "ìì" PD32_MILIMETERS "ìì"

View file

@ -1057,11 +1057,10 @@ LRESULT CC_WMCommand( HWND hDlg, WPARAM wParam, LPARAM lParam, WORD notifyCode,
*/ */
LRESULT CC_WMPaint( HWND hDlg, WPARAM wParam, LPARAM lParam ) LRESULT CC_WMPaint( HWND hDlg, WPARAM wParam, LPARAM lParam )
{ {
HDC hdc;
PAINTSTRUCT ps; PAINTSTRUCT ps;
LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER);
hdc = BeginPaint(hDlg, &ps); BeginPaint(hDlg, &ps);
/* we have to paint dialog children except text and buttons */ /* we have to paint dialog children except text and buttons */
CC_PaintPredefColorArray(hDlg, 6, 8); CC_PaintPredefColorArray(hDlg, 6, 8);
CC_PaintUserColorArray(hDlg, 2, 8, lpp->lpcc->lpCustColors); CC_PaintUserColorArray(hDlg, 2, 8, lpp->lpcc->lpCustColors);
@ -1072,7 +1071,7 @@ LRESULT CC_WMPaint( HWND hDlg, WPARAM wParam, LPARAM lParam )
CC_PaintColorGraph(hDlg); CC_PaintColorGraph(hDlg);
EndPaint(hDlg, &ps); EndPaint(hDlg, &ps);
return TRUE; return TRUE;
} }
/*********************************************************************** /***********************************************************************
@ -1289,7 +1288,8 @@ BOOL WINAPI ChooseColorW( LPCHOOSECOLORW lpChCol )
{ {
HRSRC hResInfo; HRSRC hResInfo;
HGLOBAL hDlgTmpl; HGLOBAL hDlgTmpl;
if (!(hResInfo = FindResourceA(COMDLG32_hInstance, "CHOOSE_COLOR", (LPSTR)RT_DIALOG))) static const WCHAR wszCHOOSE_COLOR[] = {'C','H','O','O','S','E','_','C','O','L','O','R',0};
if (!(hResInfo = FindResourceW(COMDLG32_hInstance, wszCHOOSE_COLOR, (LPWSTR)RT_DIALOG)))
{ {
COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE); COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
return FALSE; return FALSE;

View file

@ -314,7 +314,7 @@ BOOL WINAPI GetFileDialog95A(LPOPENFILENAMEA ofn,UINT iDlgType)
ZeroMemory(&fodInfos, sizeof(FileOpenDlgInfos)); ZeroMemory(&fodInfos, sizeof(FileOpenDlgInfos));
/* Pass in the original ofn */ /* Pass in the original ofn */
fodInfos.ofnInfos = ofn; fodInfos.ofnInfos = (LPOPENFILENAMEW)ofn;
/* save current directory */ /* save current directory */
if (ofn->Flags & OFN_NOCHANGEDIR) if (ofn->Flags & OFN_NOCHANGEDIR)
@ -445,13 +445,13 @@ BOOL WINAPI GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType)
{ {
BOOL ret; BOOL ret;
FileOpenDlgInfos fodInfos; FileOpenDlgInfos fodInfos;
LPSTR lpstrSavDir = NULL; LPWSTR lpstrSavDir = NULL;
/* Initialize FileOpenDlgInfos structure */ /* Initialize FileOpenDlgInfos structure */
ZeroMemory(&fodInfos, sizeof(FileOpenDlgInfos)); ZeroMemory(&fodInfos, sizeof(FileOpenDlgInfos));
/* Pass in the original ofn */ /* Pass in the original ofn */
fodInfos.ofnInfos = (LPOPENFILENAMEA) ofn; fodInfos.ofnInfos = ofn;
fodInfos.title = ofn->lpstrTitle; fodInfos.title = ofn->lpstrTitle;
fodInfos.defext = ofn->lpstrDefExt; fodInfos.defext = ofn->lpstrDefExt;
@ -479,8 +479,8 @@ BOOL WINAPI GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType)
/* save current directory */ /* save current directory */
if (ofn->Flags & OFN_NOCHANGEDIR) if (ofn->Flags & OFN_NOCHANGEDIR)
{ {
lpstrSavDir = MemAlloc(MAX_PATH); lpstrSavDir = MemAlloc(MAX_PATH*sizeof(WCHAR));
GetCurrentDirectoryA(MAX_PATH, lpstrSavDir); GetCurrentDirectoryW(MAX_PATH, lpstrSavDir);
} }
fodInfos.unicode = TRUE; fodInfos.unicode = TRUE;
@ -500,7 +500,7 @@ BOOL WINAPI GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType)
if (lpstrSavDir) if (lpstrSavDir)
{ {
SetCurrentDirectoryA(lpstrSavDir); SetCurrentDirectoryW(lpstrSavDir);
MemFree(lpstrSavDir); MemFree(lpstrSavDir);
} }
@ -729,12 +729,12 @@ HWND CreateTemplateDialog(FileOpenDlgInfos *fodInfos, HWND hwnd)
hinst = fodInfos->ofnInfos->hInstance; hinst = fodInfos->ofnInfos->hInstance;
if(fodInfos->unicode) if(fodInfos->unicode)
{ {
LPOPENFILENAMEW ofn = (LPOPENFILENAMEW) fodInfos->ofnInfos; LPOPENFILENAMEW ofn = fodInfos->ofnInfos;
hRes = FindResourceW( hinst, ofn->lpTemplateName, (LPWSTR)RT_DIALOG); hRes = FindResourceW( hinst, ofn->lpTemplateName, (LPWSTR)RT_DIALOG);
} }
else else
{ {
LPOPENFILENAMEA ofn = fodInfos->ofnInfos; LPOPENFILENAMEA ofn = (LPOPENFILENAMEA)fodInfos->ofnInfos;
hRes = FindResourceA( hinst, ofn->lpTemplateName, (LPSTR)RT_DIALOG); hRes = FindResourceA( hinst, ofn->lpTemplateName, (LPSTR)RT_DIALOG);
} }
if (!hRes) if (!hRes)
@ -807,7 +807,7 @@ HRESULT SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode)
ofnNotify.hdr.hwndFrom=hwndParentDlg; ofnNotify.hdr.hwndFrom=hwndParentDlg;
ofnNotify.hdr.idFrom=0; ofnNotify.hdr.idFrom=0;
ofnNotify.hdr.code = uCode; ofnNotify.hdr.code = uCode;
ofnNotify.lpOFN = (LPOPENFILENAMEW) fodInfos->ofnInfos; ofnNotify.lpOFN = fodInfos->ofnInfos;
ofnNotify.pszFile = NULL; ofnNotify.pszFile = NULL;
ret = SendMessageW(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify); ret = SendMessageW(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify);
} }
@ -817,7 +817,7 @@ HRESULT SendCustomDlgNotificationMessage(HWND hwndParentDlg, UINT uCode)
ofnNotify.hdr.hwndFrom=hwndParentDlg; ofnNotify.hdr.hwndFrom=hwndParentDlg;
ofnNotify.hdr.idFrom=0; ofnNotify.hdr.idFrom=0;
ofnNotify.hdr.code = uCode; ofnNotify.hdr.code = uCode;
ofnNotify.lpOFN = fodInfos->ofnInfos; ofnNotify.lpOFN = (LPOPENFILENAMEA)fodInfos->ofnInfos;
ofnNotify.pszFile = NULL; ofnNotify.pszFile = NULL;
ret = SendMessageA(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify); ret = SendMessageA(fodInfos->DlgInfos.hwndCustomDlg,WM_NOTIFY,0,(LPARAM)&ofnNotify);
} }
@ -1164,7 +1164,9 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
} }
else if (fodInfos->DlgInfos.dwDlgProp & FODPROP_SAVEDLG) else if (fodInfos->DlgInfos.dwDlgProp & FODPROP_SAVEDLG)
{ {
SetWindowTextA(hwnd,"Save"); WCHAR buf[16];
LoadStringW(COMDLG32_hInstance, IDS_SAVE, buf, sizeof(buf)/sizeof(WCHAR));
SetWindowTextW(hwnd, buf);
} }
/* Initialise the file name edit control */ /* Initialise the file name edit control */
@ -1388,11 +1390,14 @@ static LRESULT FILEDLG95_InitControls(HWND hwnd)
(rectDlg.bottom-rectDlg.top) - (rectHelp.bottom - rectCancel.bottom), (rectDlg.bottom-rectDlg.top) - (rectHelp.bottom - rectCancel.bottom),
SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOZORDER); SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOZORDER);
} }
/* change Open to Save FIXME: use resources */ /* change Open to Save */
if (fodInfos->DlgInfos.dwDlgProp & FODPROP_SAVEDLG) if (fodInfos->DlgInfos.dwDlgProp & FODPROP_SAVEDLG)
{ {
SetDlgItemTextA(hwnd,IDOK,"&Save"); WCHAR buf[16];
SetDlgItemTextA(hwnd,IDC_LOOKINSTATIC,"Save &in"); LoadStringW(COMDLG32_hInstance, IDS_SAVE_BUTTON, buf, sizeof(buf)/sizeof(WCHAR));
SetDlgItemTextW(hwnd, IDOK, buf);
LoadStringW(COMDLG32_hInstance, IDS_SAVE_IN, buf, sizeof(buf)/sizeof(WCHAR));
SetDlgItemTextW(hwnd, IDC_LOOKINSTATIC, buf);
} }
return 0; return 0;
} }
@ -1582,12 +1587,12 @@ BOOL FILEDLG95_OnOpenMultipleFiles(HWND hwnd, LPWSTR lpstrFileList, UINT nFileCo
if(fodInfos->unicode) if(fodInfos->unicode)
{ {
LPOPENFILENAMEW ofn = (LPOPENFILENAMEW) fodInfos->ofnInfos; LPOPENFILENAMEW ofn = fodInfos->ofnInfos;
ofn->lpstrFile[0] = '\0'; ofn->lpstrFile[0] = '\0';
} }
else else
{ {
LPOPENFILENAMEA ofn = fodInfos->ofnInfos; LPOPENFILENAMEA ofn = (LPOPENFILENAMEA) fodInfos->ofnInfos;
ofn->lpstrFile[0] = '\0'; ofn->lpstrFile[0] = '\0';
} }
@ -1640,13 +1645,13 @@ BOOL FILEDLG95_OnOpenMultipleFiles(HWND hwnd, LPWSTR lpstrFileList, UINT nFileCo
} }
if(fodInfos->unicode) if(fodInfos->unicode)
{ {
LPOPENFILENAMEW ofn = (LPOPENFILENAMEW) fodInfos->ofnInfos; LPOPENFILENAMEW ofn = fodInfos->ofnInfos;
strcpyW( ofn->lpstrFile, lpstrPathSpec); strcpyW( ofn->lpstrFile, lpstrPathSpec);
memcpy( ofn->lpstrFile + nSizePath, lpstrFileList, sizeUsed*sizeof(WCHAR) ); memcpy( ofn->lpstrFile + nSizePath, lpstrFileList, sizeUsed*sizeof(WCHAR) );
} }
else else
{ {
LPOPENFILENAMEA ofn = fodInfos->ofnInfos; LPOPENFILENAMEA ofn = (LPOPENFILENAMEA)fodInfos->ofnInfos;
if (ofn->lpstrFile != NULL) if (ofn->lpstrFile != NULL)
{ {
@ -1684,14 +1689,14 @@ BOOL FILEDLG95_OnOpenMultipleFiles(HWND hwnd, LPWSTR lpstrFileList, UINT nFileCo
#define ONOPEN_SEARCH 3 #define ONOPEN_SEARCH 3
static void FILEDLG95_OnOpenMessage(HWND hwnd, int idCaption, int idText) static void FILEDLG95_OnOpenMessage(HWND hwnd, int idCaption, int idText)
{ {
char strMsgTitle[MAX_PATH]; WCHAR strMsgTitle[MAX_PATH];
char strMsgText [MAX_PATH]; WCHAR strMsgText [MAX_PATH];
if (idCaption) if (idCaption)
LoadStringA(COMDLG32_hInstance, idCaption, strMsgTitle, sizeof(strMsgTitle)); LoadStringW(COMDLG32_hInstance, idCaption, strMsgTitle, sizeof(strMsgTitle)/sizeof(WCHAR));
else else
strMsgTitle[0] = '\0'; strMsgTitle[0] = '\0';
LoadStringA(COMDLG32_hInstance, idText, strMsgText, sizeof(strMsgText)); LoadStringW(COMDLG32_hInstance, idText, strMsgText, sizeof(strMsgText)/sizeof(WCHAR));
MessageBoxA(hwnd,strMsgText, strMsgTitle, MB_OK | MB_ICONHAND); MessageBoxW(hwnd,strMsgText, strMsgTitle, MB_OK | MB_ICONHAND);
} }
BOOL FILEDLG95_OnOpen(HWND hwnd) BOOL FILEDLG95_OnOpen(HWND hwnd)
@ -2027,7 +2032,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
{ {
if(fodInfos->unicode) if(fodInfos->unicode)
{ {
LPOPENFILENAMEW ofn = (LPOPENFILENAMEW) fodInfos->ofnInfos; LPOPENFILENAMEW ofn = fodInfos->ofnInfos;
strncpyW(ofn->lpstrFile, lpstrPathAndFile, ofn->nMaxFile); strncpyW(ofn->lpstrFile, lpstrPathAndFile, ofn->nMaxFile);
if (ofn->Flags & OFN_ALLOWMULTISELECT) if (ofn->Flags & OFN_ALLOWMULTISELECT)
@ -2035,7 +2040,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
} }
else else
{ {
LPOPENFILENAMEA ofn = fodInfos->ofnInfos; LPOPENFILENAMEA ofn = (LPOPENFILENAMEA)fodInfos->ofnInfos;
WideCharToMultiByte(CP_ACP, 0, lpstrPathAndFile, -1, WideCharToMultiByte(CP_ACP, 0, lpstrPathAndFile, -1,
ofn->lpstrFile, ofn->nMaxFile, NULL, NULL); ofn->lpstrFile, ofn->nMaxFile, NULL, NULL);
@ -2058,12 +2063,12 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
LPWSTR lpstrFileTitle = PathFindFileNameW(lpstrPathAndFile); LPWSTR lpstrFileTitle = PathFindFileNameW(lpstrPathAndFile);
if(fodInfos->unicode) if(fodInfos->unicode)
{ {
LPOPENFILENAMEW ofn = (LPOPENFILENAMEW) fodInfos->ofnInfos; LPOPENFILENAMEW ofn = fodInfos->ofnInfos;
strncpyW(ofn->lpstrFileTitle, lpstrFileTitle, ofn->nMaxFileTitle); strncpyW(ofn->lpstrFileTitle, lpstrFileTitle, ofn->nMaxFileTitle);
} }
else else
{ {
LPOPENFILENAMEA ofn = fodInfos->ofnInfos; LPOPENFILENAMEA ofn = (LPOPENFILENAMEA)fodInfos->ofnInfos;
WideCharToMultiByte(CP_ACP, 0, lpstrFileTitle, -1, WideCharToMultiByte(CP_ACP, 0, lpstrFileTitle, -1,
ofn->lpstrFileTitle, ofn->nMaxFileTitle, NULL, NULL); ofn->lpstrFileTitle, ofn->nMaxFileTitle, NULL, NULL);
} }
@ -2072,7 +2077,7 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
/* copy currently selected filter to lpstrCustomFilter */ /* copy currently selected filter to lpstrCustomFilter */
if (fodInfos->ofnInfos->lpstrCustomFilter) if (fodInfos->ofnInfos->lpstrCustomFilter)
{ {
LPOPENFILENAMEA ofn = fodInfos->ofnInfos; LPOPENFILENAMEA ofn = (LPOPENFILENAMEA)fodInfos->ofnInfos;
int len = WideCharToMultiByte(CP_ACP, 0, fodInfos->ShellInfos.lpstrCurrentFilter, -1, int len = WideCharToMultiByte(CP_ACP, 0, fodInfos->ShellInfos.lpstrCurrentFilter, -1,
NULL, 0, NULL, NULL); NULL, 0, NULL, NULL);
if (len + strlen(ofn->lpstrCustomFilter) + 1 <= ofn->nMaxCustFilter) if (len + strlen(ofn->lpstrCustomFilter) + 1 <= ofn->nMaxCustFilter)
@ -3208,7 +3213,6 @@ HRESULT GetName(LPSHELLFOLDER lpsf, LPITEMIDLIST pidl,DWORD dwFlags,LPSTR lpstrF
if(!lpsf) if(!lpsf)
{ {
HRESULT hRes;
SHGetDesktopFolder(&lpsf); SHGetDesktopFolder(&lpsf);
hRes = GetName(lpsf,pidl,dwFlags,lpstrFileName); hRes = GetName(lpsf,pidl,dwFlags,lpstrFileName);
IShellFolder_Release(lpsf); IShellFolder_Release(lpsf);
@ -3358,10 +3362,7 @@ static void *MemAlloc(UINT size)
static void MemFree(void *mem) static void MemFree(void *mem)
{ {
if(mem) HeapFree(GetProcessHeap(),0,mem);
{
HeapFree(GetProcessHeap(),0,mem);
}
} }
/* /*

View file

@ -586,11 +586,8 @@ static LRESULT FD31_DiskChange( PFD31_DATA lfs )
static LRESULT FD31_FileTypeChange( PFD31_DATA lfs ) static LRESULT FD31_FileTypeChange( PFD31_DATA lfs )
{ {
LONG lRet; LONG lRet;
WCHAR diskname[BUFFILE];
LPWSTR pstr; LPWSTR pstr;
diskname[0] = 0;
lRet = SendDlgItemMessageW(lfs->hwnd, cmb1, CB_GETCURSEL, 0, 0); lRet = SendDlgItemMessageW(lfs->hwnd, cmb1, CB_GETCURSEL, 0, 0);
if (lRet == LB_ERR) if (lRet == LB_ERR)
return TRUE; return TRUE;
@ -705,7 +702,6 @@ static LPWSTR FD31_DupToW(LPCSTR str, DWORD size)
*/ */
void FD31_MapOfnStructA(LPOPENFILENAMEA ofnA, LPOPENFILENAMEW ofnW, BOOL open) void FD31_MapOfnStructA(LPOPENFILENAMEA ofnA, LPOPENFILENAMEW ofnW, BOOL open)
{ {
LPCSTR str;
UNICODE_STRING usBuffer; UNICODE_STRING usBuffer;
ofnW->lStructSize = sizeof(OPENFILENAMEW); ofnW->lStructSize = sizeof(OPENFILENAMEW);
@ -727,13 +723,18 @@ void FD31_MapOfnStructA(LPOPENFILENAMEA ofnA, LPOPENFILENAMEW ofnW, BOOL open)
RtlCreateUnicodeStringFromAsciiz (&usBuffer,ofnA->lpstrInitialDir); RtlCreateUnicodeStringFromAsciiz (&usBuffer,ofnA->lpstrInitialDir);
ofnW->lpstrInitialDir = usBuffer.Buffer; ofnW->lpstrInitialDir = usBuffer.Buffer;
} }
if (ofnA->lpstrTitle) if (ofnA->lpstrTitle) {
str = ofnA->lpstrTitle; RtlCreateUnicodeStringFromAsciiz (&usBuffer, ofnA->lpstrTitle);
else ofnW->lpstrTitle = usBuffer.Buffer;
/* Allocates default title (FIXME : get it from resource) */ } else {
str = open ? "Open File" : "Save as"; WCHAR buf[16];
RtlCreateUnicodeStringFromAsciiz (&usBuffer,str); int len;
ofnW->lpstrTitle = usBuffer.Buffer; LoadStringW(COMDLG32_hInstance, open ? IDS_OPEN_FILE : IDS_SAVE_AS,
buf, sizeof(buf)/sizeof(WCHAR));
len = lstrlenW(buf)+1;
ofnW->lpstrTitle = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR));
memcpy((void*)ofnW->lpstrTitle, buf, len*sizeof(WCHAR));
}
ofnW->Flags = ofnA->Flags; ofnW->Flags = ofnA->Flags;
ofnW->nFileOffset = ofnA->nFileOffset; ofnW->nFileOffset = ofnA->nFileOffset;
ofnW->nFileExtension = ofnA->nFileExtension; ofnW->nFileExtension = ofnA->nFileExtension;
@ -757,12 +758,12 @@ void FD31_MapOfnStructA(LPOPENFILENAMEA ofnA, LPOPENFILENAMEW ofnW, BOOL open)
*/ */
void FD31_FreeOfnW(LPOPENFILENAMEW ofnW) void FD31_FreeOfnW(LPOPENFILENAMEW ofnW)
{ {
if (ofnW->lpstrFilter) HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrFilter); HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrFilter);
if (ofnW->lpstrCustomFilter) HeapFree(GetProcessHeap(), 0, ofnW->lpstrCustomFilter); HeapFree(GetProcessHeap(), 0, ofnW->lpstrCustomFilter);
if (ofnW->lpstrFile) HeapFree(GetProcessHeap(), 0, ofnW->lpstrFile); HeapFree(GetProcessHeap(), 0, ofnW->lpstrFile);
if (ofnW->lpstrFileTitle) HeapFree(GetProcessHeap(), 0, ofnW->lpstrFileTitle); HeapFree(GetProcessHeap(), 0, ofnW->lpstrFileTitle);
if (ofnW->lpstrInitialDir) HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrInitialDir); HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrInitialDir);
if (ofnW->lpstrTitle) HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrTitle); HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpstrTitle);
if ((ofnW->lpTemplateName) && (HIWORD(ofnW->lpTemplateName))) if ((ofnW->lpTemplateName) && (HIWORD(ofnW->lpTemplateName)))
HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpTemplateName); HeapFree(GetProcessHeap(), 0, (LPWSTR) ofnW->lpTemplateName);
} }

View file

@ -216,10 +216,11 @@ HRESULT WINAPI IShellBrowserImpl_QueryInterface(IShellBrowser *iface,
ULONG WINAPI IShellBrowserImpl_AddRef(IShellBrowser * iface) ULONG WINAPI IShellBrowserImpl_AddRef(IShellBrowser * iface)
{ {
IShellBrowserImpl *This = (IShellBrowserImpl *)iface; IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
ULONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p,%lu)\n", This, This->ref); TRACE("(%p,%lu)\n", This, ref - 1);
return ++(This->ref); return ref;
} }
/************************************************************************** /**************************************************************************
@ -228,16 +229,17 @@ ULONG WINAPI IShellBrowserImpl_AddRef(IShellBrowser * iface)
ULONG WINAPI IShellBrowserImpl_Release(IShellBrowser * iface) ULONG WINAPI IShellBrowserImpl_Release(IShellBrowser * iface)
{ {
IShellBrowserImpl *This = (IShellBrowserImpl *)iface; IShellBrowserImpl *This = (IShellBrowserImpl *)iface;
ULONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p,%lu)\n", This, This->ref); TRACE("(%p,%lu)\n", This, ref + 1);
if (!--(This->ref)) if (!ref)
{ {
COMDLG32_SHFree(This); COMDLG32_SHFree(This);
TRACE("-- destroyed\n"); TRACE("-- destroyed\n");
return 0; return 0;
} }
return This->ref; return ref;
} }
/* /*

View file

@ -56,7 +56,7 @@
typedef struct typedef struct
{ {
LPOPENFILENAMEA ofnInfos; LPOPENFILENAMEW ofnInfos;
BOOL unicode; BOOL unicode;
LPWSTR initdir; LPWSTR initdir;
LPWSTR filename; LPWSTR filename;

View file

@ -36,7 +36,10 @@
WINE_DEFAULT_DEBUG_CHANNEL(commdlg); WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
#define WINE_FONTDATA "__WINE_FONTDLGDATA" static const WCHAR strWineFontData[] = {'_','_','W','I','N','E','_','F','O','N','T','D','L','G','D','A','T','A',0};
static const WCHAR strWineFontData_a[] =
{'_','_','W','I','N','E','_','F','O','N','T','D','L','G','D','A','T','A','_','A',0};
static const WCHAR chooseFontW[] = {'C','H','O','O','S','E','_','F','O','N','T',0};
#include "cdlg.h" #include "cdlg.h"
@ -44,11 +47,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
static HIMAGELIST himlTT = 0; static HIMAGELIST himlTT = 0;
#define TTBITMAP_XSIZE 20 /* x-size of the bitmaps */ #define TTBITMAP_XSIZE 20 /* x-size of the bitmaps */
INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, INT_PTR CALLBACK FormatCharDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
LPARAM lParam);
INT_PTR CALLBACK FormatCharDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam,
LPARAM lParam);
/* There is a table here of all charsets, and the sample text for each. /* There is a table here of all charsets, and the sample text for each.
* There is a second table that translates a charset into an index into * There is a second table that translates a charset into an index into
@ -168,8 +168,7 @@ BOOL WINAPI ChooseFontW(LPCHOOSEFONTW lpChFont)
HINSTANCE hDlginst; HINSTANCE hDlginst;
HGLOBAL hDlgTmpl; HGLOBAL hDlgTmpl;
static const WCHAR chooseFontW[] = {'C','H','O','O','S','E','_', TRACE("(%p)\n", lpChFont);
'F','O','N','T',0};
if ( (lpChFont->Flags&CF_ENABLETEMPLATEHANDLE)!=0 ) if ( (lpChFont->Flags&CF_ENABLETEMPLATEHANDLE)!=0 )
{ {
@ -221,6 +220,8 @@ BOOL WINAPI ChooseFontA(LPCHOOSEFONTA lpChFont)
HINSTANCE hDlginst; HINSTANCE hDlginst;
HGLOBAL hDlgTmpl; HGLOBAL hDlgTmpl;
TRACE("(%p)\n", lpChFont);
if ( (lpChFont->Flags&CF_ENABLETEMPLATEHANDLE)!=0 ) if ( (lpChFont->Flags&CF_ENABLETEMPLATEHANDLE)!=0 )
{ {
template=(LPCVOID)lpChFont->hInstance; template=(LPCVOID)lpChFont->hInstance;
@ -238,7 +239,7 @@ BOOL WINAPI ChooseFontA(LPCHOOSEFONTA lpChFont)
} else } else
{ {
hDlginst=COMDLG32_hInstance; hDlginst=COMDLG32_hInstance;
if (!(hResInfo = FindResourceA(hDlginst, "CHOOSE_FONT", (LPSTR)RT_DIALOG))) if (!(hResInfo = FindResourceW(hDlginst, chooseFontW, (LPWSTR)RT_DIALOG)))
{ {
COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE); COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
return FALSE; return FALSE;
@ -253,7 +254,6 @@ BOOL WINAPI ChooseFontA(LPCHOOSEFONTA lpChFont)
} }
if (TRACE_ON(commdlg)) if (TRACE_ON(commdlg))
_dump_cf_flags(lpChFont->Flags); _dump_cf_flags(lpChFont->Flags);
if (lpChFont->Flags & (CF_SELECTSCRIPT | CF_NOVERTFONTS )) if (lpChFont->Flags & (CF_SELECTSCRIPT | CF_NOVERTFONTS ))
FIXME(": unimplemented flag (ignored)\n"); FIXME(": unimplemented flag (ignored)\n");
@ -261,7 +261,6 @@ BOOL WINAPI ChooseFontA(LPCHOOSEFONTA lpChFont)
lpChFont->hwndOwner, FormatCharDlgProcA, (LPARAM)lpChFont ); lpChFont->hwndOwner, FormatCharDlgProcA, (LPARAM)lpChFont );
} }
#define TEXT_EXTRAS 4 #define TEXT_EXTRAS 4
#define TEXT_COLORS 16 #define TEXT_COLORS 16
@ -276,7 +275,7 @@ static const COLORREF textcolors[TEXT_COLORS]=
/*********************************************************************** /***********************************************************************
* CFn_HookCallChk32 [internal] * CFn_HookCallChk32 [internal]
*/ */
static BOOL CFn_HookCallChk32(LPCHOOSEFONTA lpcf) static BOOL CFn_HookCallChk32(LPCHOOSEFONTW lpcf)
{ {
if (lpcf) if (lpcf)
if(lpcf->Flags & CF_ENABLEHOOK) if(lpcf->Flags & CF_ENABLEHOOK)
@ -288,14 +287,14 @@ static BOOL CFn_HookCallChk32(LPCHOOSEFONTA lpcf)
/************************************************************************* /*************************************************************************
* AddFontFamily [internal] * AddFontFamily [internal]
*/ */
INT AddFontFamily(const ENUMLOGFONTEXA *lpElfex, const NEWTEXTMETRICEXA *lpNTM, INT AddFontFamily(const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *lpNTM,
UINT nFontType, LPCHOOSEFONTA lpcf, HWND hwnd, LPCFn_ENUMSTRUCT e) UINT nFontType, LPCHOOSEFONTW lpcf, HWND hwnd, LPCFn_ENUMSTRUCT e)
{ {
int i; int i;
WORD w; WORD w;
const LOGFONTA *lplf = &(lpElfex->elfLogFont); const LOGFONTW *lplf = &(lpElfex->elfLogFont);
TRACE("font=%s (nFontType=%d)\n", lplf->lfFaceName,nFontType); TRACE("font=%s (nFontType=%d)\n", debugstr_w(lplf->lfFaceName), nFontType);
if (lpcf->Flags & CF_FIXEDPITCHONLY) if (lpcf->Flags & CF_FIXEDPITCHONLY)
if (!(lplf->lfPitchAndFamily & FIXED_PITCH)) if (!(lplf->lfPitchAndFamily & FIXED_PITCH))
@ -309,14 +308,14 @@ INT AddFontFamily(const ENUMLOGFONTEXA *lpElfex, const NEWTEXTMETRICEXA *lpNTM,
if (e) e->added++; if (e) e->added++;
i=SendMessageA(hwnd, CB_FINDSTRINGEXACT, 0, (LPARAM)lplf->lfFaceName); i=SendMessageW(hwnd, CB_FINDSTRINGEXACT, 0, (LPARAM)lplf->lfFaceName);
if (i == CB_ERR) { if (i == CB_ERR) {
i = SendMessageA(hwnd, CB_ADDSTRING, 0, (LPARAM)lplf->lfFaceName); i = SendMessageW(hwnd, CB_ADDSTRING, 0, (LPARAM)lplf->lfFaceName);
if( i != CB_ERR) { if( i != CB_ERR) {
/* store some important font information */ /* store some important font information */
w = (lplf->lfPitchAndFamily) << 8 | w = (lplf->lfPitchAndFamily) << 8 |
(HIWORD(lpNTM->ntmTm.ntmFlags) & 0xff); (HIWORD(lpNTM->ntmTm.ntmFlags) & 0xff);
SendMessageA(hwnd, CB_SETITEMDATA, i, MAKELONG(nFontType,w)); SendMessageW(hwnd, CB_SETITEMDATA, i, MAKELONG(nFontType,w));
} }
} }
return 1; return 1;
@ -325,13 +324,13 @@ INT AddFontFamily(const ENUMLOGFONTEXA *lpElfex, const NEWTEXTMETRICEXA *lpNTM,
/************************************************************************* /*************************************************************************
* FontFamilyEnumProc32 [internal] * FontFamilyEnumProc32 [internal]
*/ */
static INT WINAPI FontFamilyEnumProc(const ENUMLOGFONTEXA *lpElfex, static INT WINAPI FontFamilyEnumProc(const ENUMLOGFONTEXW *lpElfex,
const TEXTMETRICA *metrics, DWORD dwFontType, LPARAM lParam) const TEXTMETRICW *metrics, DWORD dwFontType, LPARAM lParam)
{ {
LPCFn_ENUMSTRUCT e; LPCFn_ENUMSTRUCT e;
e=(LPCFn_ENUMSTRUCT)lParam; e=(LPCFn_ENUMSTRUCT)lParam;
return AddFontFamily( lpElfex, (NEWTEXTMETRICEXA *) metrics, return AddFontFamily( lpElfex, (NEWTEXTMETRICEXW *) metrics,
dwFontType, e->lpcf32a, e->hWnd1, e); dwFontType, e->lpcf32w, e->hWnd1, e);
} }
/************************************************************************* /*************************************************************************
@ -339,42 +338,48 @@ static INT WINAPI FontFamilyEnumProc(const ENUMLOGFONTEXA *lpElfex,
* *
* Fill font style information into combobox (without using font.c directly) * Fill font style information into combobox (without using font.c directly)
*/ */
static int SetFontStylesToCombo2(HWND hwnd, HDC hdc, const LOGFONTA *lplf) static int SetFontStylesToCombo2(HWND hwnd, HDC hdc, const LOGFONTW *lplf)
{ {
#define FSTYLES 4 #define FSTYLES 4
struct FONTSTYLE struct FONTSTYLE
{ {
int italic; int italic;
int weight; int weight;
const char *stname; const WCHAR *stname;
}; };
static const WCHAR strRegular[] = {'R','e','g','u','l','a','r',0};
static const WCHAR strItalic[] = {'I','t','a','l','i','c',0};
static const WCHAR strBold[] = {'B','o','l','d',0};
static const WCHAR strBoldItalic[] = {'B','o','l','d',' ','I','t','a','l','i','c',0};
static const struct FONTSTYLE fontstyles[FSTYLES]={ static const struct FONTSTYLE fontstyles[FSTYLES]={
{ 0,FW_NORMAL,"Regular"}, { 1,FW_NORMAL,"Italic"}, { 0, FW_NORMAL, strRegular },
{ 0,FW_BOLD,"Bold"}, { 1,FW_BOLD,"Bold Italic"} { 1, FW_NORMAL, strItalic },
{ 0, FW_BOLD, strBold },
{ 1, FW_BOLD, strBoldItalic }
}; };
HFONT hf; HFONT hf;
TEXTMETRICA tm; TEXTMETRICW tm;
int i,j; int i,j;
LOGFONTA lf; LOGFONTW lf;
memcpy(&lf, lplf, sizeof(LOGFONTA)); memcpy(&lf, lplf, sizeof(LOGFONTW));
for (i=0;i<FSTYLES;i++) for (i=0;i<FSTYLES;i++)
{ {
lf.lfItalic=fontstyles[i].italic; lf.lfItalic=fontstyles[i].italic;
lf.lfWeight=fontstyles[i].weight; lf.lfWeight=fontstyles[i].weight;
hf=CreateFontIndirectA(&lf); hf=CreateFontIndirectW(&lf);
hf=SelectObject(hdc,hf); hf=SelectObject(hdc,hf);
GetTextMetricsA(hdc,&tm); GetTextMetricsW(hdc,&tm);
hf=SelectObject(hdc,hf); hf=SelectObject(hdc,hf);
DeleteObject(hf); DeleteObject(hf);
/* font successful created ? */ /* font successful created ? */
if (tm.tmWeight==fontstyles[i].weight && if (tm.tmWeight==fontstyles[i].weight &&
((tm.tmItalic != 0)==fontstyles[i].italic)) ((tm.tmItalic != 0)==fontstyles[i].italic))
{ {
j=SendMessageA(hwnd,CB_ADDSTRING,0,(LPARAM)fontstyles[i].stname ); j=SendMessageW(hwnd,CB_ADDSTRING,0,(LPARAM)fontstyles[i].stname );
if (j==CB_ERR) return 1; if (j==CB_ERR) return 1;
j=SendMessageA(hwnd, CB_SETITEMDATA, j, j=SendMessageW(hwnd, CB_SETITEMDATA, j,
MAKELONG(fontstyles[i].weight,fontstyles[i].italic)); MAKELONG(fontstyles[i].weight,fontstyles[i].italic));
if (j==CB_ERR) return 1; if (j==CB_ERR) return 1;
} }
@ -385,20 +390,21 @@ static int SetFontStylesToCombo2(HWND hwnd, HDC hdc, const LOGFONTA *lplf)
/************************************************************************* /*************************************************************************
* AddFontSizeToCombo3 [internal] * AddFontSizeToCombo3 [internal]
*/ */
static int AddFontSizeToCombo3(HWND hwnd, UINT h, LPCHOOSEFONTA lpcf) static int AddFontSizeToCombo3(HWND hwnd, UINT h, LPCHOOSEFONTW lpcf)
{ {
int j; int j;
char buffer[20]; WCHAR buffer[20];
static const WCHAR strFormat[] = {'%','2','d',0};
if ( (!(lpcf->Flags & CF_LIMITSIZE)) || if ( (!(lpcf->Flags & CF_LIMITSIZE)) ||
((lpcf->Flags & CF_LIMITSIZE) && (h >= lpcf->nSizeMin) && (h <= lpcf->nSizeMax))) ((lpcf->Flags & CF_LIMITSIZE) && (h >= lpcf->nSizeMin) && (h <= lpcf->nSizeMax)))
{ {
sprintf(buffer, "%2d", h); wsprintfW(buffer, strFormat, h);
j=SendMessageA(hwnd, CB_FINDSTRINGEXACT, -1, (LPARAM)buffer); j=SendMessageW(hwnd, CB_FINDSTRINGEXACT, -1, (LPARAM)buffer);
if (j==CB_ERR) if (j==CB_ERR)
{ {
j=SendMessageA(hwnd, CB_ADDSTRING, 0, (LPARAM)buffer); j=SendMessageW(hwnd, CB_ADDSTRING, 0, (LPARAM)buffer);
if (j!=CB_ERR) j = SendMessageA(hwnd, CB_SETITEMDATA, j, h); if (j!=CB_ERR) j = SendMessageW(hwnd, CB_SETITEMDATA, j, h);
if (j==CB_ERR) return 1; if (j==CB_ERR) return 1;
} }
} }
@ -408,9 +414,9 @@ static int AddFontSizeToCombo3(HWND hwnd, UINT h, LPCHOOSEFONTA lpcf)
/************************************************************************* /*************************************************************************
* SetFontSizesToCombo3 [internal] * SetFontSizesToCombo3 [internal]
*/ */
static int SetFontSizesToCombo3(HWND hwnd, LPCHOOSEFONTA lpcf) static int SetFontSizesToCombo3(HWND hwnd, LPCHOOSEFONTW lpcf)
{ {
static const char sizes[]={8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72}; static const BYTE sizes[]={8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72};
int i; int i;
for (i = 0; i < sizeof(sizes)/sizeof(sizes[0]); i++) for (i = 0; i < sizeof(sizes)/sizeof(sizes[0]); i++)
@ -421,7 +427,7 @@ static int SetFontSizesToCombo3(HWND hwnd, LPCHOOSEFONTA lpcf)
/************************************************************************* /*************************************************************************
* CFn_GetDC [internal] * CFn_GetDC [internal]
*/ */
inline HDC CFn_GetDC(LPCHOOSEFONTA lpcf) inline HDC CFn_GetDC(LPCHOOSEFONTW lpcf)
{ {
HDC ret = ((lpcf->Flags & CF_PRINTERFONTS) && lpcf->hDC) ? HDC ret = ((lpcf->Flags & CF_PRINTERFONTS) && lpcf->hDC) ?
lpcf->hDC : lpcf->hDC :
@ -433,7 +439,7 @@ inline HDC CFn_GetDC(LPCHOOSEFONTA lpcf)
/************************************************************************* /*************************************************************************
* CFn_ReleaseDC [internal] * CFn_ReleaseDC [internal]
*/ */
inline void CFn_ReleaseDC(LPCHOOSEFONTA lpcf, HDC hdc) inline void CFn_ReleaseDC(LPCHOOSEFONTW lpcf, HDC hdc)
{ {
if(!((lpcf->Flags & CF_PRINTERFONTS) && lpcf->hDC)) if(!((lpcf->Flags & CF_PRINTERFONTS) && lpcf->hDC))
ReleaseDC(0, hdc); ReleaseDC(0, hdc);
@ -442,19 +448,19 @@ inline void CFn_ReleaseDC(LPCHOOSEFONTA lpcf, HDC hdc)
/*********************************************************************** /***********************************************************************
* AddFontStyle [internal] * AddFontStyle [internal]
*/ */
INT AddFontStyle( const ENUMLOGFONTEXA *lpElfex, const NEWTEXTMETRICEXA *lpNTM, INT AddFontStyle( const ENUMLOGFONTEXW *lpElfex, const NEWTEXTMETRICEXW *lpNTM,
UINT nFontType, LPCHOOSEFONTA lpcf, HWND hcmb2, HWND hcmb3, UINT nFontType, LPCHOOSEFONTW lpcf, HWND hcmb2, HWND hcmb3,
HWND hDlg, BOOL iswin16) HWND hDlg, BOOL iswin16)
{ {
int i; int i;
const LOGFONTA *lplf = &(lpElfex->elfLogFont); const LOGFONTW *lplf = &(lpElfex->elfLogFont);
HWND hcmb5; HWND hcmb5;
HDC hdc; HDC hdc;
TRACE("(nFontType=%d)\n",nFontType); TRACE("(nFontType=%d)\n",nFontType);
TRACE(" %s h=%ld w=%ld e=%ld o=%ld wg=%ld i=%d u=%d s=%d" TRACE(" %s h=%ld w=%ld e=%ld o=%ld wg=%ld i=%d u=%d s=%d"
" ch=%d op=%d cp=%d q=%d pf=%xh\n", " ch=%d op=%d cp=%d q=%d pf=%xh\n",
lplf->lfFaceName,lplf->lfHeight,lplf->lfWidth, debugstr_w(lplf->lfFaceName),lplf->lfHeight,lplf->lfWidth,
lplf->lfEscapement,lplf->lfOrientation, lplf->lfEscapement,lplf->lfOrientation,
lplf->lfWeight,lplf->lfItalic,lplf->lfUnderline, lplf->lfWeight,lplf->lfItalic,lplf->lfUnderline,
lplf->lfStrikeOut,lplf->lfCharSet, lplf->lfOutPrecision, lplf->lfStrikeOut,lplf->lfCharSet, lplf->lfOutPrecision,
@ -467,10 +473,10 @@ INT AddFontStyle( const ENUMLOGFONTEXA *lpElfex, const NEWTEXTMETRICEXA *lpNTM,
72, GetDeviceCaps(hdc, LOGPIXELSY)); 72, GetDeviceCaps(hdc, LOGPIXELSY));
CFn_ReleaseDC(lpcf, hdc); CFn_ReleaseDC(lpcf, hdc);
i = AddFontSizeToCombo3(hcmb3, points, lpcf); i = AddFontSizeToCombo3(hcmb3, points, lpcf);
if( i) return 0; if(i) return 0;
} else if (SetFontSizesToCombo3(hcmb3, lpcf)) return 0; } else if (SetFontSizesToCombo3(hcmb3, lpcf)) return 0;
if (!SendMessageA(hcmb2, CB_GETCOUNT, 0, 0)) if (!SendMessageW(hcmb2, CB_GETCOUNT, 0, 0))
{ {
if(!(hdc = CFn_GetDC(lpcf))) return 0; if(!(hdc = CFn_GetDC(lpcf))) return 0;
i=SetFontStylesToCombo2(hcmb2,hdc,lplf); i=SetFontStylesToCombo2(hcmb2,hdc,lplf);
@ -479,13 +485,13 @@ INT AddFontStyle( const ENUMLOGFONTEXA *lpElfex, const NEWTEXTMETRICEXA *lpNTM,
return 0; return 0;
} }
if( iswin16 || !( hcmb5 = GetDlgItem(hDlg, cmb5))) return 1; if( iswin16 || !( hcmb5 = GetDlgItem(hDlg, cmb5))) return 1;
i = SendMessageA( hcmb5, CB_FINDSTRINGEXACT, 0, i = SendMessageW( hcmb5, CB_FINDSTRINGEXACT, 0,
(LPARAM)lpElfex->elfScript); (LPARAM)lpElfex->elfScript);
if( i == CB_ERR) { if( i == CB_ERR) {
i = SendMessageA( hcmb5, CB_ADDSTRING, 0, i = SendMessageW( hcmb5, CB_ADDSTRING, 0,
(LPARAM)lpElfex->elfScript); (LPARAM)lpElfex->elfScript);
if( i != CB_ERR) if( i != CB_ERR)
SendMessageA( hcmb5, CB_SETITEMDATA, i, lplf->lfCharSet); SendMessageW( hcmb5, CB_SETITEMDATA, i, lplf->lfCharSet);
} }
return 1 ; return 1 ;
} }
@ -495,14 +501,14 @@ static INT CFn_FitFontSize( HWND hDlg, int points)
int i,n; int i,n;
int ret = 0; int ret = 0;
/* look for fitting font size in combobox3 */ /* look for fitting font size in combobox3 */
n=SendDlgItemMessageA(hDlg, cmb3, CB_GETCOUNT, 0, 0); n=SendDlgItemMessageW(hDlg, cmb3, CB_GETCOUNT, 0, 0);
for (i=0;i<n;i++) for (i=0;i<n;i++)
{ {
if (points == (int)SendDlgItemMessageA if (points == (int)SendDlgItemMessageW
(hDlg,cmb3, CB_GETITEMDATA,i,0)) (hDlg,cmb3, CB_GETITEMDATA,i,0))
{ {
SendDlgItemMessageA(hDlg,cmb3,CB_SETCURSEL,i,0); SendDlgItemMessageW(hDlg,cmb3,CB_SETCURSEL,i,0);
SendMessageA(hDlg, WM_COMMAND, SendMessageW(hDlg, WM_COMMAND,
MAKEWPARAM(cmb3, CBN_SELCHANGE), MAKEWPARAM(cmb3, CBN_SELCHANGE),
(LPARAM)GetDlgItem(hDlg,cmb3)); (LPARAM)GetDlgItem(hDlg,cmb3));
ret = 1; ret = 1;
@ -519,11 +525,11 @@ static INT CFn_FitFontStyle( HWND hDlg, LONG packedstyle )
/* look for fitting font style in combobox2 */ /* look for fitting font style in combobox2 */
for (i=0;i<TEXT_EXTRAS;i++) for (i=0;i<TEXT_EXTRAS;i++)
{ {
id =SendDlgItemMessageA(hDlg, cmb2, CB_GETITEMDATA, i, 0); id = SendDlgItemMessageW(hDlg, cmb2, CB_GETITEMDATA, i, 0);
if (packedstyle == id) if (packedstyle == id)
{ {
SendDlgItemMessageA(hDlg, cmb2, CB_SETCURSEL, i, 0); SendDlgItemMessageW(hDlg, cmb2, CB_SETCURSEL, i, 0);
SendMessageA(hDlg, WM_COMMAND, MAKEWPARAM(cmb2, CBN_SELCHANGE), SendMessageW(hDlg, WM_COMMAND, MAKEWPARAM(cmb2, CBN_SELCHANGE),
(LPARAM)GetDlgItem(hDlg,cmb2)); (LPARAM)GetDlgItem(hDlg,cmb2));
ret = 1; ret = 1;
break; break;
@ -537,21 +543,21 @@ static INT CFn_FitCharSet( HWND hDlg, int charset )
{ {
int i,n,cs; int i,n,cs;
/* look for fitting char set in combobox5 */ /* look for fitting char set in combobox5 */
n=SendDlgItemMessageA(hDlg, cmb5, CB_GETCOUNT, 0, 0); n=SendDlgItemMessageW(hDlg, cmb5, CB_GETCOUNT, 0, 0);
for (i=0;i<n;i++) for (i=0;i<n;i++)
{ {
cs =SendDlgItemMessageA(hDlg, cmb5, CB_GETITEMDATA, i, 0); cs =SendDlgItemMessageW(hDlg, cmb5, CB_GETITEMDATA, i, 0);
if (charset == cs) if (charset == cs)
{ {
SendDlgItemMessageA(hDlg, cmb5, CB_SETCURSEL, i, 0); SendDlgItemMessageW(hDlg, cmb5, CB_SETCURSEL, i, 0);
SendMessageA(hDlg, WM_COMMAND, MAKEWPARAM(cmb5, CBN_SELCHANGE), SendMessageW(hDlg, WM_COMMAND, MAKEWPARAM(cmb5, CBN_SELCHANGE),
(LPARAM)GetDlgItem(hDlg,cmb2)); (LPARAM)GetDlgItem(hDlg,cmb2));
return 1; return 1;
} }
} }
/* no charset fits: select the first one in the list */ /* no charset fits: select the first one in the list */
SendDlgItemMessageA(hDlg, cmb5, CB_SETCURSEL, 0, 0); SendDlgItemMessageW(hDlg, cmb5, CB_SETCURSEL, 0, 0);
SendMessageA(hDlg, WM_COMMAND, MAKEWPARAM(cmb5, CBN_SELCHANGE), SendMessageW(hDlg, WM_COMMAND, MAKEWPARAM(cmb5, CBN_SELCHANGE),
(LPARAM)GetDlgItem(hDlg,cmb2)); (LPARAM)GetDlgItem(hDlg,cmb2));
return 0; return 0;
} }
@ -559,42 +565,43 @@ static INT CFn_FitCharSet( HWND hDlg, int charset )
/*********************************************************************** /***********************************************************************
* FontStyleEnumProc32 [internal] * FontStyleEnumProc32 [internal]
*/ */
static INT WINAPI FontStyleEnumProc( const ENUMLOGFONTEXA *lpElfex, static INT WINAPI FontStyleEnumProc( const ENUMLOGFONTEXW *lpElfex,
const TEXTMETRICA *metrics, DWORD dwFontType, LPARAM lParam ) const TEXTMETRICW *metrics, DWORD dwFontType, LPARAM lParam )
{ {
LPCFn_ENUMSTRUCT s=(LPCFn_ENUMSTRUCT)lParam; LPCFn_ENUMSTRUCT s=(LPCFn_ENUMSTRUCT)lParam;
HWND hcmb2=s->hWnd1; HWND hcmb2=s->hWnd1;
HWND hcmb3=s->hWnd2; HWND hcmb3=s->hWnd2;
HWND hDlg=GetParent(hcmb3); HWND hDlg=GetParent(hcmb3);
return AddFontStyle( lpElfex, (const NEWTEXTMETRICEXA *) metrics, return AddFontStyle( lpElfex, (const NEWTEXTMETRICEXW *) metrics,
dwFontType, s->lpcf32a, hcmb2, hcmb3, hDlg, FALSE); dwFontType, s->lpcf32w, hcmb2, hcmb3, hDlg, FALSE);
} }
/*********************************************************************** /***********************************************************************
* CFn_WMInitDialog [internal] * CFn_WMInitDialog [internal]
*/ */
LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam, LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
LPCHOOSEFONTA lpcf) LPCHOOSEFONTW lpcf)
{ {
HDC hdc; HDC hdc;
int i,j,init=0; int i,j,init=0;
long pstyle; long pstyle;
CFn_ENUMSTRUCT s; CFn_ENUMSTRUCT s;
LPLOGFONTA lpxx; LPLOGFONTW lpxx;
HCURSOR hcursor=SetCursor(LoadCursorA(0,(LPSTR)IDC_WAIT)); HCURSOR hcursor=SetCursor(LoadCursorW(0,(LPWSTR)IDC_WAIT));
static const WCHAR strColorName[] = {'[','c','o','l','o','r',' ','n','a','m','e',']',0};
SetPropA(hDlg, WINE_FONTDATA, (HANDLE)lParam); SetPropW(hDlg, strWineFontData, (HANDLE)lParam);
lpxx=lpcf->lpLogFont; lpxx=lpcf->lpLogFont;
TRACE("WM_INITDIALOG lParam=%08lX\n", lParam); TRACE("WM_INITDIALOG lParam=%08lX\n", lParam);
if (lpcf->lStructSize != sizeof(CHOOSEFONTA)) if (lpcf->lStructSize != sizeof(CHOOSEFONTW))
{ {
ERR("structure size failure !!!\n"); ERR("structure size failure !!!\n");
EndDialog (hDlg, 0); EndDialog (hDlg, 0);
return FALSE; return FALSE;
} }
if (!himlTT) if (!himlTT)
himlTT = ImageList_LoadImageA( COMDLG32_hInstance, MAKEINTRESOURCEA(38), himlTT = ImageList_LoadImageW( COMDLG32_hInstance, MAKEINTRESOURCEW(38),
TTBITMAP_XSIZE, 0, CLR_DEFAULT, IMAGE_BITMAP, 0); TTBITMAP_XSIZE, 0, CLR_DEFAULT, IMAGE_BITMAP, 0);
if (!(lpcf->Flags & CF_SHOWHELP) || !IsWindow(lpcf->hwndOwner)) if (!(lpcf->Flags & CF_SHOWHELP) || !IsWindow(lpcf->hwndOwner))
@ -605,18 +612,18 @@ LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
{ {
for (i=0;i<TEXT_COLORS;i++) for (i=0;i<TEXT_COLORS;i++)
{ {
char name[30]; WCHAR name[30];
if( LoadStringA(COMDLG32_hInstance, IDS_COLOR_BLACK+i, name, if( LoadStringW(COMDLG32_hInstance, IDS_COLOR_BLACK+i, name,
sizeof(name)/sizeof(*name) )==0 ) sizeof(name)/sizeof(*name) )==0 )
{ {
strcpy( name, "[color name]" ); memcpy(name, strColorName, sizeof(strColorName));
} }
j=SendDlgItemMessageA(hDlg, cmb4, CB_ADDSTRING, 0, (LPARAM)name); j=SendDlgItemMessageW(hDlg, cmb4, CB_ADDSTRING, 0, (LPARAM)name);
SendDlgItemMessageA(hDlg, cmb4, CB_SETITEMDATA, j, textcolors[j]); SendDlgItemMessageW(hDlg, cmb4, CB_SETITEMDATA, j, textcolors[j]);
/* look for a fitting value in color combobox */ /* look for a fitting value in color combobox */
if (textcolors[j]==lpcf->rgbColors) if (textcolors[j]==lpcf->rgbColors)
SendDlgItemMessageA(hDlg,cmb4, CB_SETCURSEL,j,0); SendDlgItemMessageW(hDlg,cmb4, CB_SETCURSEL,j,0);
} }
} }
else else
@ -633,14 +640,14 @@ LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
return FALSE; return FALSE;
} }
s.hWnd1=GetDlgItem(hDlg,cmb1); s.hWnd1=GetDlgItem(hDlg,cmb1);
s.lpcf32a=lpcf; s.lpcf32w=lpcf;
do { do {
LOGFONTA elf; LOGFONTW elf;
s.added = 0; s.added = 0;
elf.lfCharSet = DEFAULT_CHARSET; /* enum all charsets */ elf.lfCharSet = DEFAULT_CHARSET; /* enum all charsets */
elf.lfPitchAndFamily = 0; elf.lfPitchAndFamily = 0;
elf.lfFaceName[0] = '\0'; /* enum all fonts */ elf.lfFaceName[0] = '\0'; /* enum all fonts */
if (!EnumFontFamiliesExA(hdc, &elf, (FONTENUMPROCA)FontFamilyEnumProc, (LPARAM)&s, 0)) if (!EnumFontFamiliesExW(hdc, &elf, (FONTENUMPROCW)FontFamilyEnumProc, (LPARAM)&s, 0))
{ {
TRACE("EnumFontFamiliesEx returns 0\n"); TRACE("EnumFontFamiliesEx returns 0\n");
break; break;
@ -663,7 +670,7 @@ LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
if (lpcf->Flags & CF_INITTOLOGFONTSTRUCT) if (lpcf->Flags & CF_INITTOLOGFONTSTRUCT)
{ {
/* look for fitting font name in combobox1 */ /* look for fitting font name in combobox1 */
j=SendDlgItemMessageA(hDlg,cmb1,CB_FINDSTRING,-1,(LONG)lpxx->lfFaceName); j=SendDlgItemMessageW(hDlg,cmb1,CB_FINDSTRING,-1,(LONG)lpxx->lfFaceName);
if (j!=CB_ERR) if (j!=CB_ERR)
{ {
INT height = lpxx->lfHeight < 0 ? -lpxx->lfHeight : INT height = lpxx->lfHeight < 0 ? -lpxx->lfHeight :
@ -673,8 +680,8 @@ LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
points = MulDiv( height, 72, GetDeviceCaps(hdc, LOGPIXELSY)); points = MulDiv( height, 72, GetDeviceCaps(hdc, LOGPIXELSY));
pstyle = MAKELONG(lpxx->lfWeight > FW_MEDIUM ? FW_BOLD: pstyle = MAKELONG(lpxx->lfWeight > FW_MEDIUM ? FW_BOLD:
FW_NORMAL,lpxx->lfItalic !=0); FW_NORMAL,lpxx->lfItalic !=0);
SendDlgItemMessageA(hDlg, cmb1, CB_SETCURSEL, j, 0); SendDlgItemMessageW(hDlg, cmb1, CB_SETCURSEL, j, 0);
SendMessageA(hDlg, WM_COMMAND, MAKEWPARAM(cmb1, CBN_SELCHANGE), SendMessageW(hDlg, WM_COMMAND, MAKEWPARAM(cmb1, CBN_SELCHANGE),
(LPARAM)GetDlgItem(hDlg,cmb1)); (LPARAM)GetDlgItem(hDlg,cmb1));
init=1; init=1;
/* look for fitting font style in combobox2 */ /* look for fitting font style in combobox2 */
@ -686,17 +693,17 @@ LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam,
} }
if (!init) if (!init)
{ {
SendDlgItemMessageA(hDlg,cmb1,CB_SETCURSEL,0,0); SendDlgItemMessageW(hDlg,cmb1,CB_SETCURSEL,0,0);
SendMessageA(hDlg, WM_COMMAND, MAKEWPARAM(cmb1, CBN_SELCHANGE), SendMessageW(hDlg, WM_COMMAND, MAKEWPARAM(cmb1, CBN_SELCHANGE),
(LPARAM)GetDlgItem(hDlg,cmb1)); (LPARAM)GetDlgItem(hDlg,cmb1));
} }
if (lpcf->Flags & CF_USESTYLE && lpcf->lpszStyle) if (lpcf->Flags & CF_USESTYLE && lpcf->lpszStyle)
{ {
j=SendDlgItemMessageA(hDlg,cmb2,CB_FINDSTRING,-1,(LONG)lpcf->lpszStyle); j=SendDlgItemMessageW(hDlg,cmb2,CB_FINDSTRING,-1,(LONG)lpcf->lpszStyle);
if (j!=CB_ERR) if (j!=CB_ERR)
{ {
j=SendDlgItemMessageA(hDlg,cmb2,CB_SETCURSEL,j,0); j=SendDlgItemMessageW(hDlg,cmb2,CB_SETCURSEL,j,0);
SendMessageA(hDlg,WM_COMMAND,cmb2, SendMessageW(hDlg,WM_COMMAND,cmb2,
MAKELONG(HWND_16(GetDlgItem(hDlg,cmb2)),CBN_SELCHANGE)); MAKELONG(HWND_16(GetDlgItem(hDlg,cmb2)),CBN_SELCHANGE));
} }
} }
@ -716,18 +723,18 @@ LRESULT CFn_WMMeasureItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
TEXTMETRICW tm; TEXTMETRICW tm;
LPMEASUREITEMSTRUCT lpmi=(LPMEASUREITEMSTRUCT)lParam; LPMEASUREITEMSTRUCT lpmi=(LPMEASUREITEMSTRUCT)lParam;
if (!himlTT) if (!himlTT)
himlTT = ImageList_LoadImageA( COMDLG32_hInstance, MAKEINTRESOURCEA(38), himlTT = ImageList_LoadImageW( COMDLG32_hInstance, MAKEINTRESOURCEW(38),
TTBITMAP_XSIZE, 0, CLR_DEFAULT, IMAGE_BITMAP, 0); TTBITMAP_XSIZE, 0, CLR_DEFAULT, IMAGE_BITMAP, 0);
ImageList_GetIconSize( himlTT, 0, &lpmi->itemHeight); ImageList_GetIconSize( himlTT, 0, &lpmi->itemHeight);
lpmi->itemHeight += 2; lpmi->itemHeight += 2;
/* use MAX of bitmap height and tm.tmHeight .*/ /* use MAX of bitmap height and tm.tmHeight .*/
hdc=GetDC( hDlg); hdc=GetDC(hDlg);
if(!hdc) return 0; if(!hdc) return 0;
hfontprev = SelectObject( hdc, GetStockObject( SYSTEM_FONT)); hfontprev = SelectObject( hdc, GetStockObject( SYSTEM_FONT));
GetTextMetricsW( hdc, &tm); GetTextMetricsW(hdc, &tm);
if( tm.tmHeight > lpmi->itemHeight) lpmi->itemHeight = tm.tmHeight; if( tm.tmHeight > lpmi->itemHeight) lpmi->itemHeight = tm.tmHeight;
SelectObject( hdc, hfontprev); SelectObject(hdc, hfontprev);
ReleaseDC( hDlg, hdc); ReleaseDC(hDlg, hdc);
return 0; return 0;
} }
@ -738,7 +745,7 @@ LRESULT CFn_WMMeasureItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam) LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
{ {
HBRUSH hBrush; HBRUSH hBrush;
char buffer[40]; WCHAR buffer[40];
COLORREF cr, oldText=0, oldBk=0; COLORREF cr, oldText=0, oldBk=0;
RECT rect; RECT rect;
int nFontType; int nFontType;
@ -771,11 +778,11 @@ LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
{ {
case cmb1: case cmb1:
/* TRACE(commdlg,"WM_Drawitem cmb1\n"); */ /* TRACE(commdlg,"WM_Drawitem cmb1\n"); */
SendMessageA(lpdi->hwndItem, CB_GETLBTEXT, lpdi->itemID, SendMessageW(lpdi->hwndItem, CB_GETLBTEXT, lpdi->itemID,
(LPARAM)buffer); (LPARAM)buffer);
TextOutA(lpdi->hDC, lpdi->rcItem.left + TTBITMAP_XSIZE + 10, TextOutW(lpdi->hDC, lpdi->rcItem.left + TTBITMAP_XSIZE + 10,
lpdi->rcItem.top, buffer, strlen(buffer)); lpdi->rcItem.top, buffer, lstrlenW(buffer));
nFontType = SendMessageA(lpdi->hwndItem, CB_GETITEMDATA, lpdi->itemID,0L); nFontType = SendMessageW(lpdi->hwndItem, CB_GETITEMDATA, lpdi->itemID,0L);
idx = -1; idx = -1;
if (nFontType & TRUETYPE_FONTTYPE) { if (nFontType & TRUETYPE_FONTTYPE) {
idx = 0; /* picture: TT */ idx = 0; /* picture: TT */
@ -795,19 +802,19 @@ LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
case cmb3: case cmb3:
/* TRACE(commdlg,"WM_DRAWITEN cmb2,cmb3\n"); */ /* TRACE(commdlg,"WM_DRAWITEN cmb2,cmb3\n"); */
case cmb5: case cmb5:
SendMessageA(lpdi->hwndItem, CB_GETLBTEXT, lpdi->itemID, SendMessageW(lpdi->hwndItem, CB_GETLBTEXT, lpdi->itemID,
(LPARAM)buffer); (LPARAM)buffer);
TextOutA(lpdi->hDC, lpdi->rcItem.left, TextOutW(lpdi->hDC, lpdi->rcItem.left,
lpdi->rcItem.top, buffer, strlen(buffer)); lpdi->rcItem.top, buffer, lstrlenW(buffer));
break; break;
case cmb4: case cmb4:
/* TRACE(commdlg,"WM_DRAWITEM cmb4 (=COLOR)\n"); */ /* TRACE(commdlg,"WM_DRAWITEM cmb4 (=COLOR)\n"); */
SendMessageA(lpdi->hwndItem, CB_GETLBTEXT, lpdi->itemID, SendMessageW(lpdi->hwndItem, CB_GETLBTEXT, lpdi->itemID,
(LPARAM)buffer); (LPARAM)buffer);
TextOutA(lpdi->hDC, lpdi->rcItem.left + 25+5, TextOutW(lpdi->hDC, lpdi->rcItem.left + 25+5,
lpdi->rcItem.top, buffer, strlen(buffer)); lpdi->rcItem.top, buffer, lstrlenW(buffer));
cr = SendMessageA(lpdi->hwndItem, CB_GETITEMDATA, lpdi->itemID,0L); cr = SendMessageW(lpdi->hwndItem, CB_GETITEMDATA, lpdi->itemID,0L);
hBrush = CreateSolidBrush(cr); hBrush = CreateSolidBrush(cr);
if (hBrush) if (hBrush)
{ {
@ -840,12 +847,12 @@ LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam)
* CFn_WMCommand [internal] * CFn_WMCommand [internal]
*/ */
LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
LPCHOOSEFONTA lpcf) LPCHOOSEFONTW lpcf)
{ {
int i; int i;
long l; long l;
HDC hdc; HDC hdc;
LPLOGFONTA lpxx=lpcf->lpLogFont; LPLOGFONTW lpxx=lpcf->lpLogFont;
TRACE("WM_COMMAND wParam=%08lX lParam=%08lX\n", (LONG)wParam, lParam); TRACE("WM_COMMAND wParam=%08lX lParam=%08lX\n", (LONG)wParam, lParam);
switch (LOWORD(wParam)) switch (LOWORD(wParam))
@ -862,33 +869,33 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
EndDialog (hDlg, 0); EndDialog (hDlg, 0);
return TRUE; return TRUE;
} }
idx = SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0); idx = SendDlgItemMessageW(hDlg, cmb3, CB_GETCURSEL, 0, 0);
pointsize = (int)SendDlgItemMessageA( hDlg, cmb3, CB_GETITEMDATA, pointsize = (int)SendDlgItemMessageW( hDlg, cmb3, CB_GETITEMDATA,
idx, 0); idx, 0);
idx = SendDlgItemMessageA(hDlg, cmb2, CB_GETCURSEL, 0, 0); idx = SendDlgItemMessageW(hDlg, cmb2, CB_GETCURSEL, 0, 0);
pstyle = SendDlgItemMessageA(hDlg, cmb2, CB_GETITEMDATA, idx, 0); pstyle = SendDlgItemMessageW(hDlg, cmb2, CB_GETITEMDATA, idx, 0);
idx = SendDlgItemMessageA(hDlg, cmb5, CB_GETCURSEL, 0, 0); idx = SendDlgItemMessageW(hDlg, cmb5, CB_GETCURSEL, 0, 0);
charset = SendDlgItemMessageA(hDlg, cmb5, CB_GETITEMDATA, idx, 0); charset = SendDlgItemMessageW(hDlg, cmb5, CB_GETITEMDATA, idx, 0);
SendDlgItemMessageA(hDlg, cmb2, CB_RESETCONTENT, 0, 0); SendDlgItemMessageW(hDlg, cmb2, CB_RESETCONTENT, 0, 0);
SendDlgItemMessageA(hDlg, cmb3, CB_RESETCONTENT, 0, 0); SendDlgItemMessageW(hDlg, cmb3, CB_RESETCONTENT, 0, 0);
SendDlgItemMessageA(hDlg, cmb5, CB_RESETCONTENT, 0, 0); SendDlgItemMessageW(hDlg, cmb5, CB_RESETCONTENT, 0, 0);
i=SendDlgItemMessageA(hDlg, cmb1, CB_GETCURSEL, 0, 0); i=SendDlgItemMessageW(hDlg, cmb1, CB_GETCURSEL, 0, 0);
if (i!=CB_ERR) if (i!=CB_ERR)
{ {
HCURSOR hcursor=SetCursor(LoadCursorA(0,(LPSTR)IDC_WAIT)); HCURSOR hcursor=SetCursor(LoadCursorW(0,(LPWSTR)IDC_WAIT));
CFn_ENUMSTRUCT s; CFn_ENUMSTRUCT s;
LOGFONTA enumlf; LOGFONTW enumlf;
SendDlgItemMessageA(hDlg, cmb1, CB_GETLBTEXT, i, SendDlgItemMessageW(hDlg, cmb1, CB_GETLBTEXT, i,
(LPARAM)enumlf.lfFaceName); (LPARAM)enumlf.lfFaceName);
TRACE("WM_COMMAND/cmb1 =>%s\n",enumlf.lfFaceName); TRACE("WM_COMMAND/cmb1 =>%s\n", debugstr_w(enumlf.lfFaceName));
s.hWnd1=GetDlgItem(hDlg, cmb2); s.hWnd1=GetDlgItem(hDlg, cmb2);
s.hWnd2=GetDlgItem(hDlg, cmb3); s.hWnd2=GetDlgItem(hDlg, cmb3);
s.lpcf32a=lpcf; s.lpcf32w=lpcf;
enumlf.lfCharSet = DEFAULT_CHARSET; /* enum all charsets */ enumlf.lfCharSet = DEFAULT_CHARSET; /* enum all charsets */
enumlf.lfPitchAndFamily = 0; enumlf.lfPitchAndFamily = 0;
EnumFontFamiliesExA(hdc, &enumlf, EnumFontFamiliesExW(hdc, &enumlf,
(FONTENUMPROCA)FontStyleEnumProc, (LPARAM)&s, 0); (FONTENUMPROCW)FontStyleEnumProc, (LPARAM)&s, 0);
CFn_FitFontStyle(hDlg, pstyle); CFn_FitFontStyle(hDlg, pstyle);
if( pointsize != CB_ERR) CFn_FitFontSize(hDlg, pointsize); if( pointsize != CB_ERR) CFn_FitFontSize(hDlg, pointsize);
if( charset != CB_ERR) CFn_FitCharSet( hDlg, charset ); if( charset != CB_ERR) CFn_FitCharSet( hDlg, charset );
@ -903,37 +910,37 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
case cmb5: case cmb5:
if (HIWORD(wParam)==CBN_SELCHANGE || HIWORD(wParam)== BN_CLICKED ) if (HIWORD(wParam)==CBN_SELCHANGE || HIWORD(wParam)== BN_CLICKED )
{ {
char str[256]; WCHAR str[256];
WINDOWINFO wininfo; WINDOWINFO wininfo;
TRACE("WM_COMMAND/cmb2,3 =%08lX\n", lParam); TRACE("WM_COMMAND/cmb2,3 =%08lX\n", lParam);
i=SendDlgItemMessageA(hDlg,cmb1,CB_GETCURSEL,0,0); i=SendDlgItemMessageW(hDlg,cmb1,CB_GETCURSEL,0,0);
if (i==CB_ERR) if (i==CB_ERR)
i=GetDlgItemTextA( hDlg, cmb1, str, 256 ); i=GetDlgItemTextW( hDlg, cmb1, str, 256 );
else else
{ {
SendDlgItemMessageA(hDlg,cmb1,CB_GETLBTEXT,i, SendDlgItemMessageW(hDlg,cmb1,CB_GETLBTEXT,i,
(LPARAM)str); (LPARAM)str);
l=SendDlgItemMessageA(hDlg,cmb1,CB_GETITEMDATA,i,0); l=SendDlgItemMessageW(hDlg,cmb1,CB_GETITEMDATA,i,0);
lpcf->nFontType = LOWORD(l); lpcf->nFontType = LOWORD(l);
/* FIXME: lpcf->nFontType |= .... SIMULATED_FONTTYPE and so */ /* FIXME: lpcf->nFontType |= .... SIMULATED_FONTTYPE and so */
/* same value reported to the EnumFonts /* same value reported to the EnumFonts
call back with the extra FONTTYPE_... bits added */ call back with the extra FONTTYPE_... bits added */
lpxx->lfPitchAndFamily = HIWORD(l) >> 8; lpxx->lfPitchAndFamily = HIWORD(l) >> 8;
} }
strcpy(lpxx->lfFaceName,str); lstrcpyW(lpxx->lfFaceName,str);
i=SendDlgItemMessageA(hDlg, cmb2, CB_GETCURSEL, 0, 0); i=SendDlgItemMessageW(hDlg, cmb2, CB_GETCURSEL, 0, 0);
if (i!=CB_ERR) if (i!=CB_ERR)
{ {
l=SendDlgItemMessageA(hDlg, cmb2, CB_GETITEMDATA, i, 0); l=SendDlgItemMessageW(hDlg, cmb2, CB_GETITEMDATA, i, 0);
if (0!=(lpxx->lfItalic=HIWORD(l))) if (0!=(lpxx->lfItalic=HIWORD(l)))
lpcf->nFontType |= ITALIC_FONTTYPE; lpcf->nFontType |= ITALIC_FONTTYPE;
if ((lpxx->lfWeight=LOWORD(l)) > FW_MEDIUM) if ((lpxx->lfWeight=LOWORD(l)) > FW_MEDIUM)
lpcf->nFontType |= BOLD_FONTTYPE; lpcf->nFontType |= BOLD_FONTTYPE;
} }
i=SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0); i=SendDlgItemMessageW(hDlg, cmb3, CB_GETCURSEL, 0, 0);
if( i != CB_ERR) if( i != CB_ERR)
lpcf->iPointSize = 10 * LOWORD(SendDlgItemMessageA(hDlg, cmb3, lpcf->iPointSize = 10 * LOWORD(SendDlgItemMessageW(hDlg, cmb3,
CB_GETITEMDATA , i, 0)); CB_GETITEMDATA , i, 0));
else else
lpcf->iPointSize = 100; lpcf->iPointSize = 100;
@ -945,9 +952,9 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
CFn_ReleaseDC(lpcf, hdc); CFn_ReleaseDC(lpcf, hdc);
} else } else
lpxx->lfHeight = -lpcf->iPointSize / 10; lpxx->lfHeight = -lpcf->iPointSize / 10;
i=SendDlgItemMessageA(hDlg, cmb5, CB_GETCURSEL, 0, 0); i=SendDlgItemMessageW(hDlg, cmb5, CB_GETCURSEL, 0, 0);
if (i!=CB_ERR) if (i!=CB_ERR)
lpxx->lfCharSet=SendDlgItemMessageA(hDlg, cmb5, CB_GETITEMDATA, i, 0); lpxx->lfCharSet=SendDlgItemMessageW(hDlg, cmb5, CB_GETITEMDATA, i, 0);
else else
lpxx->lfCharSet = DEFAULT_CHARSET; lpxx->lfCharSet = DEFAULT_CHARSET;
lpxx->lfStrikeOut=IsDlgButtonChecked(hDlg,chx1); lpxx->lfStrikeOut=IsDlgButtonChecked(hDlg,chx1);
@ -968,7 +975,7 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
break; break;
case cmb4: case cmb4:
i=SendDlgItemMessageA(hDlg, cmb4, CB_GETCURSEL, 0, 0); i=SendDlgItemMessageW(hDlg, cmb4, CB_GETCURSEL, 0, 0);
if (i!=CB_ERR) if (i!=CB_ERR)
{ {
WINDOWINFO wininfo; WINDOWINFO wininfo;
@ -985,9 +992,9 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
break; break;
case psh15: case psh15:
i=RegisterWindowMessageA( HELPMSGSTRINGA ); i=RegisterWindowMessageW( HELPMSGSTRINGW );
if (lpcf->hwndOwner) if (lpcf->hwndOwner)
SendMessageA(lpcf->hwndOwner, i, 0, (LPARAM)GetPropA(hDlg, WINE_FONTDATA)); SendMessageW(lpcf->hwndOwner, i, 0, (LPARAM)GetPropW(hDlg, strWineFontData));
/* if (CFn_HookCallChk(lpcf)) /* if (CFn_HookCallChk(lpcf))
CallWindowProc16(lpcf->lpfnHook,hDlg,WM_COMMAND,psh15,(LPARAM)lpcf);*/ CallWindowProc16(lpcf->lpfnHook,hDlg,WM_COMMAND,psh15,(LPARAM)lpcf);*/
break; break;
@ -1000,10 +1007,11 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
EndDialog(hDlg, TRUE); EndDialog(hDlg, TRUE);
else else
{ {
char buffer[80]; WCHAR buffer[80];
sprintf(buffer,"Select a font size between %d and %d points.", WCHAR format[80];
lpcf->nSizeMin,lpcf->nSizeMax); LoadStringW(COMDLG32_hInstance, IDS_FONT_SIZE, format, sizeof(format)/sizeof(WCHAR));
MessageBoxA(hDlg, buffer, NULL, MB_OK); wsprintfW(buffer, format, lpcf->nSizeMin,lpcf->nSizeMax);
MessageBoxW(hDlg, buffer, NULL, MB_OK);
} }
return(TRUE); return(TRUE);
case IDCANCEL: case IDCANCEL:
@ -1013,18 +1021,44 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam,
return(FALSE); return(FALSE);
} }
LRESULT CFn_WMDestroy(HWND hwnd, WPARAM wParam, LPARAM lParam) LRESULT CFn_WMDestroy(HWND hwnd, WPARAM wParam, LPARAM lParam, LPCHOOSEFONTW lpcfw)
{ {
LPCHOOSEFONTA lpcfa;
LPCSTR lpTemplateName;
LPSTR lpszStyle;
LPLOGFONTA lpLogFonta;
int len;
lpcfa = GetPropW(hwnd, strWineFontData_a);
lpLogFonta = lpcfa->lpLogFont;
lpTemplateName = lpcfa->lpTemplateName;
lpszStyle = lpcfa->lpszStyle;
memcpy(lpcfa, lpcfw, sizeof(CHOOSEFONTA));
lpcfa->lpLogFont = lpLogFonta;
lpcfa->lpTemplateName = lpTemplateName;
lpcfa->lpszStyle = lpszStyle;
memcpy(lpcfa->lpLogFont, lpcfw->lpLogFont, sizeof(LOGFONTA));
WideCharToMultiByte(CP_ACP, 0, lpcfw->lpLogFont->lfFaceName,
LF_FACESIZE, lpcfa->lpLogFont->lfFaceName, LF_FACESIZE, 0, 0);
if(lpcfw->lpszStyle) {
len = WideCharToMultiByte(CP_ACP, 0, lpcfw->lpszStyle, -1, NULL, -1, 0, 0);
WideCharToMultiByte(CP_ACP, 0, lpcfw->lpszStyle, -1, lpcfa->lpszStyle, len, 0, 0);
HeapFree(GetProcessHeap(), 0, lpcfw->lpszStyle);
}
HeapFree(GetProcessHeap(), 0, (LPBYTE)lpcfw->lpTemplateName);
HeapFree(GetProcessHeap(), 0, lpcfw->lpLogFont);
HeapFree(GetProcessHeap(), 0, lpcfw);
return TRUE; return TRUE;
} }
LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam, LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam, LPCHOOSEFONTW lpcf)
LPCHOOSEFONTA lpcf )
{ {
WINDOWINFO info; WINDOWINFO info;
info.cbSize=sizeof(info); info.cbSize=sizeof(info);
if( GetWindowInfo( GetDlgItem( hDlg, stc5), &info ) ) if( GetWindowInfo( GetDlgItem( hDlg, stc5), &info ) )
{ {
PAINTSTRUCT ps; PAINTSTRUCT ps;
@ -1032,7 +1066,7 @@ LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam,
HPEN hOrigPen; HPEN hOrigPen;
HFONT hOrigFont; HFONT hOrigFont;
COLORREF rgbPrev; COLORREF rgbPrev;
LOGFONTA lf = *(lpcf->lpLogFont); LOGFONTW lf = *(lpcf->lpLogFont);
MapWindowPoints( 0, hDlg, (LPPOINT) &info.rcWindow, 2); MapWindowPoints( 0, hDlg, (LPPOINT) &info.rcWindow, 2);
hdc = BeginPaint( hDlg, &ps ); hdc = BeginPaint( hDlg, &ps );
@ -1058,7 +1092,7 @@ LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam,
info.rcWindow.bottom--; info.rcWindow.bottom--;
info.rcWindow.top++; info.rcWindow.top++;
info.rcWindow.left++; info.rcWindow.left++;
hOrigFont = SelectObject( hdc, CreateFontIndirectA( &lf ) ); hOrigFont = SelectObject( hdc, CreateFontIndirectW( &lf ) );
rgbPrev=SetTextColor( hdc, lpcf->rgbColors ); rgbPrev=SetTextColor( hdc, lpcf->rgbColors );
DrawTextW( hdc, DrawTextW( hdc,
@ -1077,29 +1111,50 @@ LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam,
INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
LPARAM lParam) LPARAM lParam)
{ {
LPCHOOSEFONTA lpcf; LPCHOOSEFONTW lpcfw;
LPCHOOSEFONTA lpcfa;
INT_PTR res = FALSE; INT_PTR res = FALSE;
int len;
if (uMsg!=WM_INITDIALOG) if (uMsg!=WM_INITDIALOG) {
{ lpcfw = (LPCHOOSEFONTW)GetPropW(hDlg, strWineFontData);
lpcf=(LPCHOOSEFONTA)GetPropA(hDlg, WINE_FONTDATA); if (!lpcfw)
if (!lpcf && uMsg != WM_MEASUREITEM)
return FALSE; return FALSE;
if (CFn_HookCallChk32(lpcf)) if (CFn_HookCallChk32(lpcfw))
res=CallWindowProcA((WNDPROC)lpcf->lpfnHook, hDlg, uMsg, wParam, lParam); res=CallWindowProcA((WNDPROC)lpcfw->lpfnHook, hDlg, uMsg, wParam, lParam);
if (res) if (res)
return res; return res;
} } else {
else lpcfa=(LPCHOOSEFONTA)lParam;
{ SetPropW(hDlg, strWineFontData_a, (HANDLE)lParam);
lpcf=(LPCHOOSEFONTA)lParam;
if (!CFn_WMInitDialog(hDlg, wParam, lParam, lpcf)) lpcfw = HeapAlloc(GetProcessHeap(), 0, sizeof(CHOOSEFONTW));
memcpy(lpcfw, lpcfa, sizeof(CHOOSEFONTA));
lpcfw->lpLogFont = HeapAlloc(GetProcessHeap(), 0, sizeof(LOGFONTW));
memcpy(lpcfw->lpLogFont, lpcfa->lpLogFont, sizeof(LOGFONTA));
MultiByteToWideChar(CP_ACP, 0, lpcfa->lpLogFont->lfFaceName,
LF_FACESIZE, lpcfw->lpLogFont->lfFaceName, LF_FACESIZE);
if(lpcfa->lpszStyle) {
len = MultiByteToWideChar(CP_ACP, 0, lpcfa->lpszStyle, -1, NULL, 0);
lpcfw->lpszStyle = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR));
MultiByteToWideChar(CP_ACP, 0, lpcfa->lpszStyle, -1, lpcfw->lpszStyle, len);
}
if(lpcfa->lpTemplateName) {
len = MultiByteToWideChar(CP_ACP, 0, lpcfa->lpTemplateName, -1, NULL, 0);
lpcfw->lpTemplateName = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR));
MultiByteToWideChar(CP_ACP, 0, lpcfa->lpTemplateName,
-1, (LPWSTR)lpcfw->lpTemplateName, len);
}
if (!CFn_WMInitDialog(hDlg, wParam, lParam, lpcfw))
{ {
TRACE("CFn_WMInitDialog returned FALSE\n"); TRACE("CFn_WMInitDialog returned FALSE\n");
return FALSE; return FALSE;
} }
if (CFn_HookCallChk32(lpcf)) if (CFn_HookCallChk32(lpcfw))
return CallWindowProcA((WNDPROC)lpcf->lpfnHook,hDlg,WM_INITDIALOG,wParam,lParam); return CallWindowProcA((WNDPROC)lpcfa->lpfnHook,hDlg,WM_INITDIALOG,wParam,lParam);
} }
switch (uMsg) switch (uMsg)
{ {
@ -1108,16 +1163,15 @@ INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
case WM_DRAWITEM: case WM_DRAWITEM:
return CFn_WMDrawItem(hDlg, wParam, lParam); return CFn_WMDrawItem(hDlg, wParam, lParam);
case WM_COMMAND: case WM_COMMAND:
return CFn_WMCommand(hDlg, wParam, lParam, lpcf); return CFn_WMCommand(hDlg, wParam, lParam, lpcfw);
case WM_DESTROY: case WM_DESTROY:
return CFn_WMDestroy(hDlg, wParam, lParam); return CFn_WMDestroy(hDlg, wParam, lParam, lpcfw);
case WM_CHOOSEFONT_GETLOGFONT: case WM_CHOOSEFONT_GETLOGFONT:
TRACE("WM_CHOOSEFONT_GETLOGFONT lParam=%08lX\n", TRACE("WM_CHOOSEFONT_GETLOGFONT lParam=%08lX\n", lParam);
lParam);
FIXME("current logfont back to caller\n"); FIXME("current logfont back to caller\n");
break; break;
case WM_PAINT: case WM_PAINT:
return CFn_WMPaint(hDlg, wParam, lParam, lpcf); return CFn_WMPaint(hDlg, wParam, lParam, lpcfw);
} }
return res; return res;
} }
@ -1128,29 +1182,29 @@ INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam,
INT_PTR CALLBACK FormatCharDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam, INT_PTR CALLBACK FormatCharDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam,
LPARAM lParam) LPARAM lParam)
{ {
LPCHOOSEFONTW lpcf32w; LPCHOOSEFONTW lpcf;
INT_PTR res = FALSE; INT_PTR res = FALSE;
if (uMsg!=WM_INITDIALOG) if (uMsg!=WM_INITDIALOG)
{ {
lpcf32w=(LPCHOOSEFONTW)GetPropA(hDlg, WINE_FONTDATA); lpcf=(LPCHOOSEFONTW)GetPropW(hDlg, strWineFontData);
if (!lpcf32w) if (!lpcf)
return FALSE; return FALSE;
if (CFn_HookCallChk32((LPCHOOSEFONTA)lpcf32w)) if (CFn_HookCallChk32(lpcf))
res=CallWindowProcW((WNDPROC)lpcf32w->lpfnHook, hDlg, uMsg, wParam, lParam); res=CallWindowProcW((WNDPROC)lpcf->lpfnHook, hDlg, uMsg, wParam, lParam);
if (res) if (res)
return res; return res;
} }
else else
{ {
lpcf32w=(LPCHOOSEFONTW)lParam; lpcf=(LPCHOOSEFONTW)lParam;
if (!CFn_WMInitDialog(hDlg, wParam, lParam, (LPCHOOSEFONTA)lpcf32w)) if (!CFn_WMInitDialog(hDlg, wParam, lParam, lpcf))
{ {
TRACE("CFn_WMInitDialog returned FALSE\n"); TRACE("CFn_WMInitDialog returned FALSE\n");
return FALSE; return FALSE;
} }
if (CFn_HookCallChk32((LPCHOOSEFONTA)lpcf32w)) if (CFn_HookCallChk32(lpcf))
return CallWindowProcW((WNDPROC)lpcf32w->lpfnHook,hDlg,WM_INITDIALOG,wParam,lParam); return CallWindowProcW((WNDPROC)lpcf->lpfnHook,hDlg,WM_INITDIALOG,wParam,lParam);
} }
switch (uMsg) switch (uMsg)
{ {
@ -1159,14 +1213,15 @@ INT_PTR CALLBACK FormatCharDlgProcW(HWND hDlg, UINT uMsg, WPARAM wParam,
case WM_DRAWITEM: case WM_DRAWITEM:
return CFn_WMDrawItem(hDlg, wParam, lParam); return CFn_WMDrawItem(hDlg, wParam, lParam);
case WM_COMMAND: case WM_COMMAND:
return CFn_WMCommand(hDlg, wParam, lParam, (LPCHOOSEFONTW)lpcf32w); return CFn_WMCommand(hDlg, wParam, lParam, lpcf);
case WM_DESTROY: case WM_DESTROY:
return CFn_WMDestroy(hDlg, wParam, lParam); return TRUE;
case WM_CHOOSEFONT_GETLOGFONT: case WM_CHOOSEFONT_GETLOGFONT:
TRACE("WM_CHOOSEFONT_GETLOGFONT lParam=%08lX\n", TRACE("WM_CHOOSEFONT_GETLOGFONT lParam=%08lX\n", lParam);
lParam);
FIXME("current logfont back to caller\n"); FIXME("current logfont back to caller\n");
break; break;
case WM_PAINT:
return CFn_WMPaint(hDlg, wParam, lParam, lpcf);
} }
return res; return res;
} }

View file

@ -41,7 +41,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(commdlg);
#include "cdlg.h" #include "cdlg.h"
#include "cdlg16.h" #include "cdlg16.h"
static void FONT_LogFont16To32A( const LPLOGFONT16 font16, LPLOGFONTA font32 ) static void FONT_LogFont16To32W( const LPLOGFONT16 font16, LPLOGFONTW font32 )
{ {
font32->lfHeight = font16->lfHeight; font32->lfHeight = font16->lfHeight;
font32->lfWidth = font16->lfWidth; font32->lfWidth = font16->lfWidth;
@ -56,35 +56,50 @@ static void FONT_LogFont16To32A( const LPLOGFONT16 font16, LPLOGFONTA font32 )
font32->lfClipPrecision = font16->lfClipPrecision; font32->lfClipPrecision = font16->lfClipPrecision;
font32->lfQuality = font16->lfQuality; font32->lfQuality = font16->lfQuality;
font32->lfPitchAndFamily = font16->lfPitchAndFamily; font32->lfPitchAndFamily = font16->lfPitchAndFamily;
lstrcpynA( font32->lfFaceName, font16->lfFaceName, LF_FACESIZE ); MultiByteToWideChar(CP_ACP, 0, font16->lfFaceName,
LF_FACESIZE, font32->lfFaceName, LF_FACESIZE);
}; };
static void FONT_Metrics16To32A( const TEXTMETRIC16 *pm16, static void FONT_Metrics16To32W( const TEXTMETRIC16 *pm16,
NEWTEXTMETRICEXA *pnm32a) NEWTEXTMETRICEXW *pnm32w)
{ {
ZeroMemory( pnm32a, sizeof(NEWTEXTMETRICEXA)); ZeroMemory( pnm32w, sizeof(NEWTEXTMETRICEXW));
/* NOTE: only the fields used by AddFontStyle() are filled in */ /* NOTE: only the fields used by AddFontStyle() are filled in */
pnm32a->ntmTm.tmHeight = pm16->tmHeight; pnm32w->ntmTm.tmHeight = pm16->tmHeight;
pnm32a->ntmTm.tmExternalLeading = pm16->tmExternalLeading; pnm32w->ntmTm.tmExternalLeading = pm16->tmExternalLeading;
}; };
static void CFn_CHOOSEFONT16to32A(LPCHOOSEFONT16 chf16, LPCHOOSEFONTA chf32a) static void CFn_CHOOSEFONT16to32W(LPCHOOSEFONT16 chf16, LPCHOOSEFONTW chf32w)
{ {
chf32a->lStructSize=sizeof(CHOOSEFONTA); int len;
chf32a->hwndOwner=HWND_32(chf16->hwndOwner); if(chf16->lpTemplateName)
chf32a->hDC=HDC_32(chf16->hDC); {
chf32a->iPointSize=chf16->iPointSize; len = MultiByteToWideChar(CP_ACP, 0, (LPBYTE)chf16->lpTemplateName, -1, NULL, 0);
chf32a->Flags=chf16->Flags; chf32w->lpTemplateName = HeapAlloc(GetProcessHeap(), 0,len*sizeof(WCHAR));
chf32a->rgbColors=chf16->rgbColors; MultiByteToWideChar(CP_ACP, 0, (LPSTR)MapSL(chf16->lpTemplateName),
chf32a->lCustData=chf16->lCustData; -1, (LPWSTR)chf32w->lpTemplateName, len);
chf32a->lpfnHook=NULL; }
chf32a->lpTemplateName=MapSL(chf16->lpTemplateName); if(chf16->lpszStyle)
chf32a->hInstance=HINSTANCE_32(chf16->hInstance); {
chf32a->lpszStyle=MapSL(chf16->lpszStyle); len = MultiByteToWideChar(CP_ACP, 0, (LPBYTE)chf16->lpszStyle, -1, NULL, 0);
chf32a->nFontType=chf16->nFontType; chf32w->lpszStyle = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR));
chf32a->nSizeMax=chf16->nSizeMax; MultiByteToWideChar(CP_ACP, 0, (LPSTR)MapSL(chf16->lpTemplateName),
chf32a->nSizeMin=chf16->nSizeMin; -1, chf32w->lpszStyle, len);
FONT_LogFont16To32A(MapSL(chf16->lpLogFont), chf32a->lpLogFont); }
chf32w->lStructSize=sizeof(CHOOSEFONTW);
chf32w->hwndOwner=HWND_32(chf16->hwndOwner);
chf32w->hDC=HDC_32(chf16->hDC);
chf32w->iPointSize=chf16->iPointSize;
chf32w->Flags=chf16->Flags;
chf32w->rgbColors=chf16->rgbColors;
chf32w->lCustData=chf16->lCustData;
chf32w->lpfnHook=NULL;
chf32w->hInstance=HINSTANCE_32(chf16->hInstance);
chf32w->lpszStyle=MapSL(chf16->lpszStyle);
chf32w->nFontType=chf16->nFontType;
chf32w->nSizeMax=chf16->nSizeMax;
chf32w->nSizeMin=chf16->nSizeMin;
FONT_LogFont16To32W(MapSL(chf16->lpLogFont), chf32w->lpLogFont);
}; };
/*********************************************************************** /***********************************************************************
@ -110,12 +125,12 @@ INT16 WINAPI FontFamilyEnumProc16( SEGPTR logfont, SEGPTR metrics,
LPCHOOSEFONT16 lpcf=(LPCHOOSEFONT16)GetWindowLongA(hDlg, DWL_USER); LPCHOOSEFONT16 lpcf=(LPCHOOSEFONT16)GetWindowLongA(hDlg, DWL_USER);
LOGFONT16 *lplf = MapSL( logfont ); LOGFONT16 *lplf = MapSL( logfont );
TEXTMETRIC16 *lpmtrx16 = MapSL(metrics); TEXTMETRIC16 *lpmtrx16 = MapSL(metrics);
ENUMLOGFONTEXA elf32a; ENUMLOGFONTEXW elf32w;
NEWTEXTMETRICEXA nmtrx32a; NEWTEXTMETRICEXW nmtrx32w;
FONT_LogFont16To32A(lplf, &(elf32a.elfLogFont)); FONT_LogFont16To32W(lplf, &(elf32w.elfLogFont));
FONT_Metrics16To32A(lpmtrx16, &nmtrx32a); FONT_Metrics16To32W(lpmtrx16, &nmtrx32w);
return AddFontFamily(&elf32a, &nmtrx32a, nFontType, return AddFontFamily(&elf32w, &nmtrx32w, nFontType,
(LPCHOOSEFONTA)lpcf->lpTemplateName, hwnd,NULL); (LPCHOOSEFONTW)lpcf->lpTemplateName, hwnd,NULL);
} }
/*********************************************************************** /***********************************************************************
@ -130,12 +145,12 @@ INT16 WINAPI FontStyleEnumProc16( SEGPTR logfont, SEGPTR metrics,
LPCHOOSEFONT16 lpcf=(LPCHOOSEFONT16)GetWindowLongA(hDlg, DWL_USER); LPCHOOSEFONT16 lpcf=(LPCHOOSEFONT16)GetWindowLongA(hDlg, DWL_USER);
LOGFONT16 *lplf = MapSL(logfont); LOGFONT16 *lplf = MapSL(logfont);
TEXTMETRIC16 *lpmtrx16 = MapSL(metrics); TEXTMETRIC16 *lpmtrx16 = MapSL(metrics);
ENUMLOGFONTEXA elf32a; ENUMLOGFONTEXW elf32w;
NEWTEXTMETRICEXA nmtrx32a; NEWTEXTMETRICEXW nmtrx32w;
FONT_LogFont16To32A(lplf, &(elf32a.elfLogFont)); FONT_LogFont16To32W(lplf, &(elf32w.elfLogFont));
FONT_Metrics16To32A(lpmtrx16, &nmtrx32a); FONT_Metrics16To32W(lpmtrx16, &nmtrx32w);
return AddFontStyle(&elf32a, &nmtrx32a, nFontType, return AddFontStyle(&elf32w, &nmtrx32w, nFontType,
(LPCHOOSEFONTA)lpcf->lpTemplateName, hcmb2, hcmb3, hDlg, TRUE); (LPCHOOSEFONTW)lpcf->lpTemplateName, hcmb2, hcmb3, hDlg, TRUE);
} }
/*********************************************************************** /***********************************************************************
@ -149,13 +164,13 @@ BOOL16 WINAPI ChooseFont16(LPCHOOSEFONT16 lpChFont)
BOOL16 bRet = FALSE; BOOL16 bRet = FALSE;
LPCVOID template; LPCVOID template;
FARPROC16 ptr; FARPROC16 ptr;
CHOOSEFONTA cf32a; CHOOSEFONTW cf32w;
LOGFONTA lf32a; LOGFONTW lf32w;
LOGFONT16 *font16; LOGFONT16 *font16;
SEGPTR lpTemplateName; SEGPTR lpTemplateName;
cf32a.lpLogFont=&lf32a; cf32w.lpLogFont=&lf32w;
CFn_CHOOSEFONT16to32A(lpChFont, &cf32a); CFn_CHOOSEFONT16to32W(lpChFont, &cf32w);
TRACE("ChooseFont\n"); TRACE("ChooseFont\n");
if (!lpChFont) return FALSE; if (!lpChFont) return FALSE;
@ -228,7 +243,7 @@ BOOL16 WINAPI ChooseFont16(LPCHOOSEFONT16 lpChFont)
/* lpTemplateName is not used in the dialog */ /* lpTemplateName is not used in the dialog */
lpTemplateName=lpChFont->lpTemplateName; lpTemplateName=lpChFont->lpTemplateName;
lpChFont->lpTemplateName=(SEGPTR)&cf32a; lpChFont->lpTemplateName=(SEGPTR)&cf32w;
ptr = GetProcAddress16(GetModuleHandle16("COMMDLG"), (LPCSTR) 16); ptr = GetProcAddress16(GetModuleHandle16("COMMDLG"), (LPCSTR) 16);
hInst = GetWindowLongPtrA(HWND_32(lpChFont->hwndOwner), GWLP_HINSTANCE); hInst = GetWindowLongPtrA(HWND_32(lpChFont->hwndOwner), GWLP_HINSTANCE);
@ -242,27 +257,32 @@ BOOL16 WINAPI ChooseFont16(LPCHOOSEFONT16 lpChFont)
} }
lpChFont->lpTemplateName=lpTemplateName; lpChFont->lpTemplateName=lpTemplateName;
lpChFont->iPointSize = cf32a.iPointSize; lpChFont->iPointSize = cf32w.iPointSize;
lpChFont->Flags = cf32a.Flags; lpChFont->Flags = cf32w.Flags;
lpChFont->rgbColors = cf32a.rgbColors; lpChFont->rgbColors = cf32w.rgbColors;
lpChFont->lCustData = cf32a.lCustData; lpChFont->lCustData = cf32w.lCustData;
lpChFont->nFontType = cf32a.nFontType; lpChFont->nFontType = cf32w.nFontType;
font16 = MapSL(lpChFont->lpLogFont); font16 = MapSL(lpChFont->lpLogFont);
font16->lfHeight = cf32a.lpLogFont->lfHeight; font16->lfHeight = cf32w.lpLogFont->lfHeight;
font16->lfWidth = cf32a.lpLogFont->lfWidth; font16->lfWidth = cf32w.lpLogFont->lfWidth;
font16->lfEscapement = cf32a.lpLogFont->lfEscapement; font16->lfEscapement = cf32w.lpLogFont->lfEscapement;
font16->lfOrientation = cf32a.lpLogFont->lfOrientation; font16->lfOrientation = cf32w.lpLogFont->lfOrientation;
font16->lfWeight = cf32a.lpLogFont->lfWeight; font16->lfWeight = cf32w.lpLogFont->lfWeight;
font16->lfItalic = cf32a.lpLogFont->lfItalic; font16->lfItalic = cf32w.lpLogFont->lfItalic;
font16->lfUnderline = cf32a.lpLogFont->lfUnderline; font16->lfUnderline = cf32w.lpLogFont->lfUnderline;
font16->lfStrikeOut = cf32a.lpLogFont->lfStrikeOut; font16->lfStrikeOut = cf32w.lpLogFont->lfStrikeOut;
font16->lfCharSet = cf32a.lpLogFont->lfCharSet; font16->lfCharSet = cf32w.lpLogFont->lfCharSet;
font16->lfOutPrecision = cf32a.lpLogFont->lfOutPrecision; font16->lfOutPrecision = cf32w.lpLogFont->lfOutPrecision;
font16->lfClipPrecision = cf32a.lpLogFont->lfClipPrecision; font16->lfClipPrecision = cf32w.lpLogFont->lfClipPrecision;
font16->lfQuality = cf32a.lpLogFont->lfQuality; font16->lfQuality = cf32w.lpLogFont->lfQuality;
font16->lfPitchAndFamily = cf32a.lpLogFont->lfPitchAndFamily; font16->lfPitchAndFamily = cf32w.lpLogFont->lfPitchAndFamily;
lstrcpynA( font16->lfFaceName, cf32a.lpLogFont->lfFaceName, LF_FACESIZE ); WideCharToMultiByte(CP_ACP, 0, cf32w.lpLogFont->lfFaceName,
LF_FACESIZE, font16->lfFaceName, LF_FACESIZE, 0, 0);
HeapFree(GetProcessHeap(), 0, (LPBYTE)cf32w.lpTemplateName);
HeapFree(GetProcessHeap(), 0, cf32w.lpszStyle);
return bRet; return bRet;
} }
@ -291,7 +311,7 @@ BOOL16 CALLBACK FormatCharDlgProc16(HWND16 hDlg16, UINT16 message,
else else
{ {
lpcf=(LPCHOOSEFONT16)lParam; lpcf=(LPCHOOSEFONT16)lParam;
if (!CFn_WMInitDialog(hDlg, wParam, lParam, (LPCHOOSEFONTA)lpcf->lpTemplateName)) if (!CFn_WMInitDialog(hDlg, wParam, lParam, (LPCHOOSEFONTW)lpcf->lpTemplateName))
{ {
TRACE("CFn_WMInitDialog returned FALSE\n"); TRACE("CFn_WMInitDialog returned FALSE\n");
return FALSE; return FALSE;
@ -337,17 +357,16 @@ BOOL16 CALLBACK FormatCharDlgProc16(HWND16 hDlg16, UINT16 message,
break; break;
case WM_COMMAND: case WM_COMMAND:
res=CFn_WMCommand(hDlg, MAKEWPARAM( wParam, HIWORD(lParam) ), LOWORD(lParam), res=CFn_WMCommand(hDlg, MAKEWPARAM( wParam, HIWORD(lParam) ), LOWORD(lParam),
(LPCHOOSEFONTA)lpcf->lpTemplateName); (LPCHOOSEFONTW)lpcf->lpTemplateName);
break; break;
case WM_DESTROY: case WM_DESTROY:
res=CFn_WMDestroy(hDlg, wParam, lParam); return TRUE;
break;
case WM_CHOOSEFONT_GETLOGFONT: case WM_CHOOSEFONT_GETLOGFONT:
TRACE("WM_CHOOSEFONT_GETLOGFONT lParam=%08lX\n", lParam); TRACE("WM_CHOOSEFONT_GETLOGFONT lParam=%08lX\n", lParam);
FIXME("current logfont back to caller\n"); FIXME("current logfont back to caller\n");
break; break;
case WM_PAINT: case WM_PAINT:
res= CFn_WMPaint(hDlg, wParam, lParam, (LPCHOOSEFONTA)lpcf->lpTemplateName); res= CFn_WMPaint(hDlg, wParam, lParam, (LPCHOOSEFONTW)lpcf->lpTemplateName);
break; break;
} }
return res; return res;

View file

@ -479,8 +479,8 @@ static BOOL PRINTDLG_PaperSizeA(
out: out:
GlobalUnlock(pdlga->hDevNames); GlobalUnlock(pdlga->hDevNames);
GlobalUnlock(pdlga->hDevMode); GlobalUnlock(pdlga->hDevMode);
if (Names) HeapFree(GetProcessHeap(),0,Names); HeapFree(GetProcessHeap(),0,Names);
if (points) HeapFree(GetProcessHeap(),0,points); HeapFree(GetProcessHeap(),0,points);
return retval; return retval;
} }
@ -537,8 +537,8 @@ static BOOL PRINTDLG_PaperSizeW(
out: out:
GlobalUnlock(pdlga->hDevNames); GlobalUnlock(pdlga->hDevNames);
GlobalUnlock(pdlga->hDevMode); GlobalUnlock(pdlga->hDevMode);
if (Names) HeapFree(GetProcessHeap(),0,Names); HeapFree(GetProcessHeap(),0,Names);
if (points) HeapFree(GetProcessHeap(),0,points); HeapFree(GetProcessHeap(),0,points);
return retval; return retval;
} }
@ -860,10 +860,8 @@ BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
DWORD needed; DWORD needed;
HANDLE hprn; HANDLE hprn;
if(PrintStructures->lpPrinterInfo) HeapFree(GetProcessHeap(),0, PrintStructures->lpPrinterInfo);
HeapFree(GetProcessHeap(),0, PrintStructures->lpPrinterInfo); HeapFree(GetProcessHeap(),0, PrintStructures->lpDriverInfo);
if(PrintStructures->lpDriverInfo)
HeapFree(GetProcessHeap(),0, PrintStructures->lpDriverInfo);
if(!OpenPrinterA(name, &hprn, NULL)) { if(!OpenPrinterA(name, &hprn, NULL)) {
ERR("Can't open printer %s\n", name); ERR("Can't open printer %s\n", name);
return FALSE; return FALSE;
@ -883,10 +881,8 @@ BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
PRINTDLG_UpdatePrinterInfoTextsA(hDlg, PrintStructures->lpPrinterInfo); PRINTDLG_UpdatePrinterInfoTextsA(hDlg, PrintStructures->lpPrinterInfo);
if(PrintStructures->lpDevMode) { HeapFree(GetProcessHeap(), 0, PrintStructures->lpDevMode);
HeapFree(GetProcessHeap(), 0, PrintStructures->lpDevMode); PrintStructures->lpDevMode = NULL;
PrintStructures->lpDevMode = NULL;
}
dmSize = DocumentPropertiesA(0, 0, name, NULL, NULL, 0); dmSize = DocumentPropertiesA(0, 0, name, NULL, NULL, 0);
if(dmSize == -1) { if(dmSize == -1) {
@ -928,15 +924,6 @@ BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name,
if (lppd->Flags & PD_PAGENUMS) if (lppd->Flags & PD_PAGENUMS)
CheckRadioButton(hDlg, rad1, rad3, rad3); CheckRadioButton(hDlg, rad1, rad3, rad3);
} }
/* "All xxx pages"... */
{
char resourcestr[64];
char result[64];
LoadStringA(COMDLG32_hInstance, PD32_PRINT_ALL_X_PAGES,
resourcestr, 49);
sprintf(result,resourcestr,lppd->nMaxPage - lppd->nMinPage + 1);
SendDlgItemMessageA(hDlg, rad1, WM_SETTEXT, 0, (LPARAM) result);
}
/* Collate pages /* Collate pages
* *
@ -1022,10 +1009,8 @@ static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name,
DWORD needed; DWORD needed;
HANDLE hprn; HANDLE hprn;
if(PrintStructures->lpPrinterInfo) HeapFree(GetProcessHeap(),0, PrintStructures->lpPrinterInfo);
HeapFree(GetProcessHeap(),0, PrintStructures->lpPrinterInfo); HeapFree(GetProcessHeap(),0, PrintStructures->lpDriverInfo);
if(PrintStructures->lpDriverInfo)
HeapFree(GetProcessHeap(),0, PrintStructures->lpDriverInfo);
if(!OpenPrinterW(name, &hprn, NULL)) { if(!OpenPrinterW(name, &hprn, NULL)) {
ERR("Can't open printer %s\n", debugstr_w(name)); ERR("Can't open printer %s\n", debugstr_w(name));
return FALSE; return FALSE;
@ -1045,10 +1030,8 @@ static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name,
PRINTDLG_UpdatePrinterInfoTextsW(hDlg, PrintStructures->lpPrinterInfo); PRINTDLG_UpdatePrinterInfoTextsW(hDlg, PrintStructures->lpPrinterInfo);
if(PrintStructures->lpDevMode) { HeapFree(GetProcessHeap(), 0, PrintStructures->lpDevMode);
HeapFree(GetProcessHeap(), 0, PrintStructures->lpDevMode); PrintStructures->lpDevMode = NULL;
PrintStructures->lpDevMode = NULL;
}
dmSize = DocumentPropertiesW(0, 0, name, NULL, NULL, 0); dmSize = DocumentPropertiesW(0, 0, name, NULL, NULL, 0);
if(dmSize == -1) { if(dmSize == -1) {
@ -1090,15 +1073,6 @@ static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name,
if (lppd->Flags & PD_PAGENUMS) if (lppd->Flags & PD_PAGENUMS)
CheckRadioButton(hDlg, rad1, rad3, rad3); CheckRadioButton(hDlg, rad1, rad3, rad3);
} }
/* "All xxx pages"... */
{
WCHAR resourcestr[64];
WCHAR result[64];
LoadStringW(COMDLG32_hInstance, PD32_PRINT_ALL_X_PAGES,
resourcestr, 49);
wsprintfW(result,resourcestr,lppd->nMaxPage - lppd->nMinPage + 1);
SendDlgItemMessageW(hDlg, rad1, WM_SETTEXT, 0, (LPARAM) result);
}
/* Collate pages /* Collate pages
* *
@ -1412,7 +1386,7 @@ LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam,
switch (LOWORD(wParam)) { switch (LOWORD(wParam)) {
case IDOK: case IDOK:
TRACE(" OK button was hit\n"); TRACE(" OK button was hit\n");
if (PRINTDLG_UpdatePrintDlgA(hDlg, PrintStructures)!=TRUE) { if (!PRINTDLG_UpdatePrintDlgA(hDlg, PrintStructures)) {
FIXME("Update printdlg was not successful!\n"); FIXME("Update printdlg was not successful!\n");
return(FALSE); return(FALSE);
} }
@ -1589,7 +1563,7 @@ static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam,
switch (LOWORD(wParam)) { switch (LOWORD(wParam)) {
case IDOK: case IDOK:
TRACE(" OK button was hit\n"); TRACE(" OK button was hit\n");
if (PRINTDLG_UpdatePrintDlgW(hDlg, PrintStructures)!=TRUE) { if (!PRINTDLG_UpdatePrintDlgW(hDlg, PrintStructures)) {
FIXME("Update printdlg was not successful!\n"); FIXME("Update printdlg was not successful!\n");
return(FALSE); return(FALSE);
} }