https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e6cb6d257a6f6d9c4aa283419525ddc039edde96
commit e6cb6d257a6f6d9c4aa283419525ddc039edde96 Author: Katayama Hirofumi MZ <katayama.hirofumi...@gmail.com> AuthorDate: Thu Dec 21 11:04:02 2023 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi...@gmail.com> CommitDate: Thu Dec 21 11:04:02 2023 +0900 [MSCTFIME] Implement CicInputContext::GetGuidAtom CORE-19360 --- dll/ime/msctfime/msctfime.cpp | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/dll/ime/msctfime/msctfime.cpp b/dll/ime/msctfime/msctfime.cpp index f5f2e592ea4..c63aab280f3 100644 --- a/dll/ime/msctfime/msctfime.cpp +++ b/dll/ime/msctfime/msctfime.cpp @@ -503,10 +503,32 @@ HRESULT CCompartmentEventSink::_Unadvise() * CicInputContext */ +class CInputContextOwnerCallBack; + /* FIXME */ class CicInputContext : public ITfContextOwnerCompositionSink { + DWORD m_dw[2]; LONG m_cRefs; + HIMC m_hIMC; + ITfDocumentMgr *m_pDocumentMgr; + ITfContext *m_pContext; + DWORD m_dw0_0[1]; + CInputContextOwnerCallBack *m_pICOwnerCallback; + DWORD m_dw0; + CCompartmentEventSink *m_pCompEventSink1; + CCompartmentEventSink *m_pCompEventSink2; + DWORD m_dw0_5[4]; + DWORD m_dw1[2]; + DWORD m_dwQueryPos; + DWORD m_dw1_5[1]; + GUID m_guid; + DWORD m_dw2[19]; + WORD m_cGuidAtoms; + WORD m_padding; + DWORD m_adwGuidAtoms[256]; + DWORD m_dw3[19]; + public: CicInputContext() { @@ -529,7 +551,7 @@ public: HRESULT GetGuidAtom( _Inout_ IMCLock& imcLock, - _In_ DWORD dwUnknown, + _In_ BYTE iAtom, _Out_opt_ LPDWORD pdwGuidAtom); HRESULT DestroyInputContext(); @@ -612,24 +634,28 @@ CicInputContext::OnEndComposition( } /** - * @unimplemented + * @implemented */ HRESULT CicInputContext::GetGuidAtom( _Inout_ IMCLock& imcLock, - _In_ DWORD dwUnknown, + _In_ BYTE iAtom, _Out_opt_ LPDWORD pdwGuidAtom) { IMCCLock<CTFIMECONTEXT> imeContext(imcLock.get().hCompStr); - HRESULT hr = imeContext.m_hr; if (!imeContext) hr = E_FAIL; - if (FAILED(hr)) return hr; - // FIXME + hr = E_FAIL; + if (iAtom < m_cGuidAtoms) + { + *pdwGuidAtom = m_adwGuidAtoms[iAtom]; + hr = S_OK; + } + return hr; }