diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c index 3dbaa1cdeaa..a9a37d9efe7 100644 --- a/dlls/gdi32/dc.c +++ b/dlls/gdi32/dc.c @@ -34,8 +34,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(dc); -static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 }; - static BOOL DC_DeleteObject( HGDIOBJ handle ); static const struct gdi_obj_funcs dc_funcs = @@ -699,7 +697,7 @@ HDC WINAPI CreateDCA( LPCSTR driver, LPCSTR device, LPCSTR output, if (initData) { /* don't convert initData for DISPLAY driver, it's not used */ - if (!driverW.Buffer || wcsicmp( driverW.Buffer, displayW )) + if (!driverW.Buffer || wcsicmp( driverW.Buffer, L"display" )) initDataW = GdiConvertToDevmodeW(initData); } @@ -754,7 +752,7 @@ HDC WINAPI CreateCompatibleDC( HDC hdc ) funcs = physDev->funcs; release_dc_ptr( origDC ); } - else funcs = DRIVER_load_driver( displayW ); + else funcs = DRIVER_load_driver( L"display" ); if (!(dc = alloc_dc_ptr( OBJ_MEMDC ))) return 0; diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c index c54a0b3cc7c..e2528ece046 100644 --- a/dlls/gdi32/driver.c +++ b/dlls/gdi32/driver.c @@ -139,13 +139,11 @@ static const struct gdi_dc_funcs *get_display_driver(void) */ static BOOL is_display_device( LPCWSTR name ) { - static const WCHAR display_deviceW[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y'}; const WCHAR *p = name; - if (wcsnicmp( name, display_deviceW, sizeof(display_deviceW) / sizeof(WCHAR) )) - return FALSE; + if (wcsnicmp( name, L"\\\\.\\DISPLAY", lstrlenW(L"\\\\.\\DISPLAY") )) return FALSE; - p += sizeof(display_deviceW) / sizeof(WCHAR); + p += lstrlenW(L"\\\\.\\DISPLAY"); if (!iswdigit( *p++ )) return FALSE; @@ -161,8 +159,7 @@ static BOOL is_display_device( LPCWSTR name ) static HANDLE get_display_device_init_mutex( void ) { - static const WCHAR init_mutex[] = {'d','i','s','p','l','a','y','_','d','e','v','i','c','e','_','i','n','i','t',0}; - HANDLE mutex = CreateMutexW( NULL, FALSE, init_mutex ); + HANDLE mutex = CreateMutexW( NULL, FALSE, L"display_device_init" ); WaitForSingleObject( mutex, INFINITE ); return mutex; @@ -181,10 +178,9 @@ const struct gdi_dc_funcs *DRIVER_load_driver( LPCWSTR name ) { HMODULE module; struct graphics_driver *driver, *new_driver; - static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 }; /* display driver is a special case */ - if (!wcsicmp( name, displayW ) || is_display_device( name )) return get_display_driver(); + if (!wcsicmp( name, L"display" ) || is_display_device( name )) return get_display_driver(); if ((module = GetModuleHandleW( name ))) { @@ -936,20 +932,16 @@ const struct gdi_dc_funcs null_driver = */ BOOL DRIVER_GetDriverName( LPCWSTR device, LPWSTR driver, DWORD size ) { - static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 }; - static const WCHAR devicesW[] = { 'd','e','v','i','c','e','s',0 }; - static const WCHAR empty_strW[] = { 0 }; WCHAR *p; /* display is a special case */ - if (!wcsicmp( device, displayW ) || - is_display_device( device )) + if (!wcsicmp( device, L"display" ) || is_display_device( device )) { - lstrcpynW( driver, displayW, size ); + lstrcpynW( driver, L"display", size ); return TRUE; } - size = GetProfileStringW(devicesW, device, empty_strW, driver, size); + size = GetProfileStringW(L"devices", device, L"", driver, size); if(!size) { WARN("Unable to find %s in [devices] section of win.ini\n", debugstr_w(device)); return FALSE; @@ -1369,14 +1361,6 @@ NTSTATUS WINAPI D3DKMTCloseAdapter( const D3DKMT_CLOSEADAPTER *desc ) */ NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName( D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME *desc ) { - static const WCHAR displayW[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y'}; - static const WCHAR state_flagsW[] = {'S','t','a','t','e','F','l','a','g','s',0}; - static const WCHAR video_value_fmtW[] = {'\\','D','e','v','i','c','e','\\', - 'V','i','d','e','o','%','d',0}; - static const WCHAR video_keyW[] = {'H','A','R','D','W','A','R','E','\\', - 'D','E','V','I','C','E','M','A','P','\\', - 'V','I','D','E','O','\\',0}; - static const WCHAR gpu_idW[] = {'G','P','U','I','D',0}; WCHAR *end, key_nameW[MAX_PATH], bufferW[MAX_PATH]; HDEVINFO devinfo = INVALID_HANDLE_VALUE; NTSTATUS status = STATUS_UNSUCCESSFUL; @@ -1395,10 +1379,10 @@ NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName( D3DKMT_OPENADAPTERFROMGDIDI return STATUS_UNSUCCESSFUL; TRACE("DeviceName: %s\n", wine_dbgstr_w( desc->DeviceName )); - if (wcsnicmp( desc->DeviceName, displayW, ARRAY_SIZE(displayW) )) + if (wcsnicmp( desc->DeviceName, L"\\\\.\\DISPLAY", lstrlenW(L"\\\\.\\DISPLAY") )) return STATUS_UNSUCCESSFUL; - index = wcstol( desc->DeviceName + ARRAY_SIZE(displayW), &end, 10 ) - 1; + index = wcstol( desc->DeviceName + lstrlenW(L"\\\\.\\DISPLAY"), &end, 10 ) - 1; if (*end) return STATUS_UNSUCCESSFUL; @@ -1410,14 +1394,14 @@ NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName( D3DKMT_OPENADAPTERFROMGDIDI mutex = get_display_device_init_mutex(); size = sizeof( bufferW ); - swprintf( key_nameW, MAX_PATH, video_value_fmtW, index ); - if (RegGetValueW( HKEY_LOCAL_MACHINE, video_keyW, key_nameW, RRF_RT_REG_SZ, NULL, bufferW, &size )) + swprintf( key_nameW, MAX_PATH, L"\\Device\\Video%d", index ); + if (RegGetValueW( HKEY_LOCAL_MACHINE, L"HARDWARE\\DEVICEMAP\\VIDEO", key_nameW, RRF_RT_REG_SZ, NULL, bufferW, &size )) goto done; /* Strip \Registry\Machine\ prefix and retrieve Wine specific data set by the display driver */ lstrcpyW( key_nameW, bufferW + 18 ); size = sizeof( state_flags ); - if (RegGetValueW( HKEY_CURRENT_CONFIG, key_nameW, state_flagsW, RRF_RT_REG_DWORD, NULL, + if (RegGetValueW( HKEY_CURRENT_CONFIG, key_nameW, L"StateFlags", RRF_RT_REG_DWORD, NULL, &state_flags, &size )) goto done; @@ -1425,7 +1409,7 @@ NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName( D3DKMT_OPENADAPTERFROMGDIDI goto done; size = sizeof( bufferW ); - if (RegGetValueW( HKEY_CURRENT_CONFIG, key_nameW, gpu_idW, RRF_RT_REG_SZ, NULL, bufferW, &size )) + if (RegGetValueW( HKEY_CURRENT_CONFIG, key_nameW, L"GPUID", RRF_RT_REG_SZ, NULL, bufferW, &size )) goto done; devinfo = SetupDiCreateDeviceInfoList( &GUID_DEVCLASS_DISPLAY, NULL ); diff --git a/dlls/gdi32/enhmetafile.c b/dlls/gdi32/enhmetafile.c index c04c9be11c1..f515a444c90 100644 --- a/dlls/gdi32/enhmetafile.c +++ b/dlls/gdi32/enhmetafile.c @@ -2836,7 +2836,6 @@ typedef struct wmf_in_emf_comment HENHMETAFILE WINAPI SetWinMetaFileBits(UINT cbBuffer, const BYTE *lpbBuffer, HDC hdcRef, const METAFILEPICT *lpmfp) { - static const WCHAR szDisplayW[] = { 'D','I','S','P','L','A','Y','\0' }; HMETAFILE hmf = NULL; HENHMETAFILE ret = NULL; HDC hdc = NULL, hdcdisp = NULL; @@ -2857,7 +2856,7 @@ HENHMETAFILE WINAPI SetWinMetaFileBits(UINT cbBuffer, const BYTE *lpbBuffer, HDC if (ret) return ret; if(!hdcRef) - hdcRef = hdcdisp = CreateDCW(szDisplayW, NULL, NULL, NULL); + hdcRef = hdcdisp = CreateDCW(L"DISPLAY", NULL, NULL, NULL); if (lpmfp) { diff --git a/dlls/gdi32/enhmfdrv/init.c b/dlls/gdi32/enhmfdrv/init.c index 4ff85fa5b30..cf9fb923633 100644 --- a/dlls/gdi32/enhmfdrv/init.c +++ b/dlls/gdi32/enhmfdrv/init.c @@ -332,7 +332,6 @@ HDC WINAPI CreateEnhMetaFileW( LPCWSTR description /* [in] optional description */ ) { - static const WCHAR displayW[] = {'D','I','S','P','L','A','Y',0}; HDC ret, ref_dc; DC *dc; EMFDRV_PDEVICE *physDev; @@ -378,7 +377,7 @@ HDC WINAPI CreateEnhMetaFileW( if (hdc) /* if no ref, use current display */ ref_dc = hdc; else - ref_dc = CreateDCW( displayW, NULL, NULL, NULL ); + ref_dc = CreateDCW( L"DISPLAY", NULL, NULL, NULL ); memset( physDev->dev_caps, 0, sizeof(physDev->dev_caps) ); for (cap = 0; cap < ARRAY_SIZE( physDev->dev_caps ); cap++) diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c index a8fd9cdda66..bbda64ed557 100644 --- a/dlls/gdi32/font.c +++ b/dlls/gdi32/font.c @@ -232,57 +232,23 @@ static const CHARSETINFO FONT_tci[MAXTCIINDEX] = { { SYMBOL_CHARSET, CP_SYMBOL, {{0,0,0,0},{FS_SYMBOL,0}} } }; -static const WCHAR win9x_font_reg_key[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\', - 'W','i','n','d','o','w','s','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', - 'F','o','n','t','s','\0'}; - -static const WCHAR winnt_font_reg_key[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\', - 'W','i','n','d','o','w','s',' ','N','T','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', - 'F','o','n','t','s','\0'}; - -static const WCHAR system_fonts_reg_key[] = {'S','o','f','t','w','a','r','e','\\','F','o','n','t','s','\0'}; -static const WCHAR system_link[] = {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\', - 'W','i','n','d','o','w','s',' ','N','T','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\','F','o','n','t','L','i','n','k','\\', - 'S','y','s','t','e','m','L','i','n','k',0}; -static const WCHAR Lucida_Sans_Unicode[] = {'L','u','c','i','d','a',' ','S','a','n','s',' ','U','n','i','c','o','d','e',0}; -static const WCHAR Microsoft_Sans_Serif[] = {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0 }; -static const WCHAR Tahoma[] = {'T','a','h','o','m','a',0}; -static const WCHAR MS_UI_Gothic[] = {'M','S',' ','U','I',' ','G','o','t','h','i','c',0}; -static const WCHAR SimSun[] = {'S','i','m','S','u','n',0}; -static const WCHAR Gulim[] = {'G','u','l','i','m',0}; -static const WCHAR PMingLiU[] = {'P','M','i','n','g','L','i','U',0}; -static const WCHAR Batang[] = {'B','a','t','a','n','g',0}; - -static const WCHAR arial[] = {'A','r','i','a','l',0}; -static const WCHAR bitstream_vera_sans[] = {'B','i','t','s','t','r','e','a','m',' ','V','e','r','a',' ','S','a','n','s',0}; -static const WCHAR bitstream_vera_sans_mono[] = {'B','i','t','s','t','r','e','a','m',' ','V','e','r','a',' ','S','a','n','s',' ','M','o','n','o',0}; -static const WCHAR bitstream_vera_serif[] = {'B','i','t','s','t','r','e','a','m',' ','V','e','r','a',' ','S','e','r','i','f',0}; -static const WCHAR courier_new[] = {'C','o','u','r','i','e','r',' ','N','e','w',0}; -static const WCHAR liberation_mono[] = {'L','i','b','e','r','a','t','i','o','n',' ','M','o','n','o',0}; -static const WCHAR liberation_sans[] = {'L','i','b','e','r','a','t','i','o','n',' ','S','a','n','s',0}; -static const WCHAR liberation_serif[] = {'L','i','b','e','r','a','t','i','o','n',' ','S','e','r','i','f',0}; -static const WCHAR times_new_roman[] = {'T','i','m','e','s',' ','N','e','w',' ','R','o','m','a','n',0}; - static const WCHAR * const default_serif_list[3] = { - times_new_roman, - liberation_serif, - bitstream_vera_serif + L"Times New Roman", + L"Liberation Serif", + L"Bitstream Vera Serif" }; static const WCHAR * const default_fixed_list[3] = { - courier_new, - liberation_mono, - bitstream_vera_sans_mono + L"Courier New", + L"Liberation Mono", + L"Bitstream Vera Sans Mono" }; static const WCHAR * const default_sans_list[3] = { - arial, - liberation_sans, - bitstream_vera_sans + L"Arial", + L"Liberation Sans", + L"Bitstream Vera Sans" }; static const struct nls_update_font_list @@ -440,19 +406,11 @@ static CRITICAL_SECTION font_cs = { &critsect_debug, -1, 0, 0, 0, 0 }; static void get_fonts_data_dir_path( const WCHAR *file, WCHAR *path ) { - static const WCHAR fontsW[] = {'\\','f','o','n','t','s','\\',0}; - static const WCHAR winedatadirW[] = {'W','I','N','E','D','A','T','A','D','I','R',0}; - static const WCHAR winebuilddirW[] = {'W','I','N','E','B','U','I','L','D','D','I','R',0}; + if (GetEnvironmentVariableW( L"WINEDATADIR", path, MAX_PATH )) + lstrcatW( path, L"\\" WINE_FONT_DIR "\\" ); + else if (GetEnvironmentVariableW( L"WINEBUILDDIR", path, MAX_PATH )) + lstrcatW( path, L"\\fonts\\" ); - if (GetEnvironmentVariableW( winedatadirW, path, MAX_PATH )) - { - const char fontdir[] = "\\" WINE_FONT_DIR "\\"; - MultiByteToWideChar( CP_ACP, 0, fontdir, -1, path + lstrlenW(path), MAX_PATH - lstrlenW(path) ); - } - else if (GetEnvironmentVariableW( winebuilddirW, path, MAX_PATH )) - { - lstrcatW( path, fontsW ); - } lstrcatW( path, file ); if (path[5] == ':') memmove( path, path + 4, (lstrlenW(path) - 3) * sizeof(WCHAR) ); else path[1] = '\\'; /* change \??\ to \\?\ */ @@ -460,10 +418,8 @@ static void get_fonts_data_dir_path( const WCHAR *file, WCHAR *path ) static void get_fonts_win_dir_path( const WCHAR *file, WCHAR *path ) { - static const WCHAR fontsW[] = {'\\','f','o','n','t','s','\\',0}; - GetWindowsDirectoryW( path, MAX_PATH ); - lstrcatW( path, fontsW ); + lstrcatW( path, L"\\fonts\\" ); lstrcatW( path, file ); } @@ -538,7 +494,7 @@ static void load_gdi_font_subst(void) DWORD i = 0, type, dlen, vlen; WCHAR value[64], data[64], *p; - if (RegOpenKeyA( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes", + if (RegOpenKeyW( HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes", &hkey)) return; dlen = sizeof(data); @@ -704,7 +660,7 @@ static void load_gdi_font_replacements(void) WCHAR value[LF_FACESIZE], data[1024]; /* @@ Wine registry key: HKCU\Software\Wine\Fonts\Replacements */ - if (RegOpenKeyA( wine_fonts_key, "Replacements", &hkey )) return; + if (RegOpenKeyW( wine_fonts_key, L"Replacements", &hkey )) return; dlen = sizeof(data); vlen = ARRAY_SIZE(value); @@ -1137,10 +1093,9 @@ static void add_face_to_cache( struct gdi_font_face *face ) if (!face->scalable) { - static const WCHAR fmtW[] = {'%','d',0}; WCHAR name[10]; - swprintf( name, ARRAY_SIZE(name), fmtW, face->size.y_ppem ); + swprintf( name, ARRAY_SIZE(name), L"%d", face->size.y_ppem ); RegCreateKeyExW( hkey_family, name, 0, NULL, REG_OPTION_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey_face, NULL); } @@ -1174,9 +1129,8 @@ static void remove_face_from_cache( struct gdi_font_face *face ) if (!face->scalable) { - static const WCHAR fmtW[] = {'%','d',0}; WCHAR name[10]; - swprintf( name, ARRAY_SIZE(name), fmtW, face->size.y_ppem ); + swprintf( name, ARRAY_SIZE(name), L"%d", face->size.y_ppem ); RegDeleteKeyW( hkey_family, name ); } else RegDeleteValueW( hkey_family, face->style_name ); @@ -1269,9 +1223,9 @@ static void add_gdi_font_link_entry( struct gdi_font_link *link, const WCHAR *fa static const WCHAR * const font_links_list[] = { - Lucida_Sans_Unicode, - Microsoft_Sans_Serif, - Tahoma + L"Lucida Sans Unicode", + L"Microsoft Sans Serif", + L"Tahoma" }; static const struct font_links_defaults_list @@ -1283,27 +1237,27 @@ static const struct font_links_defaults_list } font_links_defaults_list[] = { /* Non East-Asian */ - { Tahoma, /* FIXME unverified ordering */ - { MS_UI_Gothic, SimSun, Gulim, PMingLiU, NULL } + { L"Tahoma", /* FIXME unverified ordering */ + { L"MS UI Gothic", L"SimSun", L"Gulim", L"PMingLiU", NULL } }, /* Below lists are courtesy of * http://blogs.msdn.com/michkap/archive/2005/06/18/430507.aspx */ /* Japanese */ - { MS_UI_Gothic, - { MS_UI_Gothic, PMingLiU, SimSun, Gulim, NULL } + { L"MS UI Gothic", + { L"MS UI Gothic", L"PMingLiU", L"SimSun", L"Gulim", NULL } }, /* Chinese Simplified */ - { SimSun, - { SimSun, PMingLiU, MS_UI_Gothic, Batang, NULL } + { L"SimSun", + { L"SimSun", L"PMingLiU", L"MS UI Gothic", L"Batang", NULL } }, /* Korean */ - { Gulim, - { Gulim, PMingLiU, MS_UI_Gothic, SimSun, NULL } + { L"Gulim", + { L"Gulim", L"PMingLiU", L"MS UI Gothic", L"SimSun", NULL } }, /* Chinese Traditional */ - { PMingLiU, - { PMingLiU, SimSun, MS_UI_Gothic, Batang, NULL } + { L"PMingLiU", + { L"PMingLiU", L"SimSun", L"MS UI Gothic", L"Batang", NULL } } }; @@ -1347,22 +1301,14 @@ static void populate_system_links( const WCHAR *name, const WCHAR * const *value static void load_system_links(void) { - static const WCHAR system_link[] = {'S','o','f','t','w','a','r','e','\\', - 'M','i','c','r','o','s','o','f','t','\\', - 'W','i','n','d','o','w','s',' ','N','T','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', - 'F','o','n','t','L','i','n','k','\\', - 'S','y','s','t','e','m','L','i','n','k',0}; - static const WCHAR tahoma_ttf[] = {'t','a','h','o','m','a','.','t','t','f',0}; - static const WCHAR System[] = {'S','y','s','t','e','m',0}; - static const WCHAR MS_Shell_Dlg[] = {'M','S',' ','S','h','e','l','l',' ','D','l','g',0}; HKEY hkey; DWORD i, j; const WCHAR *shelldlg_name; struct gdi_font_link *font_link, *system_font_link; struct gdi_font_face *face; - if (!RegOpenKeyW( HKEY_LOCAL_MACHINE, system_link, &hkey )) + if (!RegOpenKeyW( HKEY_LOCAL_MACHINE, + L"Software\\Microsoft\\Windows NT\\CurrentVersion\\FontLink\\SystemLink", &hkey )) { WCHAR value[MAX_PATH], data[1024]; DWORD type, val_len, data_len; @@ -1408,7 +1354,7 @@ static void load_system_links(void) RegCloseKey( hkey ); } - if ((shelldlg_name = get_gdi_font_subst( MS_Shell_Dlg, -1, NULL ))) + if ((shelldlg_name = get_gdi_font_subst( L"MS Shell Dlg", -1, NULL ))) { for (i = 0; i < ARRAY_SIZE(font_links_defaults_list); i++) { @@ -1429,13 +1375,13 @@ static void load_system_links(void) /* Explicitly add an entry for the system font, this links to Tahoma and any links that Tahoma has */ - system_font_link = add_gdi_font_link( System ); - if ((face = find_face_from_filename( tahoma_ttf, Tahoma ))) + system_font_link = add_gdi_font_link( L"System" ); + if ((face = find_face_from_filename( L"tahoma.ttf", L"Tahoma" ))) { add_gdi_font_link_entry( system_font_link, face->family->family_name, face->fs ); TRACE("Found Tahoma in %s index %u\n", debugstr_w(face->file), face->face_index); } - if ((font_link = find_gdi_font_link( Tahoma ))) + if ((font_link = find_gdi_font_link( L"Tahoma" ))) { struct gdi_font_link_entry *entry; LIST_FOR_EACH_ENTRY( entry, &font_link->links, struct gdi_font_link_entry, entry ) @@ -2174,7 +2120,6 @@ static void add_child_font( struct gdi_font *font, const WCHAR *family_name ) static void create_child_font_list( struct gdi_font *font ) { - static const WCHAR szDefaultFallbackLink[] = {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0}; struct gdi_font_link *font_link; struct gdi_font_link_entry *entry; const WCHAR* font_name; @@ -2193,9 +2138,9 @@ static void create_child_font_list( struct gdi_font *font ) * Sans Serif. This is how asian windows get default fallbacks for fonts */ if (is_dbcs_ansi_cp(GetACP()) && font->charset != SYMBOL_CHARSET && font->charset != OEM_CHARSET && - wcsicmp( font_name, szDefaultFallbackLink ) != 0) + wcsicmp( font_name, L"Microsoft Sans Serif" ) != 0) { - if ((font_link = find_gdi_font_link( szDefaultFallbackLink ))) + if ((font_link = find_gdi_font_link( L"Microsoft Sans Serif" ))) { TRACE("found entry in default fallback list\n"); LIST_FOR_EACH_ENTRY( entry, &font_link->links, struct gdi_font_link_entry, entry ) @@ -2319,16 +2264,13 @@ static void set_value_key(HKEY hkey, const char *name, const char *value) static void update_font_association_info(UINT current_ansi_codepage) { - static const char *font_assoc_reg_key = "System\\CurrentControlSet\\Control\\FontAssoc"; - static const char *assoc_charset_subkey = "Associated Charset"; - if (is_dbcs_ansi_cp(current_ansi_codepage)) { HKEY hkey; - if (RegCreateKeyA(HKEY_LOCAL_MACHINE, font_assoc_reg_key, &hkey) == ERROR_SUCCESS) + if (RegCreateKeyW(HKEY_LOCAL_MACHINE, L"System\\CurrentControlSet\\Control\\FontAssoc", &hkey) == ERROR_SUCCESS) { HKEY hsubkey; - if (RegCreateKeyA(hkey, assoc_charset_subkey, &hsubkey) == ERROR_SUCCESS) + if (RegCreateKeyW(hkey, L"Associated Charset", &hsubkey) == ERROR_SUCCESS) { switch (current_ansi_codepage) { @@ -2354,7 +2296,7 @@ static void update_font_association_info(UINT current_ansi_codepage) } } else - RegDeleteTreeA(HKEY_LOCAL_MACHINE, font_assoc_reg_key); + RegDeleteTreeW(HKEY_LOCAL_MACHINE, L"System\\CurrentControlSet\\Control\\FontAssoc"); } static void set_multi_value_key(HKEY hkey, const WCHAR *name, const WCHAR *value, DWORD len) @@ -2368,38 +2310,34 @@ static void set_multi_value_key(HKEY hkey, const WCHAR *name, const WCHAR *value static void update_font_system_link_info(UINT current_ansi_codepage) { static const WCHAR system_link_simplified_chinese[] = - {'S','I','M','S','U','N','.','T','T','C',',','S','i','m','S','u','n','\0', - 'M','I','N','G','L','I','U','.','T','T','C',',','P','M','i','n','g','L','i','u','\0', - 'M','S','G','O','T','H','I','C','.','T','T','C',',','M','S',' ','U','I',' ','G','o','t','h','i','c','\0', - 'B','A','T','A','N','G','.','T','T','C',',','B','a','t','a','n','g','\0', - '\0'}; + L"SIMSUN.TTC,SimSun\0" + L"MINGLIU.TTC,PMingLiu\0" + L"MSGOTHIC.TTC,MS UI Gothic\0" + L"BATANG.TTC,Batang\0"; static const WCHAR system_link_traditional_chinese[] = - {'M','I','N','G','L','I','U','.','T','T','C',',','P','M','i','n','g','L','i','u','\0', - 'S','I','M','S','U','N','.','T','T','C',',','S','i','m','S','u','n','\0', - 'M','S','G','O','T','H','I','C','.','T','T','C',',','M','S',' ','U','I',' ','G','o','t','h','i','c','\0', - 'B','A','T','A','N','G','.','T','T','C',',','B','a','t','a','n','g','\0', - '\0'}; + L"MINGLIU.TTC,PMingLiu\0" + L"SIMSUN.TTC,SimSun\0" + L"MSGOTHIC.TTC,MS UI Gothic\0" + L"BATANG.TTC,Batang\0"; static const WCHAR system_link_japanese[] = - {'M','S','G','O','T','H','I','C','.','T','T','C',',','M','S',' ','U','I',' ','G','o','t','h','i','c','\0', - 'M','I','N','G','L','I','U','.','T','T','C',',','P','M','i','n','g','L','i','U','\0', - 'S','I','M','S','U','N','.','T','T','C',',','S','i','m','S','u','n','\0', - 'G','U','L','I','M','.','T','T','C',',','G','u','l','i','m','\0', - '\0'}; + L"MSGOTHIC.TTC,MS UI Gothic\0" + L"MINGLIU.TTC,PMingLiU\0" + L"SIMSUN.TTC,SimSun\0" + L"GULIM.TTC,Gulim\0"; static const WCHAR system_link_korean[] = - {'G','U','L','I','M','.','T','T','C',',','G','u','l','i','m','\0', - 'M','S','G','O','T','H','I','C','.','T','T','C',',','M','S',' ','U','I',' ','G','o','t','h','i','c','\0', - 'M','I','N','G','L','I','U','.','T','T','C',',','P','M','i','n','g','L','i','U','\0', - 'S','I','M','S','U','N','.','T','T','C',',','S','i','m','S','u','n','\0', - '\0'}; + L"GULIM.TTC,Gulim\0" + L"MSGOTHIC.TTC,MS UI Gothic\0" + L"MINGLIU.TTC,PMingLiU\0" + L"SIMSUN.TTC,SimSun\0"; static const WCHAR system_link_non_cjk[] = - {'M','S','G','O','T','H','I','C','.','T','T','C',',','M','S',' ','U','I',' ','G','o','t','h','i','c','\0', - 'M','I','N','G','L','I','U','.','T','T','C',',','P','M','i','n','g','L','i','U','\0', - 'S','I','M','S','U','N','.','T','T','C',',','S','i','m','S','u','n','\0', - 'G','U','L','I','M','.','T','T','C',',','G','u','l','i','m','\0', - '\0'}; + L"MSGOTHIC.TTC,MS UI Gothic\0" + L"MINGLIU.TTC,PMingLiU\0" + L"SIMSUN.TTC,SimSun\0" + L"GULIM.TTC,Gulim\0"; HKEY hkey; - if (RegCreateKeyW(HKEY_LOCAL_MACHINE, system_link, &hkey) == ERROR_SUCCESS) + if (!RegCreateKeyW(HKEY_LOCAL_MACHINE, + L"Software\\Microsoft\\Windows NT\\CurrentVersion\\FontLink\\SystemLink", &hkey)) { const WCHAR *link; DWORD len; @@ -2426,16 +2364,15 @@ static void update_font_system_link_info(UINT current_ansi_codepage) link = system_link_non_cjk; len = sizeof(system_link_non_cjk); } - set_multi_value_key(hkey, Lucida_Sans_Unicode, link, len); - set_multi_value_key(hkey, Microsoft_Sans_Serif, link, len); - set_multi_value_key(hkey, Tahoma, link, len); + set_multi_value_key(hkey, L"Lucida Sans Unicode", link, len); + set_multi_value_key(hkey, L"Microsoft Sans Serif", link, len); + set_multi_value_key(hkey, L"Tahoma", link, len); RegCloseKey(hkey); } } static void update_codepage(void) { - static const WCHAR logpixels[] = { 'L','o','g','P','i','x','e','l','s',0 }; char buf[40], cpbuf[40]; HKEY hkey; DWORD len, type, size; @@ -2447,7 +2384,7 @@ static void update_codepage(void) if (!screen_dpi) screen_dpi = 96; size = sizeof(DWORD); - if (RegQueryValueExW(wine_fonts_key, logpixels, NULL, &type, (BYTE *)&font_dpi, &size) || + if (RegQueryValueExW(wine_fonts_key, L"LogPixels", NULL, &type, (BYTE *)&font_dpi, &size) || type != REG_DWORD || size != sizeof(DWORD)) font_dpi = 0; @@ -2467,13 +2404,13 @@ static void update_codepage(void) ansi_cp, oem_cp, screen_dpi); RegSetValueExA(wine_fonts_key, "Codepages", 0, REG_SZ, (const BYTE *)cpbuf, strlen(cpbuf)+1); - RegSetValueExW(wine_fonts_key, logpixels, 0, REG_DWORD, (const BYTE *)&screen_dpi, sizeof(screen_dpi)); + RegSetValueExW(wine_fonts_key, L"LogPixels", 0, REG_DWORD, (const BYTE *)&screen_dpi, sizeof(screen_dpi)); for (i = 0; i < ARRAY_SIZE(nls_update_font_list); i++) { if (nls_update_font_list[i].ansi_cp == ansi_cp && nls_update_font_list[i].oem_cp == oem_cp) { - if (!RegCreateKeyW( HKEY_CURRENT_CONFIG, system_fonts_reg_key, &hkey )) + if (!RegCreateKeyW( HKEY_CURRENT_CONFIG, L"Software\\Fonts", &hkey )) { RegSetValueExA(hkey, "OEMFONT.FON", 0, REG_SZ, (const BYTE *)nls_update_font_list[i].oem, strlen(nls_update_font_list[i].oem)+1); @@ -2483,17 +2420,20 @@ static void update_codepage(void) strlen(nls_update_font_list[i].system)+1); RegCloseKey(hkey); } - if (!RegCreateKeyW( HKEY_LOCAL_MACHINE, winnt_font_reg_key, &hkey )) + if (!RegCreateKeyW( HKEY_LOCAL_MACHINE, + L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts", &hkey )) { add_font_list(hkey, &nls_update_font_list[i], screen_dpi); RegCloseKey(hkey); } - if (!RegCreateKeyW( HKEY_LOCAL_MACHINE, win9x_font_reg_key, &hkey )) + if (!RegCreateKeyW( HKEY_LOCAL_MACHINE, + L"Software\\Microsoft\\Windows\\CurrentVersion\\Fonts", &hkey )) { add_font_list(hkey, &nls_update_font_list[i], screen_dpi); RegCloseKey(hkey); } - if (!RegCreateKeyA( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes", &hkey )) + if (!RegCreateKeyW( HKEY_LOCAL_MACHINE, + L"Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes", &hkey )) { RegSetValueExA(hkey, "MS Shell Dlg", 0, REG_SZ, (const BYTE *)nls_update_font_list[i].shelldlg, strlen(nls_update_font_list[i].shelldlg)+1); @@ -2520,7 +2460,7 @@ static void update_codepage(void) else { /* Delete the FontSubstitutes from other locales */ - if (!RegCreateKeyA( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes", &hkey )) + if (!RegCreateKeyW( HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes", &hkey )) { set_value_key(hkey, nls_update_font_list[i].arial_0.from, NULL); set_value_key(hkey, nls_update_font_list[i].courier_new_0.from, NULL); @@ -3609,7 +3549,6 @@ static void get_nearest_charset( const WCHAR *family_name, struct gdi_font_face static struct gdi_font *select_font( LOGFONTW *lf, FMAT2 dcmat, BOOL can_use_bitmap ) { - static const WCHAR SymbolW[] = {'S','y','m','b','o','l',0}; struct gdi_font *font; struct gdi_font_face *face; INT height; @@ -3620,7 +3559,7 @@ static struct gdi_font *select_font( LOGFONTW *lf, FMAT2 dcmat, BOOL can_use_bit SYMBOL_CHARSET so that Symbol gets picked irrespective of the original value lfCharSet. Note this is a special case for Symbol and doesn't happen at least for "Wingdings*" */ - if (!wcsicmp( lf->lfFaceName, SymbolW )) lf->lfCharSet = SYMBOL_CHARSET; + if (!wcsicmp( lf->lfFaceName, L"Symbol" )) lf->lfCharSet = SYMBOL_CHARSET; /* check the cache first */ if ((font = find_cached_gdi_font( lf, &dcmat, can_use_bitmap ))) @@ -3938,30 +3877,21 @@ static DWORD get_key_value( HKEY key, const WCHAR *name, DWORD *value ) static void init_font_options(void) { - static const WCHAR antialias_fake_bold_or_italic[] = { 'A','n','t','i','a','l','i','a','s','F','a','k','e', - 'B','o','l','d','O','r','I','t','a','l','i','c',0 }; - static const WCHAR true_options[] = { 'y','Y','t','T','1',0 }; - static const WCHAR desktopW[] = { 'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\', - 'D','e','s','k','t','o','p',0 }; - static const WCHAR smoothing[] = {'F','o','n','t','S','m','o','o','t','h','i','n','g',0}; - static const WCHAR smoothing_type[] = {'F','o','n','t','S','m','o','o','t','h','i','n','g','T','y','p','e',0}; - static const WCHAR smoothing_orientation[] = {'F','o','n','t','S','m','o','o','t','h','i','n','g', - 'O','r','i','e','n','t','a','t','i','o','n',0}; HKEY key; DWORD type, size, val; WCHAR buffer[20]; size = sizeof(buffer); - if (!RegQueryValueExW( wine_fonts_key, antialias_fake_bold_or_italic, NULL, + if (!RegQueryValueExW( wine_fonts_key, L"AntialiasFakeBoldOrItalic", NULL, &type, (BYTE *)buffer, &size) && type == REG_SZ && size >= 1) { - antialias_fakes = (wcschr(true_options, buffer[0]) != NULL); + antialias_fakes = (wcschr(L"yYtT1", buffer[0]) != NULL); } - if (!RegOpenKeyW( HKEY_CURRENT_USER, desktopW, &key )) + if (!RegOpenKeyW( HKEY_CURRENT_USER, L"Control Panel\\Desktop", &key )) { /* FIXME: handle vertical orientations even though Windows doesn't */ - if (!get_key_value( key, smoothing_orientation, &val )) + if (!get_key_value( key, L"FontSmoothingOrientation", &val )) { switch (val) { @@ -3973,9 +3903,9 @@ static void init_font_options(void) break; } } - if (!get_key_value( key, smoothing, &val ) && val /* enabled */) + if (!get_key_value( key, L"FontSmoothing", &val ) && val /* enabled */) { - if (!get_key_value( key, smoothing_type, &val ) && val == 2 /* FE_FONTSMOOTHINGCLEARTYPE */) + if (!get_key_value( key, L"FontSmoothingType", &val ) && val == 2 /* FE_FONTSMOOTHINGCLEARTYPE */) font_smoothing = subpixel_orientation; else font_smoothing = GGO_GRAY4_BITMAP; @@ -4408,14 +4338,6 @@ static DWORD get_associated_charset_info(void) if (associated_charset == -1) { - static const WCHAR assoc_charset_reg_keyW[] = {'S','y','s','t','e','m','\\', - 'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\', - 'C','o','n','t','r','o','l','\\','F','o','n','t','A','s','s','o','c','\\', - 'A','s','s','o','c','i','a','t','e','d',' ','C','h','a','r','s','e','t','\0'}; - static const WCHAR ansiW[] = {'A','N','S','I','(','0','0',')','\0'}; - static const WCHAR oemW[] = {'O','E','M','(','F','F',')','\0'}; - static const WCHAR symbolW[] = {'S','Y','M','B','O','L','(','0','2',')','\0'}; - static const WCHAR yesW[] = {'Y','E','S','\0'}; HKEY hkey; WCHAR dataW[32]; DWORD type, data_len; @@ -4423,22 +4345,22 @@ static DWORD get_associated_charset_info(void) associated_charset = 0; if (RegOpenKeyW(HKEY_LOCAL_MACHINE, - assoc_charset_reg_keyW, &hkey) != ERROR_SUCCESS) + L"System\\CurrentControlSet\\Control\\FontAssoc\\Associated Charset", &hkey)) return 0; data_len = sizeof(dataW); - if (!RegQueryValueExW(hkey, ansiW, NULL, &type, (LPBYTE)dataW, &data_len) && - type == REG_SZ && !wcsicmp(dataW, yesW)) + if (!RegQueryValueExW(hkey, L"ANSI(00)", NULL, &type, (LPBYTE)dataW, &data_len) && + type == REG_SZ && !wcsicmp(dataW, L"yes")) associated_charset |= ASSOC_CHARSET_ANSI; data_len = sizeof(dataW); - if (!RegQueryValueExW(hkey, oemW, NULL, &type, (LPBYTE)dataW, &data_len) && - type == REG_SZ && !wcsicmp(dataW, yesW)) + if (!RegQueryValueExW(hkey, L"OEM(FF)", NULL, &type, (LPBYTE)dataW, &data_len) && + type == REG_SZ && !wcsicmp(dataW, L"yes")) associated_charset |= ASSOC_CHARSET_OEM; data_len = sizeof(dataW); - if (!RegQueryValueExW(hkey, symbolW, NULL, &type, (LPBYTE)dataW, &data_len) && - type == REG_SZ && !wcsicmp(dataW, yesW)) + if (!RegQueryValueExW(hkey, L"SYMBOL(02)", NULL, &type, (LPBYTE)dataW, &data_len) && + type == REG_SZ && !wcsicmp(dataW, L"yes")) associated_charset |= ASSOC_CHARSET_SYMBOL; RegCloseKey(hkey); @@ -4504,19 +4426,15 @@ static void update_font_code_page( DC *dc, HANDLE font ) static BOOL WINAPI fill_font_gamma_ramp( INIT_ONCE *once, void *param, void **context ) { - static const WCHAR desktopW[] = { 'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\', - 'D','e','s','k','t','o','p',0 }; - static const WCHAR smoothing_gamma[] = { 'F','o','n','t','S','m','o','o','t','h','i','n','g', - 'G','a','m','m','a',0 }; struct font_gamma_ramp *ramp = param; const DWORD gamma_default = 1400; DWORD i, gamma; HKEY key; gamma = gamma_default; - if (RegOpenKeyW( HKEY_CURRENT_USER, desktopW, &key ) == ERROR_SUCCESS) + if (RegOpenKeyW( HKEY_CURRENT_USER, L"Control Panel\\Desktop", &key ) == ERROR_SUCCESS) { - if (get_key_value( key, smoothing_gamma, &gamma ) || gamma == 0) + if (get_key_value( key, L"FontSmoothingGamma", &gamma ) || gamma == 0) gamma = gamma_default; RegCloseKey( key ); @@ -6880,7 +6798,6 @@ static BOOL create_fot( const WCHAR *resource, const WCHAR *font_file, const str BOOL WINAPI CreateScalableFontResourceW( DWORD hidden, LPCWSTR resource_file, LPCWSTR font_file, LPCWSTR font_path ) { - static const WCHAR backslashW[] = {'\\',0}; struct fontdir fontdir = { 0 }; struct gdi_font *font = NULL; WCHAR path[MAX_PATH]; @@ -6896,7 +6813,7 @@ BOOL WINAPI CreateScalableFontResourceW( DWORD hidden, LPCWSTR resource_file, int len = lstrlenW( font_path ) + lstrlenW( font_file ) + 2; if (len > MAX_PATH) goto done; lstrcpynW( path, font_path, MAX_PATH ); - lstrcatW( path, backslashW ); + lstrcatW( path, L"\\" ); lstrcatW( path, font_file ); } else if (!GetFullPathNameW( font_file, MAX_PATH, path, NULL )) goto done; @@ -7801,17 +7718,12 @@ static BOOL remove_font_resource( LPCWSTR file, DWORD flags ) static void load_system_bitmap_fonts(void) { - static const WCHAR keyW[] = {'S','o','f','t','w','a','r','e','\\','F','o','n','t','s',0}; - static const WCHAR fontsW[] = {'F','O','N','T','S','.','F','O','N',0}; - static const WCHAR oemfontW[] = {'O','E','M','F','O','N','T','.','F','O','N',0}; - static const WCHAR fixedfonW[] = {'F','I','X','E','D','F','O','N','.','F','O','N',0}; - static const WCHAR * const fonts[] = { fontsW, oemfontW, fixedfonW }; - + static const WCHAR * const fonts[] = { L"FONTS.FON", L"OEMFONT.FON", L"FIXEDFON.FON" }; HKEY hkey; WCHAR data[MAX_PATH]; DWORD i, dlen, type; - if (RegOpenKeyW( HKEY_CURRENT_CONFIG, keyW, &hkey )) return; + if (RegOpenKeyW( HKEY_CURRENT_CONFIG, L"Software\\Fonts", &hkey )) return; for (i = 0; i < ARRAY_SIZE(fonts); i++) { dlen = sizeof(data); @@ -7842,30 +7754,27 @@ static void load_directory_fonts( WCHAR *path, UINT flags ) static void load_file_system_fonts(void) { - static const WCHAR pathW[] = {'P','a','t','h',0}; - static const WCHAR slashstarW[] = {'\\','*',0}; - static const WCHAR starW[] = {'*',0}; WCHAR *ptr, *next, path[MAX_PATH], value[1024]; DWORD len = ARRAY_SIZE(value); /* Windows directory */ - get_fonts_win_dir_path( starW, path ); + get_fonts_win_dir_path( L"*", path ); load_directory_fonts( path, ADDFONT_ADD_TO_CACHE ); /* Wine data directory */ - get_fonts_data_dir_path( starW, path ); + get_fonts_data_dir_path( L"*", path ); load_directory_fonts( path, ADDFONT_ADD_TO_CACHE | ADDFONT_EXTERNAL_FONT ); /* custom paths */ /* @@ Wine registry key: HKCU\Software\Wine\Fonts */ - if (!RegQueryValueExW( wine_fonts_key, pathW, NULL, NULL, (BYTE *)value, &len )) + if (!RegQueryValueExW( wine_fonts_key, L"Path", NULL, NULL, (BYTE *)value, &len )) { for (ptr = value; ptr; ptr = next) { if ((next = wcschr( ptr, ';' ))) *next++ = 0; if (next && next - ptr < 2) continue; lstrcpynW( path, ptr, MAX_PATH - 2 ); - lstrcatW( path, slashstarW ); + lstrcatW( path, L"\\*" ); load_directory_fonts( path, ADDFONT_ADD_TO_CACHE | ADDFONT_EXTERNAL_FONT ); } } @@ -7888,13 +7797,12 @@ static struct wine_rb_tree external_keys = { compare_external_key }; static HKEY load_external_font_keys(void) { - static const WCHAR externalW[] = {'E','x','t','e','r','n','a','l',' ','F','o','n','t','s',0}; WCHAR value[LF_FULLFACESIZE + 12], path[MAX_PATH]; DWORD i = 0, type, dlen, vlen; struct external_key *key; HKEY hkey; - if (RegCreateKeyW( wine_fonts_key, externalW, &hkey )) return 0; + if (RegCreateKeyW( wine_fonts_key, L"External Fonts", &hkey )) return 0; vlen = ARRAY_SIZE(value); dlen = sizeof(path); @@ -7916,17 +7824,6 @@ static HKEY load_external_font_keys(void) static void update_external_font_keys( HKEY hkey ) { - static const WCHAR win9x_keyW[] = {'S','o','f','t','w','a','r','e','\\', - 'M','i','c','r','o','s','o','f','t','\\', - 'W','i','n','d','o','w','s','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', - 'F','o','n','t','s',0}; - static const WCHAR winnt_keyW[] = {'S','o','f','t','w','a','r','e','\\', - 'M','i','c','r','o','s','o','f','t','\\', - 'W','i','n','d','o','w','s',' ','N','T','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', - 'F','o','n','t','s',0}; - static const WCHAR TrueType[] = {' ','(','T','r','u','e','T','y','p','e',')',0}; HKEY winnt_key = 0, win9x_key = 0; struct gdi_font_family *family; struct gdi_font_face *face; @@ -7937,8 +7834,10 @@ static void update_external_font_keys( HKEY hkey ) WCHAR value[LF_FULLFACESIZE + 12], path[MAX_PATH]; WCHAR *file; - RegCreateKeyExW( HKEY_LOCAL_MACHINE, winnt_keyW, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &winnt_key, NULL ); - RegCreateKeyExW( HKEY_LOCAL_MACHINE, win9x_keyW, 0, NULL, 0, KEY_ALL_ACCESS, NULL, &win9x_key, NULL ); + RegCreateKeyExW( HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts", + 0, NULL, 0, KEY_ALL_ACCESS, NULL, &winnt_key, NULL ); + RegCreateKeyExW( HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\Fonts", + 0, NULL, 0, KEY_ALL_ACCESS, NULL, &win9x_key, NULL ); /* enumerate the fonts and add external ones to the two keys */ @@ -7949,7 +7848,7 @@ static void update_external_font_keys( HKEY hkey ) if (!(face->flags & ADDFONT_EXTERNAL_FONT)) continue; lstrcpyW( value, face->full_name ); - if (face->scalable) lstrcatW( value, TrueType ); + if (face->scalable) lstrcatW( value, L" (TrueType)" ); if (GetFullPathNameW( face->file, MAX_PATH, path, NULL )) file = path; @@ -7987,17 +7886,6 @@ static void update_external_font_keys( HKEY hkey ) static void load_registry_fonts(void) { - static const WCHAR dot_fonW[] = {'.','f','o','n',0}; - static const WCHAR win9x_key[] = {'S','o','f','t','w','a','r','e','\\', - 'M','i','c','r','o','s','o','f','t','\\', - 'W','i','n','d','o','w','s','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', - 'F','o','n','t','s',0}; - static const WCHAR winnt_key[] = {'S','o','f','t','w','a','r','e','\\', - 'M','i','c','r','o','s','o','f','t','\\', - 'W','i','n','d','o','w','s',' ','N','T','\\', - 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', - 'F','o','n','t','s',0}; WCHAR value[LF_FULLFACESIZE + 12], data[MAX_PATH]; DWORD i = 0, type, dlen, vlen; struct wine_rb_entry *entry; @@ -8007,7 +7895,9 @@ static void load_registry_fonts(void) for any fonts not installed in %WINDOWSDIR%\Fonts. They will have their full path as the entry. Also look for any .fon fonts, since ReadFontDir will skip these. */ - if (RegOpenKeyW( HKEY_LOCAL_MACHINE, is_win9x() ? win9x_key : winnt_key, &hkey )) + if (RegOpenKeyW( HKEY_LOCAL_MACHINE, + is_win9x() ? L"Software\\Microsoft\\Windows\\CurrentVersion\\Fonts" : + L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts", &hkey )) return; vlen = ARRAY_SIZE(value); @@ -8027,7 +7917,7 @@ static void load_registry_fonts(void) } if (data[0] && data[1] == ':') add_font_resource( data, ADDFONT_ALLOW_BITMAP | ADDFONT_ADD_TO_CACHE ); - else if (dlen >= 6 && !wcsicmp( data + dlen - 5, dot_fonW )) + else if (dlen >= 6 && !wcsicmp( data + dlen - 5, L".fon" )) add_system_font_resource( data, ADDFONT_ALLOW_BITMAP | ADDFONT_ADD_TO_CACHE ); next: vlen = ARRAY_SIZE(value); @@ -8043,11 +7933,10 @@ static const struct font_callback_funcs callback_funcs = { add_gdi_face }; */ void font_init(void) { - static const WCHAR mutex_nameW[] = {'_','_','W','I','N','E','_','F','O','N','T','_','M','U','T','E','X','_','_',0}; HANDLE mutex; DWORD disposition; - if (RegCreateKeyExA( HKEY_CURRENT_USER, "Software\\Wine\\Fonts", 0, NULL, 0, + if (RegCreateKeyExW( HKEY_CURRENT_USER, L"Software\\Wine\\Fonts", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &wine_fonts_key, NULL )) return; @@ -8055,10 +7944,10 @@ void font_init(void) update_codepage(); if (__wine_init_unix_lib( gdi32_module, DLL_PROCESS_ATTACH, &callback_funcs, &font_funcs )) return; - if (!(mutex = CreateMutexW( NULL, FALSE, mutex_nameW ))) return; + if (!(mutex = CreateMutexW( NULL, FALSE, L"__WINE_FONT_MUTEX__" ))) return; WaitForSingleObject( mutex, INFINITE ); - RegCreateKeyExA( wine_fonts_key, "Cache", 0, NULL, REG_OPTION_VOLATILE, + RegCreateKeyExW( wine_fonts_key, L"Cache", 0, NULL, REG_OPTION_VOLATILE, KEY_ALL_ACCESS, NULL, &wine_fonts_cache_key, &disposition ); if (disposition == REG_CREATED_NEW_KEY) @@ -8281,14 +8170,11 @@ UINT WINAPI GetTextCharset(HDC hdc) LONG WINAPI GdiGetCharDimensions(HDC hdc, LPTEXTMETRICW lptm, LONG *height) { SIZE sz; - static const WCHAR alphabet[] = { - 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q', - 'r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H', - 'I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',0}; if(lptm && !GetTextMetricsW(hdc, lptm)) return 0; - if(!GetTextExtentPointW(hdc, alphabet, 52, &sz)) return 0; + if(!GetTextExtentPointW(hdc, L"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 52, &sz)) + return 0; if (height) *height = sz.cy; return (sz.cx / 26 + 1) / 2; diff --git a/dlls/gdi32/gdiobj.c b/dlls/gdi32/gdiobj.c index d717476027b..29e55adc4eb 100644 --- a/dlls/gdi32/gdiobj.c +++ b/dlls/gdi32/gdiobj.c @@ -126,17 +126,15 @@ static CRITICAL_SECTION gdi_section = { &critsect_debug, -1, 0, 0, 0, 0 }; static const LOGFONTW OEMFixedFont = { 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, OEM_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, {'\0'} }; + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"" }; static const LOGFONTW AnsiFixedFont = { 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} }; + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }; static const LOGFONTW AnsiVarFont = { 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','a','n','s',' ','S','e','r','i','f','\0'} }; + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Sans Serif" }; /****************************************************************************** * @@ -170,309 +168,253 @@ static const struct DefaultFontInfo default_fonts[] = { ANSI_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { EASTEUROPE_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { RUSSIAN_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, RUSSIAN_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, RUSSIAN_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, RUSSIAN_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, RUSSIAN_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { GREEK_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GREEK_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GREEK_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GREEK_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GREEK_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { TURKISH_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, TURKISH_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, TURKISH_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, TURKISH_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, TURKISH_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { HEBREW_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, HEBREW_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, HEBREW_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HEBREW_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HEBREW_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { ARABIC_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ARABIC_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ARABIC_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ARABIC_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ARABIC_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { BALTIC_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, BALTIC_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, BALTIC_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, BALTIC_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, BALTIC_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { THAI_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, THAI_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, THAI_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, THAI_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, THAI_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { SHIFTJIS_CHARSET, { /* System */ 18, 8, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 18, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { GB2312_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GB2312_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GB2312_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GB2312_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GB2312_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { HANGEUL_CHARSET, { /* System */ 16, 8, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { CHINESEBIG5_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, { JOHAB_CHARSET, { /* System */ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, JOHAB_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* Device Default */ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, JOHAB_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'S','y','s','t','e','m','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"System" }, { /* System Fixed */ 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, JOHAB_CHARSET, - 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, - {'C','o','u','r','i','e','r','\0'} + 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Courier" }, { /* DefaultGuiFont */ -12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, JOHAB_CHARSET, - 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, - {'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'} + 0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS, L"MS Shell Dlg" }, }, }; @@ -596,9 +538,6 @@ BOOL GDI_dec_ref_count( HGDIOBJ handle ) return entry != NULL; } -static const WCHAR dpi_key_name[] = {'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\','D','e','s','k','t','o','p','\0'}; -static const WCHAR def_dpi_key_name[] = {'S','o','f','t','w','a','r','e','\\','F','o','n','t','s','\0'}; -static const WCHAR dpi_value_name[] = {'L','o','g','P','i','x','e','l','s','\0'}; /****************************************************************************** * get_reg_dword @@ -633,9 +572,9 @@ DWORD get_dpi(void) { DWORD dpi; - if (get_reg_dword(HKEY_CURRENT_USER, dpi_key_name, dpi_value_name, &dpi)) + if (get_reg_dword(HKEY_CURRENT_USER, L"Control Panel\\Desktop", L"LogPixels", &dpi)) return dpi; - if (get_reg_dword(HKEY_CURRENT_CONFIG, def_dpi_key_name, dpi_value_name, &dpi)) + if (get_reg_dword(HKEY_CURRENT_CONFIG, L"Software\\Fonts", L"LogPixels", &dpi)) return dpi; return 0; } @@ -651,8 +590,7 @@ DWORD get_system_dpi(void) if (!pGetDpiForSystem) { - static const WCHAR user32W[] = {'u','s','e','r','3','2','.','d','l','l',0}; - HMODULE user = GetModuleHandleW( user32W ); + HMODULE user = GetModuleHandleW( L"user32.dll" ); if (user) pGetDpiForSystem = (void *)GetProcAddress( user, "GetDpiForSystem" ); } return pGetDpiForSystem ? pGetDpiForSystem() : 96; diff --git a/dlls/gdi32/opengl.c b/dlls/gdi32/opengl.c index 57cdf8dd26b..37e832d1759 100644 --- a/dlls/gdi32/opengl.c +++ b/dlls/gdi32/opengl.c @@ -33,7 +33,6 @@ #include "gdi_private.h" -static const WCHAR opengl32W[] = {'o','p','e','n','g','l','3','2','.','d','l','l',0}; static HMODULE opengl32; static INT (WINAPI *wglChoosePixelFormat)(HDC,const PIXELFORMATDESCRIPTOR *); static INT (WINAPI *wglDescribePixelFormat)(HDC,INT,UINT,PIXELFORMATDESCRIPTOR*); @@ -65,7 +64,7 @@ INT WINAPI ChoosePixelFormat( HDC hdc, const PIXELFORMATDESCRIPTOR *pfd ) { if (!wglChoosePixelFormat) { - if (!opengl32) opengl32 = LoadLibraryW( opengl32W ); + if (!opengl32) opengl32 = LoadLibraryW( L"opengl32.dll" ); if (!(wglChoosePixelFormat = (void *)GetProcAddress( opengl32, "wglChoosePixelFormat" ))) return 0; } @@ -79,7 +78,7 @@ INT WINAPI DescribePixelFormat( HDC hdc, INT fmt, UINT size, PIXELFORMATDESCRIPT { if (!wglDescribePixelFormat) { - if (!opengl32) opengl32 = LoadLibraryW( opengl32W ); + if (!opengl32) opengl32 = LoadLibraryW( L"opengl32.dll" ); if (!(wglDescribePixelFormat = (void *)GetProcAddress( opengl32, "wglDescribePixelFormat" ))) return 0; } @@ -93,7 +92,7 @@ INT WINAPI GetPixelFormat( HDC hdc ) { if (!wglGetPixelFormat) { - if (!opengl32) opengl32 = LoadLibraryW( opengl32W ); + if (!opengl32) opengl32 = LoadLibraryW( L"opengl32.dll" ); if (!(wglGetPixelFormat = (void *)GetProcAddress( opengl32, "wglGetPixelFormat" ))) return 0; } @@ -107,7 +106,7 @@ BOOL WINAPI SetPixelFormat( HDC hdc, INT fmt, const PIXELFORMATDESCRIPTOR *pfd ) { if (!wglSetPixelFormat) { - if (!opengl32) opengl32 = LoadLibraryW( opengl32W ); + if (!opengl32) opengl32 = LoadLibraryW( L"opengl32.dll" ); if (!(wglSetPixelFormat = (void *)GetProcAddress( opengl32, "wglSetPixelFormat" ))) return FALSE; } @@ -121,7 +120,7 @@ BOOL WINAPI SwapBuffers( HDC hdc ) { if (!wglSwapBuffers) { - if (!opengl32) opengl32 = LoadLibraryW( opengl32W ); + if (!opengl32) opengl32 = LoadLibraryW( L"opengl32.dll" ); if (!(wglSwapBuffers = (void *)GetProcAddress( opengl32, "wglSwapBuffers" ))) return FALSE; } diff --git a/dlls/gdi32/region.c b/dlls/gdi32/region.c index 878b73f8c94..fba2e125731 100644 --- a/dlls/gdi32/region.c +++ b/dlls/gdi32/region.c @@ -1437,14 +1437,13 @@ INT mirror_region( HRGN dst, HRGN src, INT width ) */ BOOL WINAPI MirrorRgn( HWND hwnd, HRGN hrgn ) { - static const WCHAR user32W[] = {'u','s','e','r','3','2','.','d','l','l',0}; static BOOL (WINAPI *pGetWindowRect)( HWND hwnd, LPRECT rect ); RECT rect; /* yes, a HWND in gdi32, don't ask */ if (!pGetWindowRect) { - HMODULE user32 = GetModuleHandleW(user32W); + HMODULE user32 = GetModuleHandleW(L"user32.dll"); if (!user32) return FALSE; if (!(pGetWindowRect = (void *)GetProcAddress( user32, "GetWindowRect" ))) return FALSE; }