mirror of
https://github.com/reactos/reactos.git
synced 2024-07-05 12:15:46 +00:00
[IMM32] Rewrite ImmGetCandidateWindow (#3823)
Rewrite ImmGetCandidateWindow function. CORE-11700
This commit is contained in:
parent
ad370238d7
commit
0966e32146
|
@ -45,6 +45,8 @@
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(imm);
|
WINE_DEFAULT_DEBUG_CHANNEL(imm);
|
||||||
|
|
||||||
#define IMM_INIT_MAGIC 0x19650412
|
#define IMM_INIT_MAGIC 0x19650412
|
||||||
|
#define IMM_INVALID_CANDFORM ULONG_MAX
|
||||||
|
|
||||||
BOOL WINAPI User32InitializeImmEntryTable(DWORD);
|
BOOL WINAPI User32InitializeImmEntryTable(DWORD);
|
||||||
|
|
||||||
typedef struct _tagImmHkl{
|
typedef struct _tagImmHkl{
|
||||||
|
@ -1449,22 +1451,25 @@ DWORD WINAPI ImmGetCandidateListW(
|
||||||
BOOL WINAPI ImmGetCandidateWindow(
|
BOOL WINAPI ImmGetCandidateWindow(
|
||||||
HIMC hIMC, DWORD dwIndex, LPCANDIDATEFORM lpCandidate)
|
HIMC hIMC, DWORD dwIndex, LPCANDIDATEFORM lpCandidate)
|
||||||
{
|
{
|
||||||
InputContextData *data = get_imc_data(hIMC);
|
BOOL ret = FALSE;
|
||||||
|
LPINPUTCONTEXT pIC;
|
||||||
|
LPCANDIDATEFORM pCF;
|
||||||
|
|
||||||
TRACE("%p, %d, %p\n", hIMC, dwIndex, lpCandidate);
|
TRACE("ImmGetCandidateWindow(%p, %lu, %p)\n", hIMC, dwIndex, lpCandidate);
|
||||||
|
|
||||||
if (!data || !lpCandidate)
|
pIC = ImmLockIMC(hIMC);
|
||||||
|
if (pIC == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (dwIndex >= ARRAY_SIZE(data->IMC.cfCandForm))
|
pCF = &pIC->cfCandForm[dwIndex];
|
||||||
return FALSE;
|
if (pCF->dwIndex != IMM_INVALID_CANDFORM)
|
||||||
|
{
|
||||||
|
*lpCandidate = *pCF;
|
||||||
|
ret = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if (data->IMC.cfCandForm[dwIndex].dwIndex != dwIndex)
|
ImmUnlockIMC(hIMC);
|
||||||
return FALSE;
|
return ret;
|
||||||
|
|
||||||
*lpCandidate = data->IMC.cfCandForm[dwIndex];
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID APIENTRY LogFontAnsiToWide(const LOGFONTA *plfA, LPLOGFONTW plfW)
|
static VOID APIENTRY LogFontAnsiToWide(const LOGFONTA *plfA, LPLOGFONTW plfW)
|
||||||
|
|
Loading…
Reference in a new issue