https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ac50127e48d3bceda35215...
commit ac50127e48d3bceda35215b5adc3ba83a0f3645e Author: Amine Khaldi amine.khaldi@reactos.org AuthorDate: Sat Nov 9 22:02:02 2019 +0100 Commit: Amine Khaldi amine.khaldi@reactos.org CommitDate: Sat Nov 9 22:02:02 2019 +0100
[MSCTF] Sync with Wine Staging 4.18. CORE-16441 --- dll/win32/msctf/categorymgr.c | 22 ++++----- dll/win32/msctf/compartmentmgr.c | 4 -- dll/win32/msctf/context.c | 98 ++++++++++++++++++++++++++++++++++++---- dll/win32/msctf/documentmgr.c | 12 ++--- dll/win32/msctf/inputprocessor.c | 32 ++++++------- dll/win32/msctf/msctf.c | 2 - dll/win32/msctf/msctf_internal.h | 3 ++ dll/win32/msctf/precomp.h | 4 +- dll/win32/msctf/range.c | 4 -- dll/win32/msctf/threadmgr.c | 33 ++++++++++++-- media/doc/README.WINE | 2 +- 11 files changed, 155 insertions(+), 61 deletions(-)
diff --git a/dll/win32/msctf/categorymgr.c b/dll/win32/msctf/categorymgr.c index ad43833d621..ccba097331e 100644 --- a/dll/win32/msctf/categorymgr.c +++ b/dll/win32/msctf/categorymgr.c @@ -18,9 +18,10 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - #include <stdarg.h> +#ifdef __REACTOS__ +#include <wchar.h> +#endif
#define COBJMACROS
@@ -33,7 +34,6 @@ #include "winerror.h" #include "objbase.h"
-#include "wine/unicode.h"
#include "msctf.h" #include "msctf_internal.h" @@ -115,7 +115,7 @@ static HRESULT WINAPI CategoryMgr_RegisterCategory ( ITfCategoryMgr *iface, TRACE("(%p) %s %s %s\n",This,debugstr_guid(rclsid), debugstr_guid(rcatid), debugstr_guid(rguid));
StringFromGUID2(rclsid, buf, 39); - sprintfW(fullkey,fmt,szwSystemTIPKey,buf); + swprintf(fullkey,fmt,szwSystemTIPKey,buf);
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,fullkey, 0, KEY_READ | KEY_WRITE, &tipkey ) != ERROR_SUCCESS) @@ -123,7 +123,7 @@ static HRESULT WINAPI CategoryMgr_RegisterCategory ( ITfCategoryMgr *iface,
StringFromGUID2(rcatid, buf, 39); StringFromGUID2(rguid, buf2, 39); - sprintfW(fullkey,fmt2,ctg,ctg,buf,buf2); + swprintf(fullkey,fmt2,ctg,ctg,buf,buf2);
res = RegCreateKeyExW(tipkey, fullkey, 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &catkey, NULL); @@ -131,7 +131,7 @@ static HRESULT WINAPI CategoryMgr_RegisterCategory ( ITfCategoryMgr *iface,
if (!res) { - sprintfW(fullkey,fmt2,ctg,itm,buf2,buf); + swprintf(fullkey,fmt2,ctg,itm,buf2,buf); res = RegCreateKeyExW(tipkey, fullkey, 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &itmkey, NULL);
@@ -163,7 +163,7 @@ static HRESULT WINAPI CategoryMgr_UnregisterCategory ( ITfCategoryMgr *iface, TRACE("(%p) %s %s %s\n",This,debugstr_guid(rclsid), debugstr_guid(rcatid), debugstr_guid(rguid));
StringFromGUID2(rclsid, buf, 39); - sprintfW(fullkey,fmt,szwSystemTIPKey,buf); + swprintf(fullkey,fmt,szwSystemTIPKey,buf);
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,fullkey, 0, KEY_READ | KEY_WRITE, &tipkey ) != ERROR_SUCCESS) @@ -171,11 +171,9 @@ static HRESULT WINAPI CategoryMgr_UnregisterCategory ( ITfCategoryMgr *iface,
StringFromGUID2(rcatid, buf, 39); StringFromGUID2(rguid, buf2, 39); - sprintfW(fullkey,fmt2,ctg,ctg,buf,buf2); - - sprintfW(fullkey,fmt2,ctg,itm,buf2,buf); + swprintf(fullkey,fmt2,ctg,ctg,buf,buf2); RegDeleteTreeW(tipkey, fullkey); - sprintfW(fullkey,fmt2,ctg,itm,buf2,buf); + swprintf(fullkey,fmt2,ctg,itm,buf2,buf); RegDeleteTreeW(tipkey, fullkey);
RegCloseKey(tipkey); @@ -216,7 +214,7 @@ static HRESULT WINAPI CategoryMgr_FindClosestCategory ( ITfCategoryMgr *iface, return E_INVALIDARG;
StringFromGUID2(rguid, buf, 39); - sprintfW(fullkey,fmt,szwSystemTIPKey,buf,buf); + swprintf(fullkey,fmt,szwSystemTIPKey,buf,buf); *pcatid = GUID_NULL;
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,fullkey, 0, KEY_READ, &key ) != diff --git a/dll/win32/msctf/compartmentmgr.c b/dll/win32/msctf/compartmentmgr.c index 4fe7b82f94f..4cc25f3f9ab 100644 --- a/dll/win32/msctf/compartmentmgr.c +++ b/dll/win32/msctf/compartmentmgr.c @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - #include <stdarg.h>
#define COBJMACROS @@ -35,8 +33,6 @@ #include "oleauto.h" #include "olectl.h"
-#include "wine/unicode.h" - #include "msctf.h" #include "msctf_internal.h"
diff --git a/dll/win32/msctf/context.c b/dll/win32/msctf/context.c index 452895c07e3..63f2bf5455d 100644 --- a/dll/win32/msctf/context.c +++ b/dll/win32/msctf/context.c @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - #include <stdarg.h>
#define COBJMACROS @@ -34,8 +32,6 @@ #include "objbase.h" #include "olectl.h"
-#include "wine/unicode.h" - #include "msctf.h" #include "msctf_internal.h"
@@ -45,7 +41,7 @@ typedef struct tagContext { ITfContext ITfContext_iface; ITfSource ITfSource_iface; /* const ITfContextCompositionVtbl *ContextCompositionVtbl; */ - /* const ITfContextOwnerCompositionServicesVtbl *ContextOwnerCompositionServicesVtbl; */ + ITfContextOwnerCompositionServices ITfContextOwnerCompositionServices_iface; /* const ITfContextOwnerServicesVtbl *ContextOwnerServicesVtbl; */ ITfInsertAtSelection ITfInsertAtSelection_iface; /* const ITfMouseTrackerVtbl *MouseTrackerVtbl; */ @@ -93,6 +89,11 @@ static inline Context *impl_from_ITfSource(ITfSource *iface) return CONTAINING_RECORD(iface, Context, ITfSource_iface); }
+static inline Context *impl_from_ITfContextOwnerCompositionServices(ITfContextOwnerCompositionServices *iface) +{ + return CONTAINING_RECORD(iface, Context, ITfContextOwnerCompositionServices_iface); +} + static inline Context *impl_from_ITfInsertAtSelection(ITfInsertAtSelection *iface) { return CONTAINING_RECORD(iface, Context, ITfInsertAtSelection_iface); @@ -154,6 +155,10 @@ static HRESULT WINAPI Context_QueryInterface(ITfContext *iface, REFIID iid, LPVO { *ppvOut = &This->ITfSource_iface; } + else if (IsEqualIID(iid, &IID_ITfContextOwnerCompositionServices)) + { + *ppvOut = &This->ITfContextOwnerCompositionServices_iface; + } else if (IsEqualIID(iid, &IID_ITfInsertAtSelection)) { *ppvOut = &This->ITfInsertAtSelection_iface; @@ -530,6 +535,9 @@ static const ITfContextVtbl ContextVtbl = Context_CreateRangeBackup };
+/***************************************************** + * ITfSource functions + *****************************************************/ static HRESULT WINAPI ContextSource_QueryInterface(ITfSource *iface, REFIID iid, LPVOID *ppvOut) { Context *This = impl_from_ITfSource(iface); @@ -548,9 +556,6 @@ static ULONG WINAPI ContextSource_Release(ITfSource *iface) return ITfContext_Release(&This->ITfContext_iface); }
-/***************************************************** - * ITfSource functions - *****************************************************/ static HRESULT WINAPI ContextSource_AdviseSink(ITfSource *iface, REFIID riid, IUnknown *punk, DWORD *pdwCookie) { @@ -589,6 +594,80 @@ static const ITfSourceVtbl ContextSourceVtbl = ContextSource_UnadviseSink };
+/***************************************************** + * ITfContextOwnerCompositionServices functions + *****************************************************/ +static HRESULT WINAPI ContextOwnerCompositionServices_QueryInterface(ITfContextOwnerCompositionServices *iface, + REFIID iid, LPVOID *ppvOut) +{ + Context *This = impl_from_ITfContextOwnerCompositionServices(iface); + return ITfContext_QueryInterface(&This->ITfContext_iface, iid, ppvOut); +} + +static ULONG WINAPI ContextOwnerCompositionServices_AddRef(ITfContextOwnerCompositionServices *iface) +{ + Context *This = impl_from_ITfContextOwnerCompositionServices(iface); + return ITfContext_AddRef(&This->ITfContext_iface); +} + +static ULONG WINAPI ContextOwnerCompositionServices_Release(ITfContextOwnerCompositionServices *iface) +{ + Context *This = impl_from_ITfContextOwnerCompositionServices(iface); + return ITfContext_Release(&This->ITfContext_iface); +} + +static HRESULT WINAPI ContextOwnerCompositionServices_StartComposition(ITfContextOwnerCompositionServices *iface, + TfEditCookie ecWrite, ITfRange *pCompositionRange, ITfCompositionSink *pSink, ITfComposition **ppComposition) +{ + Context *This = impl_from_ITfContextOwnerCompositionServices(iface); + FIXME("STUB:(%p) %#x %p %p %p\n", This, ecWrite, pCompositionRange, pSink, ppComposition); + return E_NOTIMPL; +} + +static HRESULT WINAPI ContextOwnerCompositionServices_EnumCompositions(ITfContextOwnerCompositionServices *iface, + IEnumITfCompositionView **ppEnum) +{ + Context *This = impl_from_ITfContextOwnerCompositionServices(iface); + FIXME("STUB:(%p) %p\n", This, ppEnum); + return E_NOTIMPL; +} + +static HRESULT WINAPI ContextOwnerCompositionServices_FindComposition(ITfContextOwnerCompositionServices *iface, + TfEditCookie ecRead, ITfRange *pTestRange, IEnumITfCompositionView **ppEnum) +{ + Context *This = impl_from_ITfContextOwnerCompositionServices(iface); + FIXME("STUB:(%p) %#x %p %p\n", This, ecRead, pTestRange, ppEnum); + return E_NOTIMPL; +} + +static HRESULT WINAPI ContextOwnerCompositionServices_TakeOwnership(ITfContextOwnerCompositionServices *iface, + TfEditCookie ecWrite, ITfCompositionView *pComposition, ITfCompositionSink *pSink, ITfComposition **ppComposition) +{ + Context *This = impl_from_ITfContextOwnerCompositionServices(iface); + FIXME("STUB:(%p) %#x %p %p %p\n", This, ecWrite, pComposition, pSink, ppComposition); + return E_NOTIMPL; +} + +static HRESULT WINAPI ContextOwnerCompositionServices_TerminateComposition(ITfContextOwnerCompositionServices *iface, + ITfCompositionView *pComposition) +{ + Context *This = impl_from_ITfContextOwnerCompositionServices(iface); + FIXME("STUB:(%p) %p\n", This, pComposition); + return E_NOTIMPL; +} + +static const ITfContextOwnerCompositionServicesVtbl ContextOwnerCompositionServicesVtbl = +{ + ContextOwnerCompositionServices_QueryInterface, + ContextOwnerCompositionServices_AddRef, + ContextOwnerCompositionServices_Release, + ContextOwnerCompositionServices_StartComposition, + ContextOwnerCompositionServices_EnumCompositions, + ContextOwnerCompositionServices_FindComposition, + ContextOwnerCompositionServices_TakeOwnership, + ContextOwnerCompositionServices_TerminateComposition +}; + /***************************************************** * ITfInsertAtSelection functions *****************************************************/ @@ -852,7 +931,7 @@ static HRESULT WINAPI TextStoreACPSink_OnLockGranted(ITextStoreACPSink *iface, /*TODO: implement ITfEditRecord */ SINK_FOR_EACH(cursor, &This->pTextEditSink, ITfTextEditSink, sink) { - ITfTextEditSink_OnEndEdit(sink, (ITfContext*) &This->ITfContext_iface, sc, NULL); + ITfTextEditSink_OnEndEdit(sink, &This->ITfContext_iface, sc, NULL); } sinkcookie = remove_Cookie(sc); } @@ -985,6 +1064,7 @@ HRESULT Context_Constructor(TfClientId tidOwner, IUnknown *punk, ITfDocumentMgr
This->ITfContext_iface.lpVtbl= &ContextVtbl; This->ITfSource_iface.lpVtbl = &ContextSourceVtbl; + This->ITfContextOwnerCompositionServices_iface.lpVtbl = &ContextOwnerCompositionServicesVtbl; This->ITfInsertAtSelection_iface.lpVtbl = &InsertAtSelectionVtbl; This->ITfSourceSingle_iface.lpVtbl = &ContextSourceSingleVtbl; This->ITextStoreACPSink_iface.lpVtbl = &TextStoreACPSinkVtbl; diff --git a/dll/win32/msctf/documentmgr.c b/dll/win32/msctf/documentmgr.c index 9fa6b0f0ddf..44856db632b 100644 --- a/dll/win32/msctf/documentmgr.c +++ b/dll/win32/msctf/documentmgr.c @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - #include <stdarg.h>
#define COBJMACROS @@ -33,8 +31,6 @@ #include "winerror.h" #include "objbase.h"
-#include "wine/unicode.h" - #include "msctf.h" #include "msctf_internal.h"
@@ -81,11 +77,15 @@ static inline EnumTfContext *impl_from_IEnumTfContexts(IEnumTfContexts *iface)
static void DocumentMgr_Destructor(DocumentMgr *This) { - ITfThreadMgr *tm; + ITfThreadMgr *tm = NULL; TRACE("destroying %p\n", This);
TF_GetThreadMgr(&tm); - ThreadMgr_OnDocumentMgrDestruction(tm, &This->ITfDocumentMgr_iface); + if (tm) + { + ThreadMgr_OnDocumentMgrDestruction(tm, &This->ITfDocumentMgr_iface); + ITfThreadMgr_Release(tm); + }
if (This->contextStack[0]) ITfContext_Release(This->contextStack[0]); diff --git a/dll/win32/msctf/inputprocessor.c b/dll/win32/msctf/inputprocessor.c index fdeba38b377..621ac96a984 100644 --- a/dll/win32/msctf/inputprocessor.c +++ b/dll/win32/msctf/inputprocessor.c @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - #include <stdarg.h>
#define COBJMACROS @@ -29,13 +27,15 @@ #include "winbase.h" #include "winreg.h" #include "winuser.h" +#ifdef __REACTOS__ +#include <wchar.h> +#include <winnls.h> +#endif #include "shlwapi.h" #include "winerror.h" #include "objbase.h" #include "olectl.h"
-#include "wine/unicode.h" - #include "msctf.h" #include "msctf_internal.h"
@@ -230,7 +230,7 @@ static void add_userkey( REFCLSID rclsid, LANGID langid,
StringFromGUID2(rclsid, buf, 39); StringFromGUID2(guidProfile, buf2, 39); - sprintfW(fullkey,szwFullLangfmt,szwSystemTIPKey,buf,szwLngp,langid,buf2); + swprintf(fullkey,szwFullLangfmt,szwSystemTIPKey,buf,szwLngp,langid,buf2);
res = RegCreateKeyExW(HKEY_CURRENT_USER,fullkey, 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &key, &disposition); @@ -303,7 +303,7 @@ static HRESULT WINAPI InputProcessorProfiles_Register( TRACE("(%p) %s\n",This,debugstr_guid(rclsid));
StringFromGUID2(rclsid, buf, 39); - sprintfW(fullkey,szwTipfmt,szwSystemTIPKey,buf); + swprintf(fullkey,szwTipfmt,szwSystemTIPKey,buf);
if (RegCreateKeyExW(HKEY_LOCAL_MACHINE,fullkey, 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &tipkey, NULL) != ERROR_SUCCESS) @@ -324,7 +324,7 @@ static HRESULT WINAPI InputProcessorProfiles_Unregister( TRACE("(%p) %s\n",This,debugstr_guid(rclsid));
StringFromGUID2(rclsid, buf, 39); - sprintfW(fullkey,szwTipfmt,szwSystemTIPKey,buf); + swprintf(fullkey,szwTipfmt,szwSystemTIPKey,buf);
RegDeleteTreeW(HKEY_LOCAL_MACHINE, fullkey); RegDeleteTreeW(HKEY_CURRENT_USER, fullkey); @@ -355,14 +355,14 @@ static HRESULT WINAPI InputProcessorProfiles_AddLanguageProfile( debugstr_wn(pchIconFile,cchFile),uIconIndex);
StringFromGUID2(rclsid, buf, 39); - sprintfW(fullkey,szwTipfmt,szwSystemTIPKey,buf); + swprintf(fullkey,szwTipfmt,szwSystemTIPKey,buf);
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,fullkey, 0, KEY_READ | KEY_WRITE, &tipkey ) != ERROR_SUCCESS) return E_FAIL;
StringFromGUID2(guidProfile, buf, 39); - sprintfW(fullkey,fmt2,szwLngp,langid,buf); + swprintf(fullkey,fmt2,szwLngp,langid,buf);
res = RegCreateKeyExW(tipkey,fullkey, 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &fmtkey, &disposition); @@ -421,7 +421,7 @@ static HRESULT WINAPI InputProcessorProfiles_GetDefaultLanguageProfile( return E_INVALIDARG;
StringFromGUID2(catid, buf, 39); - sprintfW(fullkey, szwDefaultFmt, szwSystemCTFKey, szwAssemblies, langid, buf); + swprintf(fullkey, szwDefaultFmt, szwSystemCTFKey, szwAssemblies, langid, buf);
if (RegOpenKeyExW(HKEY_CURRENT_USER, fullkey, 0, KEY_READ | KEY_WRITE, &hkey ) != ERROR_SUCCESS) @@ -480,7 +480,7 @@ static HRESULT WINAPI InputProcessorProfiles_SetDefaultLanguageProfile( return E_FAIL;
StringFromGUID2(&catid, buf, 39); - sprintfW(fullkey, szwDefaultFmt, szwSystemCTFKey, szwAssemblies, langid, buf); + swprintf(fullkey, szwDefaultFmt, szwSystemCTFKey, szwAssemblies, langid, buf);
if (RegCreateKeyExW(HKEY_CURRENT_USER, fullkey, 0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &hkey, NULL ) != ERROR_SUCCESS) @@ -644,7 +644,7 @@ static HRESULT WINAPI InputProcessorProfiles_EnableLanguageProfile(
StringFromGUID2(rclsid, buf, 39); StringFromGUID2(guidProfile, buf2, 39); - sprintfW(fullkey,szwFullLangfmt,szwSystemTIPKey,buf,szwLngp,langid,buf2); + swprintf(fullkey,szwFullLangfmt,szwSystemTIPKey,buf,szwLngp,langid,buf2);
res = RegOpenKeyExW(HKEY_CURRENT_USER, fullkey, 0, KEY_READ | KEY_WRITE, &key);
@@ -677,7 +677,7 @@ static HRESULT WINAPI InputProcessorProfiles_IsEnabledLanguageProfile(
StringFromGUID2(rclsid, buf, 39); StringFromGUID2(guidProfile, buf2, 39); - sprintfW(fullkey,szwFullLangfmt,szwSystemTIPKey,buf,szwLngp,langid,buf2); + swprintf(fullkey,szwFullLangfmt,szwSystemTIPKey,buf,szwLngp,langid,buf2);
res = RegOpenKeyExW(HKEY_CURRENT_USER, fullkey, 0, KEY_READ | KEY_WRITE, &key);
@@ -721,7 +721,7 @@ static HRESULT WINAPI InputProcessorProfiles_EnableLanguageProfileByDefault(
StringFromGUID2(rclsid, buf, 39); StringFromGUID2(guidProfile, buf2, 39); - sprintfW(fullkey,szwFullLangfmt,szwSystemTIPKey,buf,szwLngp,langid,buf2); + swprintf(fullkey,szwFullLangfmt,szwSystemTIPKey,buf,szwLngp,langid,buf2);
res = RegOpenKeyExW(HKEY_LOCAL_MACHINE, fullkey, 0, KEY_READ | KEY_WRITE, &key);
@@ -1191,7 +1191,7 @@ static INT next_LanguageProfile(EnumTfLanguageProfiles *This, CLSID clsid, TF_LA
if (This->langkey == NULL) { - sprintfW(fullkey,fmt,This->szwCurrentClsid,szwLngp,This->langid); + swprintf(fullkey,fmt,This->szwCurrentClsid,szwLngp,This->langid); res = RegOpenKeyExW(This->tipkey, fullkey, 0, KEY_READ | KEY_WRITE, &This->langkey); if (res) { @@ -1315,7 +1315,7 @@ static HRESULT WINAPI EnumTfLanguageProfiles_Clone( IEnumTfLanguageProfiles *ifa WCHAR fullkey[168]; static const WCHAR fmt[] = {'%','s','\','%','s','\','0','x','%','0','8','x',0};
- sprintfW(fullkey,fmt,This->szwCurrentClsid,szwLngp,This->langid); + swprintf(fullkey,fmt,This->szwCurrentClsid,szwLngp,This->langid); res = RegOpenKeyExW(new_This->tipkey, fullkey, 0, KEY_READ | KEY_WRITE, &This->langkey); new_This->lang_index = This->lang_index; } diff --git a/dll/win32/msctf/msctf.c b/dll/win32/msctf/msctf.c index a19eaa1d338..c6e3a2ca597 100644 --- a/dll/win32/msctf/msctf.c +++ b/dll/win32/msctf/msctf.c @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - #include <stdarg.h> #include <stdio.h>
diff --git a/dll/win32/msctf/msctf_internal.h b/dll/win32/msctf/msctf_internal.h index 9d375483616..9d60e18e6f3 100644 --- a/dll/win32/msctf/msctf_internal.h +++ b/dll/win32/msctf/msctf_internal.h @@ -32,6 +32,9 @@ #define COOKIE_MAGIC_DMSINK 0x0070 #define COOKIE_MAGIC_THREADFOCUSSINK 0x0080 #define COOKIE_MAGIC_KEYTRACESINK 0x0090 +#define COOKIE_MAGIC_UIELEMENTSINK 0x00a0 +#define COOKIE_MAGIC_INPUTPROCESSORPROFILEACTIVATIONSINK 0x00b0 +#define COOKIE_MAGIC_ACTIVELANGSINK 0x00c0
extern DWORD tlsIndex DECLSPEC_HIDDEN; extern TfClientId processId DECLSPEC_HIDDEN; diff --git a/dll/win32/msctf/precomp.h b/dll/win32/msctf/precomp.h index 7e05cac46cc..8ec1662cb1b 100644 --- a/dll/win32/msctf/precomp.h +++ b/dll/win32/msctf/precomp.h @@ -2,9 +2,8 @@ #ifndef _MSCTF_PRECOMP_H #define _MSCTF_PRECOMP_H
-#include <wine/config.h> - #include <stdarg.h> +#include <wchar.h>
#define WIN32_NO_STATUS #define _INC_WINDOWS @@ -21,7 +20,6 @@ #include <shlwapi.h>
#include <wine/list.h> -#include <wine/unicode.h> #include <wine/debug.h>
#include "msctf_internal.h" diff --git a/dll/win32/msctf/range.c b/dll/win32/msctf/range.c index dca8983efdb..c4eee2501fb 100644 --- a/dll/win32/msctf/range.c +++ b/dll/win32/msctf/range.c @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - #include <stdarg.h>
#define COBJMACROS @@ -33,8 +31,6 @@ #include "winerror.h" #include "objbase.h"
-#include "wine/unicode.h" - #include "msctf.h" #include "msctf_internal.h"
diff --git a/dll/win32/msctf/threadmgr.c b/dll/win32/msctf/threadmgr.c index 5338e7271c5..16e261539ac 100644 --- a/dll/win32/msctf/threadmgr.c +++ b/dll/win32/msctf/threadmgr.c @@ -18,8 +18,6 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */
-#include "config.h" - #include <stdarg.h>
#define COBJMACROS @@ -34,8 +32,6 @@ #include "objbase.h" #include "olectl.h"
-#include "wine/unicode.h" - #include "msctf.h" #include "msctf_internal.h"
@@ -100,6 +96,8 @@ typedef struct tagACLMulti { struct list PreservedKeyNotifySink; struct list ThreadFocusSink; struct list ThreadMgrEventSink; + struct list UIElementSink; + struct list InputProcessorProfileActivationSink; } ThreadMgr;
typedef struct tagEnumTfDocumentMgr { @@ -176,6 +174,8 @@ static void ThreadMgr_Destructor(ThreadMgr *This) free_sinks(&This->PreservedKeyNotifySink); free_sinks(&This->ThreadFocusSink); free_sinks(&This->ThreadMgrEventSink); + free_sinks(&This->UIElementSink); + free_sinks(&This->InputProcessorProfileActivationSink);
LIST_FOR_EACH_SAFE(cursor, cursor2, &This->CurrentPreservedKeys) { @@ -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_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"); @@ -628,6 +635,20 @@ static HRESULT WINAPI ThreadMgrSource_AdviseSink(ITfSource *iface, COOKIE_MAGIC_KEYTRACESINK, punk, pdwCookie); }
+ if (IsEqualIID(riid, &IID_ITfUIElementSink)) + { + WARN("semi-stub for ITfUIElementSink: sink won't be used.\n"); + return advise_sink(&This->UIElementSink, &IID_ITfUIElementSink, + COOKIE_MAGIC_UIELEMENTSINK, punk, pdwCookie); + } + + if (IsEqualIID(riid, &IID_ITfInputProcessorProfileActivationSink)) + { + WARN("semi-stub for ITfInputProcessorProfileActivationSink: sink won't be used.\n"); + return advise_sink(&This->InputProcessorProfileActivationSink, &IID_ITfInputProcessorProfileActivationSink, + COOKIE_MAGIC_INPUTPROCESSORPROFILEACTIVATIONSINK, punk, pdwCookie); + } + FIXME("(%p) Unhandled Sink: %s\n",This,debugstr_guid(riid)); return E_NOTIMPL; } @@ -641,6 +662,8 @@ static HRESULT WINAPI ThreadMgrSource_UnadviseSink(ITfSource *iface, DWORD pdwCo
magic = get_Cookie_magic(pdwCookie); if (magic != COOKIE_MAGIC_TMSINK && magic != COOKIE_MAGIC_THREADFOCUSSINK + && magic != COOKIE_MAGIC_KEYTRACESINK && magic != COOKIE_MAGIC_UIELEMENTSINK + && magic != COOKIE_MAGIC_INPUTPROCESSORPROFILEACTIVATIONSINK && magic != COOKIE_MAGIC_KEYTRACESINK) return E_INVALIDARG;
@@ -1358,6 +1381,8 @@ HRESULT ThreadMgr_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut) list_init(&This->PreservedKeyNotifySink); list_init(&This->ThreadFocusSink); list_init(&This->ThreadMgrEventSink); + list_init(&This->UIElementSink); + list_init(&This->InputProcessorProfileActivationSink);
TRACE("returning %p\n", This); *ppOut = (IUnknown *)&This->ITfThreadMgrEx_iface; diff --git a/media/doc/README.WINE b/media/doc/README.WINE index 3c7b0a15c26..efffbf63cda 100644 --- a/media/doc/README.WINE +++ b/media/doc/README.WINE @@ -107,7 +107,7 @@ dll/win32/msadp32.acm # Synced to WineStaging-4.0 dll/win32/mscat32 # Synced to WineStaging-4.18 dll/win32/mscms # Synced to WineStaging-4.18 dll/win32/mscoree # Synced to Wine-1.5.4 -dll/win32/msctf # Synced to WineStaging-4.0 +dll/win32/msctf # Synced to WineStaging-4.18 dll/win32/msftedit # Synced to WineStaging-3.3 dll/win32/msg711.acm # Synced to WineStaging-4.0 dll/win32/msgsm32.acm # Synced to WineStaging-4.0