Aric Stewart : msctf: Define ITfCompartmentMgr for ThreadMgr.

Alexandre Julliard julliard at winehq.org
Fri Jun 12 10:41:10 CDT 2009


Module: wine
Branch: master
Commit: 819518c4618bdf14e43c30d9e851c2f3b2d747d7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=819518c4618bdf14e43c30d9e851c2f3b2d747d7

Author: Aric Stewart <aric at codeweavers.com>
Date:   Thu Jun 11 13:33:07 2009 -0500

msctf: Define ITfCompartmentMgr for ThreadMgr.

---

 dlls/msctf/threadmgr.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/dlls/msctf/threadmgr.c b/dlls/msctf/threadmgr.c
index 9b887f0..490bfc6 100644
--- a/dlls/msctf/threadmgr.c
+++ b/dlls/msctf/threadmgr.c
@@ -78,6 +78,9 @@ typedef struct tagACLMulti {
     /* const ITfSourceSingleVtbl *SourceSingleVtbl; */
     LONG refCount;
 
+    /* Aggregation */
+    ITfCompartmentMgr  *CompartmentMgr;
+
     const ITfThreadMgrEventSinkVtbl *ThreadMgrEventSinkVtbl; /* internal */
 
     ITfDocumentMgr *focus;
@@ -183,6 +186,8 @@ static void ThreadMgr_Destructor(ThreadMgr *This)
         HeapFree(GetProcessHeap(),0,key);
     }
 
+    CompartmentMgr_Destructor(This->CompartmentMgr);
+
     HeapFree(GetProcessHeap(),0,This);
 }
 
@@ -211,6 +216,10 @@ static HRESULT WINAPI ThreadMgr_QueryInterface(ITfThreadMgr *iface, REFIID iid,
     {
         *ppvOut = &This->ClientIdVtbl;
     }
+    else if (IsEqualIID(iid, &IID_ITfCompartmentMgr))
+    {
+        *ppvOut = This->CompartmentMgr;
+    }
 
     if (*ppvOut)
     {
@@ -1054,6 +1063,8 @@ HRESULT ThreadMgr_Constructor(IUnknown *pUnkOuter, IUnknown **ppOut)
     This->refCount = 1;
     TlsSetValue(tlsIndex,This);
 
+    CompartmentMgr_Constructor((IUnknown*)This, &IID_IUnknown, (IUnknown**)&This->CompartmentMgr);
+
     list_init(&This->CurrentPreservedKeys);
 
     list_init(&This->ActiveLanguageProfileNotifySink);




More information about the wine-cvs mailing list