[MSCTF] Sync with Wine Staging 2.2. CORE-12823

7bcca92 msctf: Return proper pointer to interface.
04b97c2 msctf: Allow unadvising ITfThreadFocusSink.
7ebe59b msctf: Use correct sink for ITfThreadFocusSink.
d766288 msctf: Remove incorrect dereference of double pointer.
137166f msctf: Use interface pointer instead of object pointer.

svn path=/trunk/; revision=73963
This commit is contained in:
Amine Khaldi 2017-02-26 18:33:14 +00:00
parent c8c9ff4987
commit d8d0d107a4
4 changed files with 7 additions and 6 deletions

View file

@ -162,7 +162,7 @@ static HRESULT ClassFactory_Constructor(LPFNCONSTRUCTOR ctor, LPVOID *ppvOut)
This->IClassFactory_iface.lpVtbl = &ClassFactoryVtbl;
This->ref = 1;
This->ctor = ctor;
*ppvOut = This;
*ppvOut = &This->IClassFactory_iface;
TRACE("Created class factory %p\n", This);
return S_OK;
}

View file

@ -52,6 +52,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(msctf);
#define COOKIE_MAGIC_EDITCOOKIE 0x0050
#define COOKIE_MAGIC_COMPARTMENTSINK 0x0060
#define COOKIE_MAGIC_DMSINK 0x0070
#define COOKIE_MAGIC_THREADFOCUSSINK 0x0080
extern DWORD tlsIndex DECLSPEC_HIDDEN;
extern TfClientId processId DECLSPEC_HIDDEN;

View file

@ -597,7 +597,7 @@ static HRESULT WINAPI ThreadMgrSource_AdviseSink(ITfSource *iface,
if (IsEqualIID(riid, &IID_ITfThreadFocusSink))
{
WARN("semi-stub for ITfThreadFocusSink: sink won't be used.\n");
return advise_sink(&This->ThreadMgrEventSink, &IID_ITfThreadMgrEventSink, COOKIE_MAGIC_TMSINK, punk, pdwCookie);
return advise_sink(&This->ThreadFocusSink, &IID_ITfThreadFocusSink, COOKIE_MAGIC_THREADFOCUSSINK, punk, pdwCookie);
}
FIXME("(%p) Unhandled Sink: %s\n",This,debugstr_guid(riid));
@ -610,7 +610,7 @@ static HRESULT WINAPI ThreadMgrSource_UnadviseSink(ITfSource *iface, DWORD pdwCo
TRACE("(%p) %x\n",This,pdwCookie);
if (get_Cookie_magic(pdwCookie)!=COOKIE_MAGIC_TMSINK)
if (get_Cookie_magic(pdwCookie) != COOKIE_MAGIC_TMSINK && get_Cookie_magic(pdwCookie) != COOKIE_MAGIC_THREADFOCUSSINK)
return E_INVALIDARG;
return unadvise_sink(pdwCookie);
@ -1166,7 +1166,7 @@ static HRESULT WINAPI UIElementMgr_QueryInterface(ITfUIElementMgr *iface, REFIID
{
ThreadMgr *This = impl_from_ITfUIElementMgr(iface);
return ITfThreadMgrEx_QueryInterface(&This->ITfThreadMgrEx_iface, iid, *ppvOut);
return ITfThreadMgrEx_QueryInterface(&This->ITfThreadMgrEx_iface, iid, ppvOut);
}
static ULONG WINAPI UIElementMgr_AddRef(ITfUIElementMgr *iface)
@ -1315,7 +1315,7 @@ HRESULT ThreadMgr_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)
This->refCount = 1;
TlsSetValue(tlsIndex,This);
CompartmentMgr_Constructor((IUnknown*)This, &IID_IUnknown, (IUnknown**)&This->CompartmentMgr);
CompartmentMgr_Constructor((IUnknown*)&This->ITfThreadMgrEx_iface, &IID_IUnknown, (IUnknown**)&This->CompartmentMgr);
list_init(&This->CurrentPreservedKeys);
list_init(&This->CreatedDocumentMgrs);

View file

@ -106,7 +106,7 @@ reactos/dll/win32/msadp32.acm # Synced to WineStaging-1.9.11
reactos/dll/win32/mscat32 # Synced to WineStaging-1.9.11
reactos/dll/win32/mscms # Synced to WineStaging-2.2
reactos/dll/win32/mscoree # Synced to Wine-1.5.4
reactos/dll/win32/msctf # Synced to WineStaging-1.9.23
reactos/dll/win32/msctf # Synced to WineStaging-2.2
reactos/dll/win32/msftedit # Synced to WineStaging-1.9.11
reactos/dll/win32/msg711.acm # Synced to WineStaging-1.9.11
reactos/dll/win32/msgsm32.acm # Synced to WineStaging-1.9.11