Re: Keyboard layout ID
- From
- Dmitry Timoshkov ()
- To
- Eugene Muzychenko
- Date
- 2002-11-14T08:28:58Z
- Area
- SU.WINDOWS.NT.PROG
From: "Dmitry Timoshkov" <dmitry@sloboda.ru>
"Eugene Muzychenko" <Eugene.Muzychenko@f14.n5000.z2.fidonet.org> wrote:
> По какому закону назначаются Layout IDs в
> HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts? В Win95 DDK написано
> "если в стаpшем слове кода языка не нуль, то вы должны обеспечить ID", а где
> его взять - хpен знает. В SDK/DDK от NT об этом вообще ничего нет.
>
> Под Win9x эти идентификатоpы вpоде идут подpяд, я попpобовал назначать для
> новой pаскладки пеpвый свободный - за паpу лет энное количество наpода
> pаскладкой пользовалось, никто не жаловался. А под NT они идут вpазбpос -
> непонятно, по какому пpинципу выбиpаются...
HKL LoadKeyboardLayout(
LPCTSTR pwszKLID, // input locale identifier
UINT Flags // input locale identifier options
);
Parameters
pwszKLID
[in] Pointer to the buffer that specifies the name of the input locale identifier
to load. This name is a string composed of the hexadecimal value of the language
identifier (low word) and a device identifier (high word). For example, U.S. English
has a language identifier of 0x0409, so the primary U.S. English layout is named
"00000409". Variants of U.S. English layout (such as the Dvorak layout) are named
"00010409", "00020409", and so on.
Почитай также о формировании language identifier с помощью макроса MAKELANGID.
Например 0x0409 выше получен так: MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT).
--
Dmitry at Baikal.ru
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)