Files
Katayama Hirofumi MZ ffa1c541aa [MSCTFIME][CICERO] Implement CicProfile::GetActiveLanguageProfile (#8869)
Supporting CTF IMEs.
JIRA issue: CORE-19360
- Add base/ctf/cicero/ciciface.h to
  add CicInterface_RefCnt template
  class.
- Add CicProfile::
  LanguageProfilesCallback callback
  function.
- Implement CicProfile::
  GetActiveLanguageProfile and
  CicProfile::IsIME functions.
2026-04-20 21:51:45 +09:00

64 lines
1.6 KiB
C++

/*
* PROJECT: ReactOS msctfime.ime
* LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
* PURPOSE: Profile of msctfime.ime
* COPYRIGHT: Copyright 2024-2026 Katayama Hirofumi MZ <[email protected]>
*/
#pragma once
#include "sinks.h"
class CicProfile : public IUnknown
{
protected:
typedef struct tagLANG_PROF_ENUM_ARG
{
GUID catid;
TF_LANGUAGEPROFILE profile;
} LANG_PROF_ENUM_ARG, *PLANG_PROF_ENUM_ARG;
ITfInputProcessorProfiles *m_pIPProfiles;
CActiveLanguageProfileNotifySink *m_pActiveLanguageProfileNotifySink;
LANGID m_LangID1;
WORD m_padding1;
DWORD m_dwFlags;
UINT m_nCodePage;
LANGID m_LangID2;
WORD m_padding2;
DWORD m_dwUnknown1;
LONG m_cRefs;
static INT CALLBACK
ActiveLanguageProfileNotifySinkCallback(
REFGUID rguid1,
REFGUID rguid2,
BOOL fActivated,
LPVOID pUserData);
public:
CicProfile();
virtual ~CicProfile();
// IUnknown interface
STDMETHODIMP QueryInterface(REFIID riid, LPVOID* ppvObj) override;
STDMETHODIMP_(ULONG) AddRef() override;
STDMETHODIMP_(ULONG) Release() override;
HRESULT
GetActiveLanguageProfile(
_In_ HKL hKL,
_In_ REFGUID catid,
_Out_ TF_LANGUAGEPROFILE* pProfile);
HRESULT GetLangId(_Out_ LANGID *pLangID);
HRESULT GetCodePageA(_Out_ UINT *puCodePage);
HRESULT InitProfileInstance(_Inout_ TLS *pTLS);
HRESULT IsIME(HKL hKL);
static HRESULT CALLBACK
LanguageProfilesCallback(
_In_ TF_LANGUAGEPROFILE profile,
_Inout_opt_ LPARAM lParam);
};