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