|
Overview |
|
|
|
Group |
|
|
|
Quick Info
Windows NT
| Yes
| Win95
| Yes
| Win32s
| No
| Import Library
| user32.lib
| Header File
| winuser.h
| Unicode
| WinNT
| Platform Notes
| Windows 95: Only 1 keybrd loaded at once
|
|
|
LoadKeyboardLayout
The implementations of
LoadKeyboardLayout in Windows 95 and Windows NT are substantially different. To accommodate
these differences, this reference page first presents the Windows 95 implementation
in its entirety, followed by the Windows NT version.
Windows 95:
The
LoadKeyboardLayout function loads a new keyboard layout into the system. Several keyboard
layouts can be loaded at a time, but only one per process is active at a time.
Loading multiple keyboard layouts makes it possible to rapidly switch between layouts.
HKL LoadKeyboardLayout(
LPCTSTR pwszKLID,
| // name of layout to load
|
UINT Flags
| // keyboard layout flags
|
);
|
|
Parameters
pwszKLID
Points to the buffer that specifies the name of the keyboard layout. This name
is a string composed from the hexadecimal value of the primary 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. For a list of the primary language
identifiers and secondary language identifiers that make up a language identifier,
see the
MAKELANGID macro.
Flags
Specifies how the keyboard layout is to be loaded. This parameter can be one
of the following values:
Value
| Meaning
|
KLF_ACTIVATE
| If the given layout is not already loaded, the function loads and activates
the layout for the current thread, inserting the layout at the head of the
keyboard layouts list in front of the previously active layout. If the layout is
already loaded and the KLF_REORDER value is not given, the function simply rotates
the keyboard layouts list, making the next layout the active layout.
|
KLF_NOTELLSHELL
| Prevents a ShellProc hook procedure from receiving an HSHELL_LANGUAGE hook code when the new
layout is loaded. This value is typically used when an application loads multiple
layouts, one after another. Applying this value to all but the last layout delays
the shell's processing until all layouts have been added.
|
KLF_REORDER
| Moves the given layout to the head of the keyboard layouts list, making that
layout the active layout for the current thread. This value reorders the
keyboard layouts list even if KLF_ACTIVATE is not given.
|
KLF_REPLACELANG
| If the new layout has the same language identifier as a current layout, the
new layout replaces the current one as the layout for that language. If this
value is not given and the layouts have the same language identifiers, the current
layout is not replaced and the function returns NULL.
|
KLF_SUBSTITUTE_OK
| Substitues the given keyboard layout with another layout preferred by the
user. The substitution occurs only if the registry key HKEY_CURRENT_USER\Keyboard Layout\Substitutes explicitly defines a substitution layout. For example, if the key includes
the value name "00000409" with value "00010409", loading the U.S. English layout
("00000409") causes the Dvorak U.S. English layout ("00010409") to be loaded
instead. The system uses KLF_SUBSTITUTE_OK when booting and it is recommended
that all applications use this value too.
|
Return Values
If the function succeeds, the return value is the keyboard layout handle of
the layout matched with the requested name or NULL if no matching keyboard is
available.
Remarks
If a layout is to be loaded with the same language as a previously loaded one
and the KLF_REPLACELANG flag is
not set, the call fails. Only one loaded layout may be associated with a given
language. (It is acceptable for multiple IMEs to be loaded with associations to
the same language.)
An application can and will typically want to load the default layout or IME
for a language and can do so by specifying only a string version of the language
identifier. If an application wants to load a specific layout or IME, it
should read the registry to determine the specific layout identifier to pass to
LoadKeyboardLayout. In this case, a request to activate the default keyboard layout handle for a
locale will activate the first matching one. A specific IME should be
activated using an explicit keyboard layout handle returned from one of
GetKeyboardLayout,
GetKeyboardLayoutList or
LoadKeyboardLayout.
See Also
ActivateKeyboardLayout,
GetKeyboardLayout,
GetKeyboardLayoutName,
MAKELANGID,
UnloadKeyboardLayout
Windows NT:
The
LoadKeyboardLayout function loads a keyboard layout.
HKL LoadKeyboardLayout(
LPCTSTR pwszKLID,
| // address of buffer for layout name
|
UINT Flags
| // keyboard layout flags
|
);
|
|
Parameters
pwszKLID
Points to the buffer that specifies the name of the keyboard layout. The name
should be derived from the hexadecimal value of the language identifier
corresponding to the layout. 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. For a list of the primary language identifiers and sub-language
identifiers that make up a language identifier, see the
MAKELANGID macro.
Flags
Specifies how the keyboard layout is to be loaded. This parameter can be one
of the following values:
Value
| Meaning
|
KLF_ACTIVATE
| The function loads the layout if it is not already loaded, and activates it.
This value activates the layout for the entire system not just the calling
thread.
|
KLF_REORDER
| This flag is meaningful only if the KLF_ACTIVATE flag is set and the layout is
already loaded. If these conditions are met and the KLF_REORDER bit is set,
the function removes the specified layout from its position in the system's
circular list of loaded layouts, and places it at the head of the list as the active
layout.
|
| If the KLF_ACTIVATE bit is set and the layout is loaded but the KLF_REORDER
bit is not set, the function simply rotates the system's circular list of loaded
layouts.
|
| If the KLF_ACTIVATE flag is set and the layout is not already loaded, it is
loaded as the active layout and inserted in the system's circular list of
keyboard layouts ahead of the previously active layout.
|
KLF_SUBSTITUTE_OK
| The specified layout is looked up in the user's profile (in the registry under
the key HKEY_CURRENT_USER\Keyboard Layout\Substitutes) to find a substitution layout preferred by the user. For example, if there
was a value in this section of name "00000409" equal to "00010409", loading the
U.S. English layout ("00000409") with the KLF_SUBSTITUTE_OK flag set would
cause the Dvorak U.S. English layout ("00010409") to be loaded.
|
KLF_UNLOADPREVIOUS
| If KLF_ACTIVATE is specified, and the layout is loaded and activated
successfully, the function unloads the previously active layout. Otherwise, the function
ignores this flag.
|
Return Values
If the function succeeds, the return value is the handle of the keyboard
layout.
If the function fails, the return value is NULL. To get extended error
information, call
GetLastError.
Remarks
Several keyboard layouts can be loaded at a time, but only one at a time is
active. Loading multiple keyboard layouts makes it possible to switch rapidly
between layouts.
See Also
ActivateKeyboardLayout,
GetKeyboardLayoutName,
UnloadKeyboardLayout
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database