[MSCTFIME] Implement CicBridge::EscapeKorean (#6585)

Supporting TIPs...
JIRA issue: CORE-19360
- Add CicBridge::EscHanjaMode.
- Add code to CicBridge::EscapeKorean.
This commit is contained in:
Katayama Hirofumi MZ 2024-03-09 11:59:37 +09:00 committed by GitHub
parent 299abf7c87
commit 1ee014525c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 35 additions and 1 deletions

View file

@ -736,9 +736,41 @@ CicBridge::SetCompositionString(
/// @unimplemented
LRESULT
CicBridge::EscHanjaMode(TLS *pTLS, HIMC hIMC, LPVOID lpData)
{
CicIMCLock imcLock(hIMC);
if (FAILED(imcLock.m_hr))
return imcLock.m_hr;
CicIMCCLock<CTFIMECONTEXT> imeContext(imcLock.get().hCtfImeContext);
if (FAILED(imeContext.m_hr))
return imeContext.m_hr;
CicInputContext *pCicIC = imeContext.get().m_pCicIC;
if (!pCicIC)
return TRUE;
if (pCicIC->m_bCandidateOpen)
return TRUE;
pCicIC->m_dwUnknown6_5[4] |= 0x1;
//FIXME
pCicIC->m_dwUnknown6_5[4] &= ~0x1;
return TRUE;
}
/// @implemented
LRESULT
CicBridge::EscapeKorean(TLS *pTLS, HIMC hIMC, UINT uSubFunc, LPVOID lpData)
{
return 0; // FIXME
if (uSubFunc == IME_ESC_QUERY_SUPPORT)
return *(DWORD*)lpData == IME_ESC_HANJA_MODE;
if (uSubFunc == IME_ESC_HANJA_MODE)
return EscHanjaMode(pTLS, hIMC, lpData);
return 0;
}
/// @implemented

View file

@ -28,6 +28,8 @@ protected:
static BOOL CALLBACK EnumCreateInputContextCallback(HIMC hIMC, LPARAM lParam);
static BOOL CALLBACK EnumDestroyInputContextCallback(HIMC hIMC, LPARAM lParam);
LRESULT EscHanjaMode(TLS *pTLS, HIMC hIMC, LPVOID lpData);
public:
CicBridge();
virtual ~CicBridge();