From dec04ef411b2ae2fa1eed07e447e0a1090191cee Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 12 Jul 2019 09:50:00 +1000 Subject: [PATCH] msctf: Added ITfActiveLanguageProfileNotifySink support in ITfSource. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=44502 --- dlls/msctf/msctf_internal.h | 1 + dlls/msctf/threadmgr.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/msctf/msctf_internal.h b/dlls/msctf/msctf_internal.h index 9d37548361..35843eecf9 100644 --- a/dlls/msctf/msctf_internal.h +++ b/dlls/msctf/msctf_internal.h @@ -32,6 +32,7 @@ #define COOKIE_MAGIC_DMSINK 0x0070 #define COOKIE_MAGIC_THREADFOCUSSINK 0x0080 #define COOKIE_MAGIC_KEYTRACESINK 0x0090 +#define COOKIE_MAGIC_ACTIVELANGSINK 0x0100 extern DWORD tlsIndex DECLSPEC_HIDDEN; extern TfClientId processId DECLSPEC_HIDDEN; diff --git a/dlls/msctf/threadmgr.c b/dlls/msctf/threadmgr.c index a9fcb5cd15..fac11e7a35 100644 --- a/dlls/msctf/threadmgr.c +++ b/dlls/msctf/threadmgr.c @@ -617,6 +617,13 @@ static HRESULT WINAPI ThreadMgrSource_AdviseSink(ITfSource *iface, return advise_sink(&This->ThreadFocusSink, &IID_ITfThreadFocusSink, COOKIE_MAGIC_THREADFOCUSSINK, punk, pdwCookie); } + if (IsEqualIID(riid, &IID_ITfActiveLanguageProfileNotifySink)) + { + WARN("semi-stub for ITfActiveLanguageProfileNotifySink: sink won't be used.\n"); + return advise_sink(&This->ActiveLanguageProfileNotifySink, &IID_ITfActiveLanguageProfileNotifySink, + COOKIE_MAGIC_ACTIVELANGSINK, punk, pdwCookie); + } + if (IsEqualIID(riid, &IID_ITfKeyTraceEventSink)) { WARN("semi-stub for ITfKeyTraceEventSink: sink won't be used.\n"); @@ -636,8 +643,10 @@ static HRESULT WINAPI ThreadMgrSource_UnadviseSink(ITfSource *iface, DWORD pdwCo TRACE("(%p) %x\n",This,pdwCookie); magic = get_Cookie_magic(pdwCookie); - if (magic != COOKIE_MAGIC_TMSINK && magic != COOKIE_MAGIC_THREADFOCUSSINK - && magic != COOKIE_MAGIC_KEYTRACESINK) + if (magic != COOKIE_MAGIC_TMSINK && + magic != COOKIE_MAGIC_THREADFOCUSSINK && + magic != COOKIE_MAGIC_ACTIVELANGSINK && + magic != COOKIE_MAGIC_KEYTRACESINK) return E_INVALIDARG; return unadvise_sink(pdwCookie); -- 2.17.1