https://git.reactos.org/?p=reactos.git;a=commitdiff;h=4335e46944d1b3aeb1a1bb62e2e73e7bfac5c1fc

commit 4335e46944d1b3aeb1a1bb62e2e73e7bfac5c1fc
Author:     Amine Khaldi <[email protected]>
AuthorDate: Mon Jun 4 03:41:08 2018 +0100
Commit:     Amine Khaldi <[email protected]>
CommitDate: Mon Jun 4 03:41:08 2018 +0100

    [MSCTF] Sync with Wine Staging 3.9. CORE-14656
---
 dll/win32/msctf/context.c        |  6 +++---
 dll/win32/msctf/msctf_internal.h |  1 +
 dll/win32/msctf/threadmgr.c      | 12 +++++++++++-
 media/doc/README.WINE            |  2 +-
 4 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/dll/win32/msctf/context.c b/dll/win32/msctf/context.c
index 54052f6302..452895c07e 100644
--- a/dll/win32/msctf/context.c
+++ b/dll/win32/msctf/context.c
@@ -758,14 +758,14 @@ static HRESULT WINAPI 
TextStoreACPSink_OnTextChange(ITextStoreACPSink *iface,
 {
     Context *This = impl_from_ITextStoreACPSink(iface);
     FIXME("STUB:(%p)\n",This);
-    return E_NOTIMPL;
+    return S_OK;
 }
 
 static HRESULT WINAPI TextStoreACPSink_OnSelectionChange(ITextStoreACPSink 
*iface)
 {
     Context *This = impl_from_ITextStoreACPSink(iface);
     FIXME("STUB:(%p)\n",This);
-    return E_NOTIMPL;
+    return S_OK;
 }
 
 static HRESULT WINAPI TextStoreACPSink_OnLayoutChange(ITextStoreACPSink *iface,
@@ -773,7 +773,7 @@ static HRESULT WINAPI 
TextStoreACPSink_OnLayoutChange(ITextStoreACPSink *iface,
 {
     Context *This = impl_from_ITextStoreACPSink(iface);
     FIXME("STUB:(%p)\n",This);
-    return E_NOTIMPL;
+    return S_OK;
 }
 
 static HRESULT WINAPI TextStoreACPSink_OnStatusChange(ITextStoreACPSink *iface,
diff --git a/dll/win32/msctf/msctf_internal.h b/dll/win32/msctf/msctf_internal.h
index d5e7fe0d03..9d37548361 100644
--- a/dll/win32/msctf/msctf_internal.h
+++ b/dll/win32/msctf/msctf_internal.h
@@ -31,6 +31,7 @@
 #define COOKIE_MAGIC_COMPARTMENTSINK 0x0060
 #define COOKIE_MAGIC_DMSINK 0x0070
 #define COOKIE_MAGIC_THREADFOCUSSINK 0x0080
+#define COOKIE_MAGIC_KEYTRACESINK 0x0090
 
 extern DWORD tlsIndex DECLSPEC_HIDDEN;
 extern TfClientId processId DECLSPEC_HIDDEN;
diff --git a/dll/win32/msctf/threadmgr.c b/dll/win32/msctf/threadmgr.c
index 8ca12ac078..5338e7271c 100644
--- a/dll/win32/msctf/threadmgr.c
+++ b/dll/win32/msctf/threadmgr.c
@@ -621,6 +621,13 @@ static HRESULT WINAPI ThreadMgrSource_AdviseSink(ITfSource 
*iface,
         return advise_sink(&This->ThreadFocusSink, &IID_ITfThreadFocusSink, 
COOKIE_MAGIC_THREADFOCUSSINK, punk, pdwCookie);
     }
 
+    if (IsEqualIID(riid, &IID_ITfKeyTraceEventSink))
+    {
+        WARN("semi-stub for ITfKeyTraceEventSink: sink won't be used.\n");
+        return advise_sink(&This->KeyTraceEventSink, &IID_ITfKeyTraceEventSink,
+                           COOKIE_MAGIC_KEYTRACESINK, punk, pdwCookie);
+    }
+
     FIXME("(%p) Unhandled Sink: %s\n",This,debugstr_guid(riid));
     return E_NOTIMPL;
 }
@@ -628,10 +635,13 @@ static HRESULT WINAPI 
ThreadMgrSource_AdviseSink(ITfSource *iface,
 static HRESULT WINAPI ThreadMgrSource_UnadviseSink(ITfSource *iface, DWORD 
pdwCookie)
 {
     ThreadMgr *This = impl_from_ITfSource(iface);
+    DWORD magic;
 
     TRACE("(%p) %x\n",This,pdwCookie);
 
-    if (get_Cookie_magic(pdwCookie) != COOKIE_MAGIC_TMSINK && 
get_Cookie_magic(pdwCookie) != COOKIE_MAGIC_THREADFOCUSSINK)
+    magic = get_Cookie_magic(pdwCookie);
+    if (magic != COOKIE_MAGIC_TMSINK && magic != COOKIE_MAGIC_THREADFOCUSSINK
+        && magic != COOKIE_MAGIC_KEYTRACESINK)
         return E_INVALIDARG;
 
     return unadvise_sink(pdwCookie);
diff --git a/media/doc/README.WINE b/media/doc/README.WINE
index 3db38f6dd3..080c7c8341 100644
--- a/media/doc/README.WINE
+++ b/media/doc/README.WINE
@@ -106,7 +106,7 @@ reactos/dll/win32/msadp32.acm         # Synced to 
WineStaging-3.3
 reactos/dll/win32/mscat32             # Synced to WineStaging-3.3
 reactos/dll/win32/mscms               # Synced to WineStaging-3.3
 reactos/dll/win32/mscoree             # Synced to Wine-1.5.4
-reactos/dll/win32/msctf               # Synced to WineStaging-3.3
+reactos/dll/win32/msctf               # Synced to WineStaging-3.9
 reactos/dll/win32/msftedit            # Synced to WineStaging-3.3
 reactos/dll/win32/msg711.acm          # Synced to WineStaging-3.3
 reactos/dll/win32/msgsm32.acm         # Synced to WineStaging-3.3

Reply via email to