# 2.1.25.1 ActivateKeyboardLayout

## Description

This function sets the input locale identifier (formerly called the keyboard layout handle) for the calling thread or the current process. The input locale identifier specifies a locale as well as the physical layout of the keyboard.

## Syntax

HKL ActivateKeyboardLayout( HKL hkl, UINT Flags = 0 )

## Parameters

hkl
[input] Input locale identifier to be activated.
The input locale identifier must have been loaded by a previous call to the LoadKeyboardLayout function.
This parameter must be either the handle to a keyboard layout or one of the following values.
HKL_NEXT Selects the next locale identifier in the circular list of loaded locale identifiers maintained by the system.
HKL_PREV Selects the previous locale identifier in the circular list of loaded locale identifiers maintained by the system.
Flags
[input] Specifies how the input locale identifier is to be activated. This parameter can be one of the following values.
KLF_REORDER If this bit is set, the system's circular list of loaded locale identifiers is reordered by moving the locale identifier to the head of the list.
If this bit is not set, the list is rotated without a change of order.
KLF_RESET If set but KLF_SHIFTLOCK is not set, the Caps Lock state is turned off by pressing the Caps Lock key again.
If set and KLF_SHIFTLOCK is also set, the Caps Lock state is turned off by pressing either SHIFT key.
These two methods are mutually exclusive, and the setting persists as part of the User's profile in the registry.
KLF_SETFORPROCESS Activates the specified locale identifier for the entire process and sends the WM_INPUTLANGCHANGE message to the current thread's Focus or Active window.
KLF_SHIFTLOCK This is used with KLF_RESET. See KLF_RESET for an explanation.