169 ITfDocumentMgr_Release(
This->focus);
192 FIXME(
"Left Over ITfDocumentMgr. Should we do something with it?\n");
216 *ppvOut = &
This->ITfThreadMgrEx_iface;
220 *ppvOut = &
This->ITfSource_iface;
222 else if (
IsEqualIID(iid, &IID_ITfKeystrokeMgr))
224 *ppvOut = &
This->ITfKeystrokeMgr_iface;
226 else if (
IsEqualIID(iid, &IID_ITfMessagePump))
228 *ppvOut = &
This->ITfMessagePump_iface;
232 *ppvOut = &
This->ITfClientId_iface;
234 else if (
IsEqualIID(iid, &IID_ITfCompartmentMgr))
236 *ppvOut =
This->CompartmentMgr;
238 else if (
IsEqualIID(iid, &IID_ITfUIElementMgr))
240 *ppvOut = &
This->ITfUIElementMgr_iface;
242 else if (
IsEqualIID(iid, &IID_ITfSourceSingle))
244 *ppvOut = &
This->ITfSourceSingle_iface;
249 ITfThreadMgrEx_AddRef(iface);
283 return ITfThreadMgrEx_ActivateEx(iface,
id, 0);
291 if (
This->activationCount == 0)
294 This->activationCount --;
296 if (
This->activationCount == 0)
300 ITfThreadMgrEventSink_OnSetFocus(&
This->ITfThreadMgrEventSink_iface, 0,
This->focus);
301 ITfDocumentMgr_Release(
This->focus);
317 TRACE(
"(%p)\n",iface);
319 if (mgrentry ==
NULL)
326 mgrentry->
docmgr = *ppdim;
354 *ppdimFocus =
This->focus;
361 ITfDocumentMgr_AddRef(
This->focus);
375 else if (
FAILED(ITfDocumentMgr_QueryInterface(pdimFocus,&IID_ITfDocumentMgr,(
LPVOID*) &
check)))
378 ITfThreadMgrEventSink_OnSetFocus(&
This->ITfThreadMgrEventSink_iface,
check,
This->focus);
381 ITfDocumentMgr_Release(
This->focus);
394 ERR(
"Hook proc but no ThreadMgr for this thread. Serious Error\n");
397 if (!
This->focusHook)
399 ERR(
"Hook proc but no ThreadMgr focus Hook. Serious Error\n");
412 TRACE(
"Triggering Associated window focus\n");
425 if (!
This->focusHook)
429 if (!
This->focusHook)
431 ERR(
"Unable to set focus hook\n");
459 ITfDocumentMgr_AddRef(wnd->
docmgr);
488 *pfThreadFocus = (focus ==
NULL);
550 This->activationCount++;
587 return ITfThreadMgrEx_QueryInterface(&
This->ITfThreadMgrEx_iface, iid, ppvOut);
593 return ITfThreadMgrEx_AddRef(&
This->ITfThreadMgrEx_iface);
599 return ITfThreadMgrEx_Release(&
This->ITfThreadMgrEx_iface);
612 if (!
riid || !punk || !pdwCookie)
620 WARN(
"semi-stub for ITfThreadFocusSink: sink won't be used.\n");
626 WARN(
"semi-stub for ITfActiveLanguageProfileNotifySink: sink won't be used.\n");
627 return advise_sink(&
This->ActiveLanguageProfileNotifySink, &IID_ITfActiveLanguageProfileNotifySink,
633 WARN(
"semi-stub for ITfKeyTraceEventSink: sink won't be used.\n");
634 return advise_sink(&
This->KeyTraceEventSink, &IID_ITfKeyTraceEventSink,
640 WARN(
"semi-stub for ITfUIElementSink: sink won't be used.\n");
645 if (
IsEqualIID(
riid, &IID_ITfInputProcessorProfileActivationSink))
647 WARN(
"semi-stub for ITfInputProcessorProfileActivationSink: sink won't be used.\n");
648 return advise_sink(&
This->InputProcessorProfileActivationSink, &IID_ITfInputProcessorProfileActivationSink,
689 return ITfThreadMgrEx_QueryInterface(&
This->ITfThreadMgrEx_iface, iid, ppvOut);
695 return ITfThreadMgrEx_AddRef(&
This->ITfThreadMgrEx_iface);
701 return ITfThreadMgrEx_Release(&
This->ITfThreadMgrEx_iface);
724 if (
FAILED(ITfKeyEventSink_QueryInterface(pSink,&IID_ITfKeyEventSink,(
LPVOID*) &
check)))
731 if (
This->foregroundKeyEventSink)
733 ITfKeyEventSink_OnSetFocus(
This->foregroundKeyEventSink,
FALSE);
734 ITfKeyEventSink_Release(
This->foregroundKeyEventSink);
736 ITfKeyEventSink_AddRef(
check);
739 This->foregroundTextService = textservice;
765 ITfKeyEventSink_Release(
check);
767 if (
This->foregroundKeyEventSink ==
check)
769 ITfKeyEventSink_Release(
This->foregroundKeyEventSink);
770 This->foregroundKeyEventSink =
NULL;
787 *pclsid =
This->foregroundTextService;
841 if (!rguid || !pprekey || !pfRegistered)
849 *pfRegistered =
TRUE;
854 *pfRegistered =
FALSE;
868 if (!
tid || ! rguid || !prekey || (cchDesc && !pchDesc))
875 return TF_E_ALREADY_EXISTS;
882 newkey->
guid = *rguid;
910 if (!pprekey || !rguid)
983 return ITfThreadMgrEx_QueryInterface(&
This->ITfThreadMgrEx_iface, iid, ppvOut);
989 return ITfThreadMgrEx_AddRef(&
This->ITfThreadMgrEx_iface);
995 return ITfThreadMgrEx_Release(&
This->ITfThreadMgrEx_iface);
1004 *pfResult =
PeekMessageA(pMsg,
hwnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg);
1024 *pfResult =
PeekMessageW(pMsg,
hwnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg);
1056 return ITfThreadMgrEx_QueryInterface(&
This->ITfThreadMgrEx_iface, iid, ppvOut);
1062 return ITfThreadMgrEx_AddRef(&
This->ITfThreadMgrEx_iface);
1068 return ITfThreadMgrEx_Release(&
This->ITfThreadMgrEx_iface);
1082 hr = ITfCategoryMgr_RegisterGUID(catmgr,rclsid,ptid);
1083 ITfCategoryMgr_Release(catmgr);
1102 return ITfThreadMgrEx_QueryInterface(&
This->ITfThreadMgrEx_iface, iid, ppvOut);
1108 return ITfThreadMgrEx_AddRef(&
This->ITfThreadMgrEx_iface);
1114 return ITfThreadMgrEx_Release(&
This->ITfThreadMgrEx_iface);
1129 ITfThreadMgrEventSink_OnInitDocumentMgr(
sink, pdim);
1146 ITfThreadMgrEventSink_OnUninitDocumentMgr(
sink, pdim);
1160 TRACE(
"(%p) %p %p\n",
This,pdimFocus, pdimPrevFocus);
1164 ITfThreadMgrEventSink_OnSetFocus(
sink, pdimFocus, pdimPrevFocus);
1181 ITfThreadMgrEventSink_OnPushContext(
sink, pic);
1198 ITfThreadMgrEventSink_OnPopContext(
sink, pic);
1223 return ITfThreadMgrEx_QueryInterface(&
This->ITfThreadMgrEx_iface, iid, ppvOut);
1230 return ITfThreadMgrEx_AddRef(&
This->ITfThreadMgrEx_iface);
1237 return ITfThreadMgrEx_Release(&
This->ITfThreadMgrEx_iface);
1302 return ITfThreadMgrEx_QueryInterface(&
This->ITfThreadMgrEx_iface, iid, ppvOut);
1308 return ITfThreadMgrEx_AddRef(&
This->ITfThreadMgrEx_iface);
1314 return ITfThreadMgrEx_Release(&
This->ITfThreadMgrEx_iface);
1408 *ppvOut = &
This->IEnumTfDocumentMgrs_iface;
1413 IEnumTfDocumentMgrs_AddRef(iface);
1448 while (fetched < ulCount)
1455 if (mgrentry ==
NULL)
1458 *rgDocumentMgr = mgrentry->
docmgr;
1459 ITfDocumentMgr_AddRef(*rgDocumentMgr);
1466 if (pcFetched) *pcFetched = fetched;
1532 TRACE(
"returning %p\n", &
This->IEnumTfDocumentMgrs_iface);
1533 *ppOut = &
This->IEnumTfDocumentMgrs_iface;
1544 if (mgrentry->
docmgr == mgr)
1551 FIXME(
"ITfDocumentMgr %p not found in this thread\n",mgr);
struct outqueuenode * head
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
HRESULT CategoryMgr_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)
HRESULT CompartmentMgr_Destructor(ITfCompartmentMgr *iface)
HRESULT CompartmentMgr_Constructor(IUnknown *pUnkOuter, REFIID riid, IUnknown **ppOut)
#define HeapFree(x, y, z)
LPVOID WINAPI TlsGetValue(IN DWORD Index)
BOOL WINAPI TlsSetValue(IN DWORD Index, IN LPVOID Value)
HRESULT WINAPI CoCreateGuid(GUID *pguid)
HRESULT DocumentMgr_Constructor(ITfThreadMgrEventSink *ThreadMgrSink, ITfDocumentMgr **ppOut)
#define check(expected, result)
GLsizei GLenum GLboolean sink
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 memcpy(s1, s2, n)
HRESULT set_textservice_sink(TfClientId tid, REFCLSID iid, IUnknown *sink)
DWORD get_Cookie_magic(DWORD id)
HRESULT get_textservice_sink(TfClientId tid, REFCLSID iid, IUnknown **sink)
HRESULT activate_textservices(ITfThreadMgrEx *tm)
ITfCompartmentMgr * globalCompartmentMgr
HRESULT unadvise_sink(DWORD cookie)
void free_sinks(struct list *sink_list)
HRESULT deactivate_textservices(void)
CLSID get_textservice_clsid(TfClientId tid)
HRESULT advise_sink(struct list *sink_list, REFIID riid, DWORD cookie_magic, IUnknown *unk, DWORD *cookie)
#define COOKIE_MAGIC_INPUTPROCESSORPROFILEACTIVATIONSINK
#define SINK_FOR_EACH(cursor, list, type, elem)
#define COOKIE_MAGIC_KEYTRACESINK
#define COOKIE_MAGIC_UIELEMENTSINK
#define COOKIE_MAGIC_THREADFOCUSSINK
#define COOKIE_MAGIC_TMSINK
#define COOKIE_MAGIC_ACTIVELANGSINK
#define CONNECT_E_ADVISELIMIT
#define CONNECT_E_NOCONNECTION
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
#define IsEqualCLSID(rclsid1, rclsid2)
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
#define LIST_FOR_EACH(cursor, list)
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
ITfKeystrokeMgr ITfKeystrokeMgr_iface
struct list DisplayAttributeNotifySink
struct list ActiveLanguageProfileNotifySink
CLSID foregroundTextService
struct list PreservedKeyNotifySink
ITfMessagePump ITfMessagePump_iface
struct list UIElementSink
ITfUIElementMgr ITfUIElementMgr_iface
ITfThreadMgrEx ITfThreadMgrEx_iface
struct list ThreadFocusSink
ITfSourceSingle ITfSourceSingle_iface
struct list AssociatedFocusWindows
ITfSource ITfSource_iface
ITfClientId ITfClientId_iface
struct list CurrentPreservedKeys
struct list KeyTraceEventSink
struct list InputProcessorProfileActivationSink
struct list CreatedDocumentMgrs
ITfCompartmentMgr * CompartmentMgr
ITfThreadMgrEventSink ITfThreadMgrEventSink_iface
ITfKeyEventSink * foregroundKeyEventSink
IEnumTfDocumentMgrs IEnumTfDocumentMgrs_iface
static HRESULT WINAPI UIElementMgr_GetUIElement(ITfUIElementMgr *iface, DWORD id, ITfUIElement **element)
static HRESULT WINAPI Source_QueryInterface(ITfSource *iface, REFIID iid, LPVOID *ppvOut)
static HRESULT WINAPI UIElementMgr_EnumUIElements(ITfUIElementMgr *iface, IEnumTfUIElements **enum_elements)
static HRESULT WINAPI EnumTfDocumentMgr_Next(IEnumTfDocumentMgrs *iface, ULONG ulCount, ITfDocumentMgr **rgDocumentMgr, ULONG *pcFetched)
static HRESULT WINAPI ThreadMgr_EnumFunctionProviders(ITfThreadMgrEx *iface, IEnumTfFunctionProviders **ppEnum)
static ULONG WINAPI MessagePump_Release(ITfMessagePump *iface)
static HRESULT WINAPI KeystrokeMgr_TestKeyUp(ITfKeystrokeMgr *iface, WPARAM wParam, LPARAM lParam, BOOL *pfEaten)
static const ITfSourceVtbl ThreadMgrSourceVtbl
static ULONG WINAPI UIElementMgr_AddRef(ITfUIElementMgr *iface)
struct tagAssociatedWindow AssociatedWindow
static HRESULT WINAPI MessagePump_QueryInterface(ITfMessagePump *iface, REFIID iid, LPVOID *ppvOut)
static HRESULT WINAPI ThreadMgrSourceSingle_QueryInterface(ITfSourceSingle *iface, REFIID iid, LPVOID *ppvOut)
static HRESULT WINAPI ThreadMgrEventSink_OnPushContext(ITfThreadMgrEventSink *iface, ITfContext *pic)
static ThreadMgr * impl_from_ITfMessagePump(ITfMessagePump *iface)
static HRESULT WINAPI ThreadMgr_Deactivate(ITfThreadMgrEx *iface)
static ULONG WINAPI ThreadMgrSourceSingle_Release(ITfSourceSingle *iface)
static EnumTfDocumentMgr * impl_from_IEnumTfDocumentMgrs(IEnumTfDocumentMgrs *iface)
static HRESULT WINAPI MessagePump_PeekMessageA(ITfMessagePump *iface, LPMSG pMsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg, BOOL *pfResult)
static HRESULT WINAPI ThreadMgr_Activate(ITfThreadMgrEx *iface, TfClientId *id)
static HRESULT WINAPI ThreadMgrSourceSingle_AdviseSingleSink(ITfSourceSingle *iface, TfClientId tid, REFIID riid, IUnknown *punk)
static HRESULT WINAPI ThreadMgr_GetFocus(ITfThreadMgrEx *iface, ITfDocumentMgr **ppdimFocus)
static HRESULT WINAPI KeystrokeMgr_QueryInterface(ITfKeystrokeMgr *iface, REFIID iid, LPVOID *ppvOut)
static ThreadMgr * impl_from_ITfSource(ITfSource *iface)
struct tagDocumentMgrs DocumentMgrEntry
static ULONG WINAPI ClientId_AddRef(ITfClientId *iface)
static HRESULT WINAPI KeystrokeMgr_KeyUp(ITfKeystrokeMgr *iface, WPARAM wParam, LPARAM lParam, BOOL *pfEaten)
static HRESULT WINAPI ThreadMgrEventSink_OnSetFocus(ITfThreadMgrEventSink *iface, ITfDocumentMgr *pdimFocus, ITfDocumentMgr *pdimPrevFocus)
static HRESULT WINAPI ThreadMgr_QueryInterface(ITfThreadMgrEx *iface, REFIID iid, LPVOID *ppvOut)
static ThreadMgr * impl_from_ITfThreadMgrEx(ITfThreadMgrEx *iface)
static HRESULT WINAPI KeystrokeMgr_GetPreservedKey(ITfKeystrokeMgr *iface, ITfContext *pic, const TF_PRESERVEDKEY *pprekey, GUID *pguid)
static const ITfThreadMgrEventSinkVtbl ThreadMgrEventSinkVtbl
static HRESULT WINAPI ThreadMgr_ActivateEx(ITfThreadMgrEx *iface, TfClientId *id, DWORD flags)
static const ITfUIElementMgrVtbl ThreadMgrUIElementMgrVtbl
static ThreadMgr * impl_from_ITfClientId(ITfClientId *iface)
static ULONG WINAPI ThreadMgr_AddRef(ITfThreadMgrEx *iface)
static HRESULT WINAPI KeystrokeMgr_GetForeground(ITfKeystrokeMgr *iface, CLSID *pclsid)
static HRESULT WINAPI KeystrokeMgr_IsPreservedKey(ITfKeystrokeMgr *iface, REFGUID rguid, const TF_PRESERVEDKEY *pprekey, BOOL *pfRegistered)
static HRESULT WINAPI ThreadMgr_GetFunctionProvider(ITfThreadMgrEx *iface, REFCLSID clsid, ITfFunctionProvider **ppFuncProv)
static const ITfSourceSingleVtbl SourceSingleVtbl
HRESULT ThreadMgr_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)
static ULONG WINAPI Source_AddRef(ITfSource *iface)
static ULONG WINAPI ThreadMgrEventSink_Release(ITfThreadMgrEventSink *iface)
static HRESULT WINAPI ThreadMgr_IsThreadFocus(ITfThreadMgrEx *iface, BOOL *pfThreadFocus)
struct tagEnumTfDocumentMgr EnumTfDocumentMgr
static HRESULT WINAPI KeystrokeMgr_AdviseKeyEventSink(ITfKeystrokeMgr *iface, TfClientId tid, ITfKeyEventSink *pSink, BOOL fForeground)
static void EnumTfDocumentMgr_Destructor(EnumTfDocumentMgr *This)
static HRESULT SetupWindowsHook(ThreadMgr *This)
static HRESULT EnumTfDocumentMgr_Constructor(struct list *head, IEnumTfDocumentMgrs **ppOut)
static ULONG WINAPI ThreadMgrSourceSingle_AddRef(ITfSourceSingle *iface)
static HRESULT WINAPI KeystrokeMgr_UnpreserveKey(ITfKeystrokeMgr *iface, REFGUID rguid, const TF_PRESERVEDKEY *pprekey)
static HRESULT WINAPI EnumTfDocumentMgr_QueryInterface(IEnumTfDocumentMgrs *iface, REFIID iid, LPVOID *ppvOut)
static HRESULT WINAPI EnumTfDocumentMgr_Reset(IEnumTfDocumentMgrs *iface)
struct tagPreservedKey PreservedKey
static ThreadMgr * impl_from_ITfKeystrokeMgr(ITfKeystrokeMgr *iface)
static HRESULT WINAPI ThreadMgr_AssociateFocus(ITfThreadMgrEx *iface, HWND hwnd, ITfDocumentMgr *pdimNew, ITfDocumentMgr **ppdimPrev)
static const ITfThreadMgrExVtbl ThreadMgrExVtbl
static ULONG WINAPI ThreadMgrEventSink_AddRef(ITfThreadMgrEventSink *iface)
static HRESULT WINAPI ThreadMgr_GetActiveFlags(ITfThreadMgrEx *iface, DWORD *flags)
static HRESULT WINAPI UIElementMgr_QueryInterface(ITfUIElementMgr *iface, REFIID iid, void **ppvOut)
static HRESULT WINAPI MessagePump_GetMessageW(ITfMessagePump *iface, LPMSG pMsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax, BOOL *pfResult)
static HRESULT WINAPI KeystrokeMgr_PreserveKey(ITfKeystrokeMgr *iface, TfClientId tid, REFGUID rguid, const TF_PRESERVEDKEY *prekey, const WCHAR *pchDesc, ULONG cchDesc)
static HRESULT WINAPI ThreadMgr_EnumDocumentMgrs(ITfThreadMgrEx *iface, IEnumTfDocumentMgrs **ppEnum)
static HRESULT WINAPI KeystrokeMgr_GetPreservedKeyDescription(ITfKeystrokeMgr *iface, REFGUID rguid, BSTR *pbstrDesc)
static HRESULT WINAPI ClientId_QueryInterface(ITfClientId *iface, REFIID iid, LPVOID *ppvOut)
static ULONG WINAPI ClientId_Release(ITfClientId *iface)
static HRESULT WINAPI UIElementMgr_BeginUIElement(ITfUIElementMgr *iface, ITfUIElement *element, BOOL *show, DWORD *id)
static const ITfMessagePumpVtbl MessagePumpVtbl
static ThreadMgr * impl_from_ITfSourceSingle(ITfSourceSingle *iface)
static HRESULT WINAPI ClientId_GetClientId(ITfClientId *iface, REFCLSID rclsid, TfClientId *ptid)
static HRESULT WINAPI ThreadMgrSource_AdviseSink(ITfSource *iface, REFIID riid, IUnknown *punk, DWORD *pdwCookie)
static ThreadMgr * impl_from_ITfThreadMgrEventSink(ITfThreadMgrEventSink *iface)
static HRESULT WINAPI ThreadMgr_GetGlobalCompartment(ITfThreadMgrEx *iface, ITfCompartmentMgr **ppCompMgr)
static HRESULT WINAPI MessagePump_PeekMessageW(ITfMessagePump *iface, LPMSG pMsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg, BOOL *pfResult)
static HRESULT WINAPI ThreadMgrSourceSingle_UnadviseSingleSink(ITfSourceSingle *iface, TfClientId tid, REFIID riid)
static ULONG WINAPI MessagePump_AddRef(ITfMessagePump *iface)
static HRESULT WINAPI ThreadMgrEventSink_OnPopContext(ITfThreadMgrEventSink *iface, ITfContext *pic)
static ULONG WINAPI KeystrokeMgr_AddRef(ITfKeystrokeMgr *iface)
static HRESULT WINAPI KeystrokeMgr_UnadviseKeyEventSink(ITfKeystrokeMgr *iface, TfClientId tid)
void ThreadMgr_OnDocumentMgrDestruction(ITfThreadMgr *iface, ITfDocumentMgr *mgr)
static LRESULT CALLBACK ThreadFocusHookProc(int nCode, WPARAM wParam, LPARAM lParam)
static ULONG WINAPI UIElementMgr_Release(ITfUIElementMgr *iface)
static HRESULT WINAPI ThreadMgrEventSink_OnInitDocumentMgr(ITfThreadMgrEventSink *iface, ITfDocumentMgr *pdim)
static HRESULT WINAPI ThreadMgrEventSink_OnUninitDocumentMgr(ITfThreadMgrEventSink *iface, ITfDocumentMgr *pdim)
static HRESULT WINAPI KeystrokeMgr_TestKeyDown(ITfKeystrokeMgr *iface, WPARAM wParam, LPARAM lParam, BOOL *pfEaten)
static HRESULT WINAPI EnumTfDocumentMgr_Skip(IEnumTfDocumentMgrs *iface, ULONG celt)
static HRESULT WINAPI KeystrokeMgr_SetPreservedKeyDescription(ITfKeystrokeMgr *iface, REFGUID rguid, const WCHAR *pchDesc, ULONG cchDesc)
static HRESULT WINAPI ThreadMgrSource_UnadviseSink(ITfSource *iface, DWORD pdwCookie)
static HRESULT WINAPI MessagePump_GetMessageA(ITfMessagePump *iface, LPMSG pMsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax, BOOL *pfResult)
static const ITfClientIdVtbl ClientIdVtbl
static ULONG WINAPI EnumTfDocumentMgr_Release(IEnumTfDocumentMgrs *iface)
static HRESULT WINAPI KeystrokeMgr_KeyDown(ITfKeystrokeMgr *iface, WPARAM wParam, LPARAM lParam, BOOL *pfEaten)
static const IEnumTfDocumentMgrsVtbl EnumTfDocumentMgrsVtbl
static HRESULT WINAPI EnumTfDocumentMgr_Clone(IEnumTfDocumentMgrs *iface, IEnumTfDocumentMgrs **ppenum)
static const ITfKeystrokeMgrVtbl KeystrokeMgrVtbl
static HRESULT WINAPI ThreadMgr_SetFocus(ITfThreadMgrEx *iface, ITfDocumentMgr *pdimFocus)
static HRESULT WINAPI ThreadMgrEventSink_QueryInterface(ITfThreadMgrEventSink *iface, REFIID iid, LPVOID *ppvOut)
static HRESULT WINAPI UIElementMgr_UpdateUIElement(ITfUIElementMgr *iface, DWORD id)
static ULONG WINAPI EnumTfDocumentMgr_AddRef(IEnumTfDocumentMgrs *iface)
static HRESULT WINAPI ThreadMgr_CreateDocumentMgr(ITfThreadMgrEx *iface, ITfDocumentMgr **ppdim)
static HRESULT WINAPI KeystrokeMgr_SimulatePreservedKey(ITfKeystrokeMgr *iface, ITfContext *pic, REFGUID rguid, BOOL *pfEaten)
static void ThreadMgr_Destructor(ThreadMgr *This)
static HRESULT WINAPI UIElementMgr_EndUIElement(ITfUIElementMgr *iface, DWORD id)
struct tagACLMulti ThreadMgr
static ULONG WINAPI KeystrokeMgr_Release(ITfKeystrokeMgr *iface)
static ThreadMgr * impl_from_ITfUIElementMgr(ITfUIElementMgr *iface)
static ULONG WINAPI Source_Release(ITfSource *iface)
static ULONG WINAPI ThreadMgr_Release(ITfThreadMgrEx *iface)
#define CONTAINING_RECORD(address, type, field)
DWORD WINAPI GetCurrentThreadId(void)
#define CLASS_E_NOAGGREGATION
HWND WINAPI GetFocus(void)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
HHOOK WINAPI SetWindowsHookExW(_In_ int, _In_ HOOKPROC, _In_opt_ HINSTANCE, _In_ DWORD)
BOOL WINAPI UnhookWindowsHookEx(_In_ HHOOK)
BOOL WINAPI PeekMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
LRESULT WINAPI CallNextHookEx(_In_opt_ HHOOK, _In_ int, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
BOOL WINAPI GetMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)