Perform automatic bitmap font configuration based on the current locale

Huw D M Davies h.davies1 at physics.ox.ac.uk
Tue Dec 14 03:41:14 CST 2004


On Mon, Dec 13, 2004 at 11:39:58PM +0800, Dmitry Timoshkov wrote:
> Hello,
> 
> due to a GDI bug new values don't actually work, and that's another
> thing I'm going to look at.
> 
> Changelog:
>     Dmitry Timoshkov <dmitry at codeweavers.com>
>     Perform automatic bitmap font configuration based on the current locale.
> 
> diff -up cvs/hq/wine/dlls/kernel/locale.c wine/dlls/kernel/locale.c
> --- cvs/hq/wine/dlls/kernel/locale.c	2004-11-22 17:52:19.000000000 +0800
> +++ wine/dlls/kernel/locale.c	2004-12-13 23:25:50.000000000 +0800
> @@ -5,6 +5,7 @@
>   * Copyright 1998 David Lee Lambert
>   * Copyright 2000 Julio C?sar G?zquez
>   * Copyright 2002 Alexandre Julliard for CodeWeavers
> + * Copyright 2003, 2004 Dmitry Timoshkov
>   *
>   * This library is free software; you can redistribute it and/or
>   * modify it under the terms of the GNU Lesser General Public
> @@ -226,25 +227,175 @@ inline static HKEY create_registry_key(v
>  {
>      static const WCHAR intlW[] = {'C','o','n','t','r','o','l',' ','P','a','n','e','l','\\',
>                                    'I','n','t','e','r','n','a','t','i','o','n','a','l',0};
> -    OBJECT_ATTRIBUTES attr;
> -    UNICODE_STRING nameW;
>      HKEY hkey;
>  
>      if (RtlOpenCurrentUser( KEY_ALL_ACCESS, &hkey ) != STATUS_SUCCESS) return 0;
>  
> -    attr.Length = sizeof(attr);
> -    attr.RootDirectory = hkey;
> -    attr.ObjectName = &nameW;
> -    attr.Attributes = 0;
> -    attr.SecurityDescriptor = NULL;
> -    attr.SecurityQualityOfService = NULL;
> -    RtlInitUnicodeString( &nameW, intlW );
> +    return NLS_RegOpenSubKey( hkey, intlW );
> +}
>  
> -    if (NtCreateKey( &hkey, KEY_ALL_ACCESS, &attr, 0, NULL, 0, NULL ) != STATUS_SUCCESS) hkey = 0;
> -    NtClose( attr.RootDirectory );
> -    return hkey;
> +/***********************************************************************
> + *		create_fonts_registry_key
> + *
> + * Create the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\\Fonts
> + * registry subkey.
> + */
> +inline static HKEY create_fonts_registry_key(void)
> +{
> +    static const WCHAR fontsW[] = {
> +        'M','a','c','h','i','n','e','\\','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};
> +
> +    return NLS_RegOpenKey( 0, fontsW );
>  }

You should probably put them under
HKLM\Software\Microsoft\Windows\CurrentVersion\Fonts too.  (Or at
least use this key for winver=win9x, since this is where we'll look
if running in win9x mode).

Huw.
-- 
Huw Davies
huw at codeweavers.com



More information about the wine-devel mailing list