mirror of
https://github.com/reactos/reactos.git
synced 2025-05-07 02:41:22 +00:00
[NTUSER] Implement NtUserSetImeInfoEx (#4276)
- Modify NtUserSetImeInfoEx prototype. - Add UserSetImeInfoEx helper function. - Implement NtUserSetImeInfoEx function. CORE-11700
This commit is contained in:
parent
36740ca981
commit
1f44693657
2 changed files with 54 additions and 7 deletions
|
@ -3186,7 +3186,7 @@ NtUserSetImeHotKey(
|
|||
DWORD Unknown3,
|
||||
DWORD Unknown4);
|
||||
|
||||
DWORD
|
||||
BOOL
|
||||
NTAPI
|
||||
NtUserSetImeInfoEx(
|
||||
PIMEINFOEX pImeInfoEx);
|
||||
|
|
|
@ -260,13 +260,60 @@ NtUserSetAppImeLevel(
|
|||
return 0;
|
||||
}
|
||||
|
||||
DWORD
|
||||
APIENTRY
|
||||
NtUserSetImeInfoEx(
|
||||
PIMEINFOEX pImeInfoEx)
|
||||
BOOL FASTCALL UserSetImeInfoEx(LPVOID pUnknown, PIMEINFOEX pImeInfoEx)
|
||||
{
|
||||
STUB;
|
||||
return 0;
|
||||
PKL pklHead, pkl;
|
||||
|
||||
pkl = pklHead = gspklBaseLayout;
|
||||
|
||||
do
|
||||
{
|
||||
if (pkl->hkl != pImeInfoEx->hkl)
|
||||
{
|
||||
pkl = pkl->pklNext;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!pkl->piiex)
|
||||
return FALSE;
|
||||
|
||||
if (!pkl->piiex->fLoadFlag)
|
||||
*pkl->piiex = *pImeInfoEx;
|
||||
|
||||
return TRUE;
|
||||
} while (pkl != pklHead);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
NtUserSetImeInfoEx(PIMEINFOEX pImeInfoEx)
|
||||
{
|
||||
BOOL ret = FALSE;
|
||||
IMEINFOEX ImeInfoEx;
|
||||
|
||||
UserEnterExclusive();
|
||||
|
||||
if (!IS_IMM_MODE())
|
||||
goto Quit;
|
||||
|
||||
_SEH2_TRY
|
||||
{
|
||||
ProbeForRead(pImeInfoEx, sizeof(*pImeInfoEx), 1);
|
||||
ImeInfoEx = *pImeInfoEx;
|
||||
}
|
||||
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
|
||||
{
|
||||
goto Quit;
|
||||
}
|
||||
_SEH2_END;
|
||||
|
||||
ret = UserSetImeInfoEx(NULL, &ImeInfoEx);
|
||||
|
||||
Quit:
|
||||
UserLeave();
|
||||
return ret;
|
||||
}
|
||||
|
||||
DWORD APIENTRY
|
||||
|
|
Loading…
Reference in a new issue