SetDefaultLayoutOrTip function
Sets the specified keyboard layout or a text service as the default input item of the current user.
Syntax
BOOL CALLBACK SetDefaultLayoutOrTip(
_In_ LPCWSTR psz,
_In_ LPCWSTR psz DWORD dwFlags
);
Parameters
-
psz [in]
-
A string that represents a keyboard layout list or a text services profile list.
-
dwFlags [in]
-
A bitfield that specifies the following flags.
Note
The following identifiers are not defined in a public header file. You must either use the hexadecimal value or #define the identifiers. For example, to use SDLOT_NOAPPLYTOCURRENTSESSION you must include #define SDLOT_NOAPPLYTOCURRENTSESSION 0x00000001 in your code.
Value Meaning - SDLOT_NOAPPLYTOCURRENTSESSION
- 0x00000001
Stores the setting in the registry but does not update the runtime keyboard setting of the current session. If the alternative registry path is set in SetDefaultLayoutOrTipUserReg, this flag should be set. - SDLOT_APPLYTOCURRENTTHREAD
- 0x00000002
Applies the setting immediately on the current thread.
Return value
Return code | Description |
---|---|
|
The function was successful. |
|
An unspecified error occurred. |
Remarks
The string format of the layout list is:
<LangID 1>:<KLID 1>;[...<LangID N>:<KLID N>
The string format of the text service profile list is:
<LangID 1>:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx};
The following is an example of a value for the psz parameter:
"0x0407:0x00000407"
"0x0407:0x00000407;0x040C:0x0000040C"
"0x0407:0x00000407;0x0412:{A028AE76-01B1-46C2-99C4-ACD9858AE02F}{B5FE1F02-D5F2-4445-9C03-C568F23C99A1};0x040C:0x0000040C"
Examples
There is no import library available that defines this function, so it is necessary to obtain a pointer to this function using LoadLibrary and GetProcAddress. The following example demonstrates how to obtain a pointer to this function.
Note
Using LoadLibrary incorrectly can compromise the security of your application by loading the wrong DLL. Refer to Dynamic-Link Library Search Order for information on how to correctly load DLLs with different versions of Microsoft Windows.
typedef HRESULT (WINAPI *PTF_ SETDEFAULTLAYOUTORTIP)(LPCWSTR psz);
HMODULE hInputDLL = LoadLibrary(TEXT("input.dll"));
BOOL bRet = FALSE;
if(hInputDLL == NULL)
{
// Error loading module; fail as securely as possible.
}
else
{
PTF_ SETDEFAULTLAYOUTORTIP pfnSetDefaultLayoutOrTip;
pfnSetDefaultLayoutOrTip = (PTF_ SETDEFAULTLAYOUTORTIP)GetProcAddress(hInputDLL, "SetDefaultLayoutOrTip");
if(pfnSetDefaultLayoutOrTip)
{
bRet = (*pfnSetDefaultLayoutOrTip)(psz);
}
FreeLibrary(hInputDLL);
}
Requirements
Requirement | Value |
---|---|
Minimum supported client |
Windows Vista [desktop apps only] |
Minimum supported server |
Windows Server 2008 [desktop apps only] |
DLL |
|