Module: wine Branch: master Commit: 936713fe333486c6bdc186f5fbcbe70d44e20917 URL: http://source.winehq.org/git/wine.git/?a=commit;h=936713fe333486c6bdc186f5fb...
Author: Aric Stewart aric@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 =