Module: wine Branch: master Commit: 1ffa3515ddd3f6e1ebfb1b8c9e680b04b8c7e785 URL: http://source.winehq.org/git/wine.git/?a=commit;h=1ffa3515ddd3f6e1ebfb1b8c9e...
Author: Aric Stewart aric@codeweavers.com Date: Thu Jun 11 13:33:23 2009 -0500
msctf: Add ITfComponentMgr to documentmgr.
---
dlls/msctf/documentmgr.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/dlls/msctf/documentmgr.c b/dlls/msctf/documentmgr.c index 7fd354a..3d4dbe9 100644 --- a/dlls/msctf/documentmgr.c +++ b/dlls/msctf/documentmgr.c @@ -45,6 +45,9 @@ typedef struct tagDocumentMgr { const ITfSourceVtbl *SourceVtbl; LONG refCount;
+ /* Aggregation */ + ITfCompartmentMgr *CompartmentMgr; + ITfContext* contextStack[2]; /* limit of 2 contexts */ ITfThreadMgrEventSink* ThreadMgrSink; } DocumentMgr; @@ -61,6 +64,7 @@ static void DocumentMgr_Destructor(DocumentMgr *This) ITfContext_Release(This->contextStack[0]); if (This->contextStack[1]) ITfContext_Release(This->contextStack[1]); + CompartmentMgr_Destructor(This->CompartmentMgr); HeapFree(GetProcessHeap(),0,This); }
@@ -77,6 +81,10 @@ static HRESULT WINAPI DocumentMgr_QueryInterface(ITfDocumentMgr *iface, REFIID i { *ppvOut = &This->SourceVtbl; } + else if (IsEqualIID(iid, &IID_ITfCompartmentMgr)) + { + *ppvOut = This->CompartmentMgr; + }
if (*ppvOut) { @@ -303,6 +311,8 @@ HRESULT DocumentMgr_Constructor(ITfThreadMgrEventSink *ThreadMgrSink, ITfDocumen This->refCount = 1; This->ThreadMgrSink = ThreadMgrSink;
+ CompartmentMgr_Constructor((IUnknown*)This, &IID_IUnknown, (IUnknown**)&This->CompartmentMgr); + TRACE("returning %p\n", This); *ppOut = (ITfDocumentMgr*)This; return S_OK;