SetDefaultLayoutOrTipUserReg 함수
지정된 키보드 레이아웃 또는 텍스트 서비스를 사용자 레지스트리의 기본 입력 항목으로 설정합니다.
구문
BOOL CALLBACK SetDefaultLayoutOrTipUserReg(
_In_opt_ LPCWSTR pszUserReg,
_In_opt_ LPCWSTR pszSystemReg,
_In_opt_ LPCWSTR pszSoftwareReg,
_In_ LPCWSTR psz,
_In_ DWORD dwFlags
);
매개 변수
-
pszUserReg [in, optional]
-
사용자의 레지스트리 경로입니다. 이 매개 변수가 NULL이면 HKEY_CURRENT_USER 사용됩니다.
-
pszSystemReg [in, optional]
-
시스템의 레지스트리 경로입니다. 이 매개 변수가 NULL이면 HKEY_LOCAL_MACHINE\System이 사용됩니다.
-
pszSoftwareReg [in, optional]
-
소프트웨어의 레지스트리 경로입니다. 이 매개 변수가 NULL이면 HKEY_LOCAL_MACHINE\Software가 사용됩니다.
-
psz [in]
-
키보드 레이아웃 목록 또는 텍스트 서비스 프로필 목록을 나타내는 문자열입니다.
-
dwFlags [in]
-
다음 플래그를 지정하는 비트 필드입니다.
참고 항목
다음 식별자는 공용 헤더 파일에 정의되지 않습니다. 16진수 값을 사용하거나 식별자를 #define 합니다. 예를 들어 SDLOT_NOAPPLYTOCURRENTSESSION 사용하려면 코드에 #define SDLOT_NOAPPLYTOCURRENTSESSION 0x00000001 포함해야 합니다.
값 의미 - SDLOT_NOAPPLYTOCURRENTSESSION
- 0x00000001
레지스트리에 설정을 저장하지만 현재 세션의 런타임 키보드 설정은 업데이트하지 않습니다. SetDefaultLayoutOrTipUserReg에서 대체 레지스트리 경로가 설정된 경우 이 플래그를 설정해야 합니다. - SDLOT_APPLYTOCURRENTTHREAD
- 0x00000002
현재 스레드에서 즉시 설정을 적용합니다.
반환 값
반환 코드 | 설명 |
---|---|
|
함수가 성공했습니다. |
|
지정되지 않은 오류가 발생했습니다. |
설명
레이아웃 목록의 문자열 형식은 다음과 같습니다.
<LangID 1>:<KLID 1>;[ ...<LangID N>:<KLID N>
텍스트 서비스 프로필 목록의 문자열 형식은 다음과 같습니다.
<LangID 1>:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx};
다음은 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을 로드하여 애플리케이션의 보안을 손상시킬 수 있습니다. 다양한 버전의 Microsoft Windows에서 DLL을 올바르게 로드하는 방법에 대한 자세한 내용은 Dynamic-Link 라이브러리 검색 순서 를 참조하세요.
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);
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 |
Windows Server 2008 [데스크톱 앱만 해당] |
DLL |
|