29 static const QITAB c_tab[] =
34 return ::QISearch(
this, c_tab,
riid, ppvObj);
40 return ::InterlockedIncrement(&
m_cRefs);
109 if (!pTLS->m_pThreadMgr)
118 imeContext.
get().m_pCicIC = pCicIC;
124 imeContext.
get().m_pCicIC =
NULL;
157 imeContext.
get().m_dwCicFlags |= 1;
162 imeContext.
get().m_pCicIC =
NULL;
165 imeContext.
get().m_pCicIC =
NULL;
223 return imeContext.
m_hr;
233 if (imcLock.
get().fOpen)
239 pThreadMgr->RequestPostponedLock(pContext);
246 return imeContext.
m_hr;
262 pData->m_pBridge->CreateInputContext(
pData->m_pTLS, hIMC);
271 pData->m_pBridge->DestroyInputContext(
pData->m_pTLS, hIMC);
321 pThreadMgr->SetSysHookSink(
this);
324 if (pTLS->m_bDestroyed)
353 pTLS->m_bDestroyed =
TRUE;
356 if (pThreadMgr->QueryInterface(IID_ITfSourceSingle, (
void **)&pSource) ==
S_OK)
364 pThreadMgr->Deactivate();
377 pThreadMgr->SetSysHookSink(
NULL);
392 if (!pTLS->m_pThreadMgr)
399 hr = pThreadMgr->
QueryInterface(IID_ITfThreadMgr_P, (
void **)&pTLS->m_pThreadMgr);
420 if (!pTLS->m_pProfile)
423 if (!pTLS->m_pProfile)
426 hr = pTLS->m_pProfile->InitProfileInstance(pTLS);
464 if (pTLS->m_pProfile)
466 pTLS->m_pProfile->Release();
467 pTLS->m_pProfile =
NULL;
477 if (pTLS->m_pThreadMgr)
479 pTLS->m_pThreadMgr->Release();
480 pTLS->m_pThreadMgr =
NULL;
512 for (
INT i = 0;
i < cTransMsgs; ++
i, ++pTransMsgs)
642 return imeContext.
m_hr;
665 return imeContext.
m_hr;
715 return imeContext.
m_hr;
837 if (!pCicIC || !pProfile)
841 pProfile->GetCodePageA(&uCodePage);
845 !lpComp || *(
WORD*)lpComp ||
851 lpComp, dwCompLen, lpRead, dwReadLen,
874 return imeContext.
m_hr;
906 DWORD dwDimFlags = 0;
911 return !!(dwDimFlags & 0x1);
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
struct ENUM_CREATE_DESTROY_IC * PENUM_CREATE_DESTROY_IC
void TFUninitLib_Thread(PCIC_LIBTHREAD pLibThread)
static INT CALLBACK DIMCallback(UINT nCode, ITfDocumentMgr *pDocMgr1, ITfDocumentMgr *pDocMgr2, LPVOID pUserData)
void SetCallbackPV(_Inout_ LPVOID pv)
HRESULT _Advise(ITfThreadMgr *pThreadMgr)
STDMETHODIMP OnPreFocusDIM(HWND hwnd) override
@implemented
ITfContext * GetInputContext(CicIMCCLock< CTFIMECONTEXT > &imeContext)
@implemented
LRESULT EscapeKorean(TLS *pTLS, HIMC hIMC, UINT uSubFunc, LPVOID lpData)
@implemented
static BOOL IsOwnDim(ITfDocumentMgr *pDocMgr)
@implemented
HRESULT DestroyInputContext(TLS *pTLS, HIMC hIMC)
@implemented
HRESULT CreateInputContext(TLS *pTLS, HIMC hIMC)
@implemented
BOOL ProcessKey(TLS *pTLS, ITfThreadMgr_P *pThreadMgr, HIMC hIMC, WPARAM wParam, LPARAM lParam, CONST LPBYTE lpbKeyState, INT *pnUnknown60)
@unimplemented
HRESULT SetActiveContextAlways(TLS *pTLS, HIMC hIMC, BOOL fActive, HWND hWnd, HKL hKL)
LRESULT EscHanjaMode(TLS *pTLS, HIMC hIMC, LPVOID lpData)
@unimplemented
virtual ~CicBridge()
@implemented
static BOOL CALLBACK EnumCreateInputContextCallback(HIMC hIMC, LPARAM lParam)
CThreadMgrEventSink * m_pThreadMgrEventSink
ITfDocumentMgr * m_pDocMgr
void PostTransMsg(_In_ HWND hWnd, _In_ INT cTransMsgs, _In_ const TRANSMSG *pTransMsgs)
@implemented
BOOL SetCompositionString(TLS *pTLS, ITfThreadMgr_P *pThreadMgr, HIMC hIMC, DWORD dwIndex, LPCVOID lpComp, DWORD dwCompLen, LPCVOID lpRead, DWORD dwReadLen)
@implemented
STDMETHODIMP QueryInterface(REFIID riid, LPVOID *ppvObj) override
@implemented
HRESULT OnSetOpenStatus(TLS *pTLS, ITfThreadMgr_P *pThreadMgr, CicIMCLock &imcLock, CicInputContext *pCicIC)
@implemented
HRESULT ActivateIMMX(_Inout_ TLS *pTLS, _Inout_ ITfThreadMgr_P *pThreadMgr)
@implemented
static BOOL CALLBACK EnumDestroyInputContextCallback(HIMC hIMC, LPARAM lParam)
STDMETHODIMP OnSysKeyboardProc(UINT, LONG) override
@unimplemented
HRESULT SelectEx(_Inout_ TLS *pTLS, _Inout_ ITfThreadMgr_P *pThreadMgr, _In_ HIMC hIMC, _In_ BOOL fSelect, _In_ HKL hKL)
HRESULT ToAsciiEx(TLS *pTLS, ITfThreadMgr_P *pThreadMgr, UINT uVirtKey, UINT uScanCode, CONST LPBYTE lpbKeyState, LPTRANSMSGLIST lpTransBuf, UINT fuState, HIMC hIMC, UINT *pResult)
@unimplemented
HRESULT ConfigureRegisterWord(_Inout_ TLS *pTLS, _In_ ITfThreadMgr *pThreadMgr, _In_ HKL hKL, _In_ HWND hWnd, _Inout_opt_ LPVOID lpData)
@implemented
HRESULT Notify(TLS *pTLS, ITfThreadMgr_P *pThreadMgr, HIMC hIMC, DWORD dwAction, DWORD dwIndex, DWORD_PTR dwValue)
@implemented
BOOL UnInitIMMX(_Inout_ TLS *pTLS)
@implemented
HRESULT DeactivateIMMX(_Inout_ TLS *pTLS, _Inout_ ITfThreadMgr_P *pThreadMgr)
@implemented
CIC_LIBTHREAD m_LibThread
BOOL DoOpenCandidateHanja(ITfThreadMgr_P *pThreadMgr, CicIMCLock &imcLock, CicInputContext *pCicIC)
@unimplemented
ITfDocumentMgr * GetDocumentManager(_Inout_ CicIMCCLock< CTFIMECONTEXT > &imeContext)
@implemented
HRESULT OnSetConversionSentenceMode(ITfThreadMgr_P *pThreadMgr, CicIMCLock &imcLock, CicInputContext *pCicIC, DWORD dwValue, LANGID LangID)
@unimplemented
void SetAssociate(TLS *pTLS, HWND hWnd, HIMC hIMC, ITfThreadMgr_P *pThreadMgr, ITfDocumentMgr *pDocMgr)
@unimplemented
HRESULT InitIMMX(_Inout_ TLS *pTLS)
@implemented
STDMETHODIMP OnSysShellProc(INT, UINT, LONG) override
@implemented
ITfKeystrokeMgr * m_pKeystrokeMgr
HRESULT ConfigureGeneral(_Inout_ TLS *pTLS, _In_ ITfThreadMgr *pThreadMgr, _In_ HKL hKL, _In_ HWND hWnd)
@implemented
INPUTCONTEXTDX & get() const
BOOL ValidCompositionString()
BOOL SetCompositionString(CicIMCLock &imcLock, ITfThreadMgr_P *pThreadMgr, DWORD dwIndex, LPCVOID lpComp, DWORD dwCompLen, LPCVOID lpRead, DWORD dwReadLen, UINT uCodePage)
@unimplemented
HRESULT EscbCompComplete(CicIMCLock &imcLock)
@unimplemented
ITfDocumentMgr * m_pDocumentMgr
HRESULT OnSetCandidatePos(TLS *pTLS, CicIMCLock &imcLock)
@unimplemented
HRESULT DestroyInputContext()
@unimplemented
HRESULT EscbCompCancel(CicIMCLock &imcLock)
@unimplemented
HRESULT CreateInputContext(_Inout_ ITfThreadMgr *pThreadMgr, _Inout_ CicIMCLock &imcLock)
@unimplemented
HRESULT GetLangId(_Out_ LANGID *pLangID)
@implemented
HRESULT GetActiveLanguageProfile(_In_ HKL hKL, _In_ REFGUID rguid, _Out_ TF_LANGUAGEPROFILE *pProfile)
@unimplemented
virtual ULONG Release(__in_opt PVOID Tag=NULL, __in LONG Line=0, __in_opt PSTR File=NULL)
static TLS * PeekTLS()
@implemented
ITfThreadMgr_P * m_pThreadMgr
HRESULT GetCompartmentDWORD(IUnknown *pUnknown, REFGUID rguid, LPDWORD pdwValue, BOOL bThread)
@implemented
HRESULT InitDisplayAttrbuteLib(PCIC_LIBTHREAD pLibThread)
@implemented
HRESULT UninitDisplayAttrbuteLib(PCIC_LIBTHREAD pLibThread)
@implemented
BOOL IsEALang(_In_opt_ LANGID LangID)
HRESULT SetCompartmentDWORD(TfEditCookie cookie, IUnknown *pUnknown, REFGUID rguid, DWORD dwValue, BOOL bThread)
@implemented
BOOL WINAPI ImmNotifyIME(HIMC hIMC, DWORD dwAction, DWORD dwIndex, DWORD_PTR dwValue)
HIMC WINAPI ImmGetContext(HWND hWnd)
BOOL WINAPI ImmEnumInputContext(DWORD dwThreadId, IMCENUMPROC lpfn, LPARAM lParam)
HIMCC WINAPI ImmCreateIMCC(DWORD size)
HIMCC WINAPI ImmDestroyIMCC(HIMCC block)
FxWmiProvider * pProvider
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define IMC_SETCANDIDATEPOS
#define IME_ESC_QUERY_SUPPORT
#define IMC_SETCOMPOSITIONWINDOW
#define IME_ESC_HANJA_MODE
#define IMC_SETCOMPOSITIONFONT
#define IMC_SETOPENSTATUS
#define IMC_SETCONVERSIONMODE
#define IMC_SETSENTENCEMODE
#define NI_CONTEXTUPDATED
#define NI_COMPOSITIONSTR
HRESULT UnadviseSingleSink([in] TfClientId tid, [in] REFIID riid)
HRESULT AdviseSingleSink([in] TfClientId tid, [in] REFIID riid, [in, iid_is(riid)] IUnknown *punk)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
HRESULT WINAPI TF_CreateThreadMgr(ITfThreadMgr **pptim)
EXTERN_C const GUID GUID_TFCAT_TIP_KEYBOARD
EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_OPENCLOSE
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define QITABENT(Cthis, Ifoo)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR _In_opt_ USHORT LangID
HWND WINAPI GetFocus(void)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)