19 , m_pCompartmentMgr(
NULL)
20 , m_initialContext(
NULL)
21 , m_pThreadMgrSink(threadMgrSink)
37 TRACE(
"destroying %p\n",
this);
76 ERR(
"!pThreadMgrSink\n");
83 ERR(
"E_OUTOFMEMORY\n");
88 TRACE(
"returning %p\n", *ppOut);
100 else if (iid == IID_ITfSource)
102 else if (iid == IID_ITfCompartmentMgr)
118 TRACE(
"%p -> ()\n",
this);
119 return ::InterlockedIncrement(&
m_cRefs);
124 TRACE(
"%p -> ()\n",
this);
139 TRACE(
"%p -> (%d, 0x%lX, %p, %p, %p)\n",
this, tidOwner,
dwFlags,
punk, ppic, pecTextStore);
145 TRACE(
"%p -> (%p)\n",
this, pic);
149 ERR(
"TF_E_STACKFULL\n");
150 return TF_E_STACKFULL;
163 ERR(
"hr: 0x%lX\n",
hr);
208 ERR(
"!m_contextStack[1]\n");
229 TRACE(
"%p -> (%p)\n",
this, ppic);
252 TRACE(
"%p -> (%p)\n",
this, ppic);
277 TRACE(
"%p -> (%p)\n",
this, ppEnum);
288 if (
riid == IID_ITfTransitoryExtensionSink)
290 WARN(
"semi-stub for ITfTransitoryExtensionSink: callback won't be used.\n");
301 TRACE(
"%p -> (%p)\n",
this, pdwCookie);
340 ERR(
"E_OUTOFMEMORY\n");
345 TRACE(
"returning %p\n", *ppOut);
370 TRACE(
"%p -> ()\n",
this);
371 return ::InterlockedIncrement(&
m_cRefs);
376 TRACE(
"%p -> ()\n",
this);
385 TRACE(
"%p -> (%lu, %p, %p)\n",
this, ulCount, rgContext, pcFetched);
394 for (fetched = 0; fetched < ulCount; ++fetched, ++
m_index, ++rgContext)
407 *pcFetched = fetched;
414 TRACE(
"%p -> (%lu)\n",
this, celt);
421 TRACE(
"%p -> ()\n",
this);
428 TRACE(
"%p -> (%p)\n",
this, ppenum);
439 ERR(
"E_OUTOFMEMORY\n");
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define COOKIE_MAGIC_DMSINK
void ThreadMgr_OnDocumentMgrDestruction(ITfThreadMgr *tm, ITfDocumentMgr *mgr)
static void list_init(struct list_entry *head)
static bool cicIsNullPtr(LPCVOID ptr)
STDMETHODIMP Push(ITfContext *pic) override
struct list m_transitoryExtensionSink
STDMETHODIMP CreateContext(TfClientId tidOwner, DWORD dwFlags, IUnknown *punk, ITfContext **ppic, TfEditCookie *pecTextStore) override
STDMETHODIMP Pop(DWORD dwFlags) override
STDMETHODIMP UnadviseSink(DWORD pdwCookie) override
STDMETHODIMP GetTop(ITfContext **ppic) override
static HRESULT CreateInstance(_In_ ITfThreadMgrEventSink *pThreadMgrSink, _Out_ ITfDocumentMgr **ppOut)
ITfContext * m_initialContext
STDMETHODIMP EnumContexts(IEnumTfContexts **ppEnum) override
ITfThreadMgrEventSink * m_pThreadMgrSink
STDMETHODIMP GetBase(ITfContext **ppic) override
STDMETHODIMP QueryInterface(REFIID iid, LPVOID *ppvObject) override
CDocumentMgr(ITfThreadMgrEventSink *threadMgrSink)
ITfCompartmentMgr * m_pCompartmentMgr
STDMETHODIMP AdviseSink(REFIID riid, IUnknown *punk, DWORD *pdwCookie) override
ITfContext * m_contextStack[2]
STDMETHODIMP QueryInterface(REFIID iid, LPVOID *ppvObject) override
STDMETHODIMP Reset() override
static HRESULT CreateInstance(_In_opt_ CDocumentMgr *mgr, _Out_ IEnumTfContexts **ppOut)
virtual ~CEnumTfContext()
CEnumTfContext(_In_opt_ CDocumentMgr *mgr)
STDMETHODIMP Next(ULONG ulCount, ITfContext **rgContext, ULONG *pcFetched) override
STDMETHODIMP Skip(ULONG celt) override
STDMETHODIMP Clone(IEnumTfContexts **ppenum) override
EXTERN_C HRESULT CompartmentMgr_Constructor(IUnknown *pUnkOuter, REFIID riid, IUnknown **ppOut)
EXTERN_C HRESULT Context_Initialize(ITfContext *iface, ITfDocumentMgr *manager)
EXTERN_C HRESULT Context_Uninitialize(ITfContext *iface)
EXTERN_C HRESULT Context_Constructor(TfClientId tidOwner, IUnknown *punk, ITfDocumentMgr *mgr, ITfContext **ppOut, TfEditCookie *pecTextStore)
EXTERN_C HRESULT DocumentMgr_Constructor(ITfThreadMgrEventSink *pThreadMgrSink, ITfDocumentMgr **ppOut)
EXTERN_C HRESULT EnumTfContext_Constructor(CDocumentMgr *mgr, IEnumTfContexts **ppOut)
EXTERN_C HRESULT EnumTfContext_Constructor(CDocumentMgr *mgr, IEnumTfContexts **ppOut)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
#define check(expected, result)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HRESULT OnUninitDocumentMgr([in] ITfDocumentMgr *pdim)
HRESULT OnPopContext([in] ITfContext *pic)
HRESULT OnInitDocumentMgr([in] ITfDocumentMgr *pdim)
HRESULT OnPushContext([in] ITfContext *pic)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
EXTERN_C HRESULT advise_sink(struct list *sink_list, REFIID riid, DWORD cookie_magic, IUnknown *unk, DWORD *cookie)
EXTERN_C DWORD get_Cookie_magic(DWORD id)
EXTERN_C HRESULT unadvise_sink(DWORD cookie)
HRESULT WINAPI TF_GetThreadMgr(ITfThreadMgr **pptim)
EXTERN_C void free_sinks(struct list *sink_list)
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
static __inline const char * wine_dbgstr_guid(const GUID *id)