Aric Stewart : msctf: Setup global CompartmentMgr.
Module: wine Branch: master Commit: 936713fe333486c6bdc186f5fbcbe70d44e20917 URL: http://source.winehq.org/git/wine.git/?a=commit;h=936713fe333486c6bdc186f5fb... Author: Aric Stewart <aric(a)codeweavers.com> Date: Tue Jun 16 06:25:36 2009 +0900 msctf: Setup global CompartmentMgr. --- dlls/msctf/msctf.c | 1 + dlls/msctf/msctf_internal.h | 1 + dlls/msctf/threadmgr.c | 18 ++++++++++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/dlls/msctf/msctf.c b/dlls/msctf/msctf.c index 675e4d5..9729ef3 100644 --- a/dlls/msctf/msctf.c +++ b/dlls/msctf/msctf.c @@ -74,6 +74,7 @@ static UINT activated = 0; DWORD tlsIndex = 0; TfClientId processId = 0; +ITfCompartmentMgr *globalCompartmentMgr = NULL; const WCHAR szwSystemTIPKey[] = {'S','O','F','T','W','A','R','E','\\','M','i','c','r','o','s','o','f','t','\\','C','T','F','\\','T','I','P',0}; diff --git a/dlls/msctf/msctf_internal.h b/dlls/msctf/msctf_internal.h index b4e7446..8e093eb 100644 --- a/dlls/msctf/msctf_internal.h +++ b/dlls/msctf/msctf_internal.h @@ -29,6 +29,7 @@ extern DWORD tlsIndex; extern TfClientId processId; +extern ITfCompartmentMgr *globalCompartmentMgr; extern HRESULT ThreadMgr_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut); extern HRESULT DocumentMgr_Constructor(ITfThreadMgrEventSink*, ITfDocumentMgr **ppOut); diff --git a/dlls/msctf/threadmgr.c b/dlls/msctf/threadmgr.c index 490bfc6..6d31198 100644 --- a/dlls/msctf/threadmgr.c +++ b/dlls/msctf/threadmgr.c @@ -390,8 +390,22 @@ static HRESULT WINAPI ThreadMgr_GetGlobalCompartment( ITfThreadMgr* iface, ITfCompartmentMgr **ppCompMgr) { ThreadMgr *This = (ThreadMgr *)iface; - FIXME("STUB:(%p)\n",This); - return E_NOTIMPL; + HRESULT hr; + TRACE("(%p) %p\n",This, ppCompMgr); + + if (!ppCompMgr) + return E_INVALIDARG; + + if (!globalCompartmentMgr) + { + hr = CompartmentMgr_Constructor(NULL,&IID_ITfCompartmentMgr,(IUnknown**)&globalCompartmentMgr); + if (FAILED(hr)) + return hr; + } + + ITfCompartmentMgr_AddRef(globalCompartmentMgr); + *ppCompMgr = globalCompartmentMgr; + return S_OK; } static const ITfThreadMgrVtbl ThreadMgr_ThreadMgrVtbl =
participants (1)
-
Alexandre Julliard