Функция SetDefaultLayoutOrTipUserReg
Задает указанный макет клавиатуры или текстовую службу в качестве входного элемента реестра пользователей по умолчанию.
Синтаксис
BOOL CALLBACK SetDefaultLayoutOrTipUserReg(
_In_opt_ LPCWSTR pszUserReg,
_In_opt_ LPCWSTR pszSystemReg,
_In_opt_ LPCWSTR pszSoftwareReg,
_In_ LPCWSTR psz,
_In_ DWORD dwFlags
);
Параметры
-
pszUserReg [in, необязательный]
-
Путь к реестру пользователя. Если этот параметр имеет значение NULL, используется HKEY_CURRENT_USER.
-
pszSystemReg [in, необязательный]
-
Путь к реестру системы. Если этот параметр имеет значение NULL, используется HKEY_LOCAL_MACHINE\System.
-
pszSoftwareReg [in, необязательный]
-
Путь к реестру программного обеспечения. Если этот параметр имеет значение NULL, используется HKEY_LOCAL_MACHINE\Software.
-
psz [in]
-
Строка, представляющая список макетов клавиатуры или список профилей текстовых служб.
-
dwFlags [in]
-
Битовое поле, указывающее следующие флаги:
Примечание.
Следующие идентификаторы не определены в общедоступном файле заголовка. Необходимо либо использовать шестнадцатеричное значение, либо #define идентификаторов. Например, чтобы использовать SDLOT_NOAPPLYTOCURRENTSESSION, необходимо включить #define SDLOT_NOAPPLYTOCURRENTSESSION 0x00000001 в код.
Значение Значение - SDLOT_NOAPPLYTOCURRENTSESSION
- 0x00000001
Сохраняет параметр в реестре, но не обновляет параметр клавиатуры среды выполнения текущего сеанса. Если альтернативный путь реестра задан в SetDefaultLayoutOrTipUserReg, этот флаг должен быть установлен. - SDLOT_APPLYTOCURRENTTHREAD
- 0x00000002
Применяет параметр немедленно к текущему потоку.
Возвращаемое значение
Код возврата | Description |
---|---|
|
Функция была успешной. |
|
Произошла неизвестная ошибка. |
Замечания
Строковый формат списка макетов:
<LangID 1>:<KLID 1>;[ ...<LangID N>:<KLID N>
Строковый формат списка профилей текстовых служб:
<LangID 1>:{xxxx-xxxx-xxxx-xxxx}{xxxx-xxxx};
Ниже приведен пример значения для параметра psz :
"0x0407:0x00000407"
"0x0407:0x00000407;0x040C:0x0000040C"
"0x0407:0x00000407;0x0412:{A028AE76-01B1-46C2-99C4-ACD9858AE02F}{B5FE1F02-D5F2-4445-9C03-C568F23C99A1};0x040C:0x0000040C"
Примеры
Не существует библиотеки импорта, которая определяет эту функцию, поэтому необходимо получить указатель на эту функцию с помощью LoadLibrary и GetProcAddress. В следующем примере показано, как получить указатель на эту функцию.
Примечание.
Использование LoadLibrary неправильно может нарушить безопасность приложения, загрузив неправильную библиотеку DLL. Сведения о том, как правильно загружать библиотеки DLL с различными версиями Microsoft Windows, см. в порядке поиска библиотек динамической компоновки.
typedef HRESULT (
WINAPI *PTF_ SETDEFAULTLAYOUTORTIPUSERREG)( LPCWSTR pszUserReg,
LPCWSTR pszSystemReg,
LPCWSTR pszSoftwareReg,
LPCWSTR psz);
HMODULE hInputDLL = LoadLibrary(TEXT("input.dll"));
BOOL bRet = FALSE;
if(hInputDLL == NULL)
{
//Error loading module -- fail as securely as possible
}
else
{
PTF_ SETDEFAULTLAYOUTORTIPUSERREG pfnSetDefaultLayoutOrTipUserReg;
pfnSetDefaultLayoutOrTipUserReg = (PTF_ SETDEFAULTLAYOUTORTIPUSERREG)GetProcAddress(hInputDLL, "SetDefaultLayoutOrTipUserReg");
if(pfnSetDefaultLayoutOrTipUserReg)
{
bRet = (*pfnSetDefaultLayoutOrTipUserReg)( pszUserReg, pszSystemReg, pszSoftwareReg, psz);
}
FreeLibrary(hInputDLL);
}
Requirements
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 [только классические приложения] |
DLL-библиотеки |
|