[NTUSER] Implement NtUserSetThreadLayoutHandles (#4277)

- Modify NtUserSetThreadLayoutHandles prototype.
- Implement NtUserSetThreadLayoutHandles function.
CORE-11700
This commit is contained in:
Katayama Hirofumi MZ 2022-01-12 14:48:20 +09:00 committed by GitHub
parent 28959a2dfd
commit ea1353e4be
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 4 deletions

View file

@ -3313,7 +3313,7 @@ NtUserSetSystemTimer(
UINT uElapse,
TIMERPROC lpTimerFunc);
DWORD
VOID
NTAPI
NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL);

View file

@ -1023,12 +1023,31 @@ Quit:
return Status;
}
DWORD
VOID
APIENTRY
NtUserSetThreadLayoutHandles(HKL hNewKL, HKL hOldKL)
{
STUB;
return 0;
PTHREADINFO pti;
PKL pOldKL, pNewKL;
UserEnterExclusive();
pti = GetW32ThreadInfo();
pOldKL = pti->KeyboardLayout;
if (pOldKL && pOldKL->hkl != hOldKL)
goto Quit;
pNewKL = UserHklToKbl(hNewKL);
if (!pNewKL)
goto Quit;
if (IS_IME_HKL(hNewKL) != IS_IME_HKL(hOldKL))
pti->hklPrev = hOldKL;
pti->KeyboardLayout = pNewKL;
Quit:
UserLeave();
}
BOOL