Aric Stewart : msctf: Setup global CompartmentMgr.
Alexandre Julliard
julliard at winehq.org
Tue Jun 16 09:09:35 CDT 2009
Module: wine
Branch: master
Commit: 936713fe333486c6bdc186f5fbcbe70d44e20917
URL: http://source.winehq.org/git/wine.git/?a=commit;h=936713fe333486c6bdc186f5fbcbe70d44e20917
Author: Aric Stewart <aric at 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 =
More information about the wine-cvs
mailing list