mirror of
https://github.com/reactos/reactos.git
synced 2026-07-01 02:24:47 +08:00
[NTUSER] Improve NtUserGetThreadState (#4300)
- Improve enum ThreadStateRoutines. - Improve NtUserGetThreadState function. - Improve CLIENTIMC structure. - Improve imm32 code. CORE-17732
This commit is contained in:
committed by
GitHub
parent
2318f7f436
commit
41b87158ff
@@ -49,7 +49,7 @@ BOOL APIENTRY Imm32InquireIme(PIMEDPI pImeDpi)
|
||||
DWORD dwSysInfoFlags = 0;
|
||||
LPIMEINFO pImeInfo = &pImeDpi->ImeInfo;
|
||||
|
||||
if (NtUserGetThreadState(16))
|
||||
if (NtUserGetThreadState(THREADSTATE_ISWINLOGON2))
|
||||
dwSysInfoFlags |= IME_SYSINFO_WINLOGON;
|
||||
|
||||
if (IS_IME_HKL(pImeDpi->hKL))
|
||||
@@ -633,9 +633,8 @@ HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
|
||||
if (!Imm32IsImmMode())
|
||||
return NULL;
|
||||
|
||||
// FIXME: NtUserGetThreadState and enum ThreadStateRoutines are broken.
|
||||
if (hWnd == NULL)
|
||||
return (HWND)NtUserGetThreadState(3);
|
||||
return (HWND)NtUserGetThreadState(THREADSTATE_DEFAULTIMEWINDOW);
|
||||
|
||||
return (HWND)NtUserQueryWindow(hWnd, QUERY_WINDOW_DEFAULT_IME);
|
||||
}
|
||||
|
||||
@@ -606,8 +606,7 @@ HIMC WINAPI ImmCreateContext(void)
|
||||
|
||||
RtlInitializeCriticalSection(&pClientImc->cs);
|
||||
|
||||
// FIXME: NtUserGetThreadState and enum ThreadStateRoutines are broken.
|
||||
pClientImc->unknown = NtUserGetThreadState(13);
|
||||
pClientImc->dwCompatFlags = (DWORD)NtUserGetThreadState(THREADSTATE_IMECOMPATFLAGS);
|
||||
|
||||
return hIMC;
|
||||
}
|
||||
@@ -925,8 +924,7 @@ PCLIENTIMC WINAPI ImmLockClientImc(HIMC hImc)
|
||||
|
||||
RtlInitializeCriticalSection(&pClientImc->cs);
|
||||
|
||||
// FIXME: NtUserGetThreadState and enum ThreadStateRoutines are broken.
|
||||
pClientImc->unknown = NtUserGetThreadState(13);
|
||||
pClientImc->dwCompatFlags = (DWORD)NtUserGetThreadState(THREADSTATE_IMECOMPATFLAGS);
|
||||
|
||||
if (!NtUserUpdateInputContext(hImc, UIC_CLIENTIMCDATA, (DWORD_PTR)pClientImc))
|
||||
{
|
||||
@@ -979,8 +977,7 @@ static HIMC APIENTRY Imm32GetContextEx(HWND hWnd, DWORD dwContextFlags)
|
||||
|
||||
if (!hWnd)
|
||||
{
|
||||
// FIXME: NtUserGetThreadState and enum ThreadStateRoutines are broken.
|
||||
hIMC = (HIMC)NtUserGetThreadState(4);
|
||||
hIMC = (HIMC)NtUserGetThreadState(THREADSTATE_DEFAULTINPUTCONTEXT);
|
||||
goto Quit;
|
||||
}
|
||||
|
||||
@@ -1275,8 +1272,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
|
||||
return TRUE;
|
||||
|
||||
hKL = GetKeyboardLayout(0);
|
||||
// FIXME: NtUserGetThreadState and enum ThreadStateRoutines are broken.
|
||||
hIMC = (HIMC)NtUserGetThreadState(4);
|
||||
hIMC = (HIMC)NtUserGetThreadState(THREADSTATE_DEFAULTINPUTCONTEXT);
|
||||
Imm32CleanupContext(hIMC, hKL, TRUE);
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user