Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

70 lines
1.5 KiB

//
// tes.h
//
// Generic ITfTextEventSink object
//
#ifndef TES_H
#define TES_H
#include "private.h"
#define TES_INVALID_COOKIE ((DWORD)(-1))
#define ICF_TEXTDELTA 1
#define ICF_LAYOUTDELTA 2
#define ICF_LAYOUTDELTA_CREATE 3
#define ICF_LAYOUTDELTA_DESTROY 4
typedef struct
{
TfEditCookie ecReadOnly;
ITfEditRecord *pEditRecord;
ITfContext *pic;
} TESENDEDIT;
typedef HRESULT (*TESCALLBACK)(UINT uCode, void *pv, void *pvData);
class CTextEventSink : public ITfTextEditSink,
public ITfTextLayoutSink
{
public:
CTextEventSink(TESCALLBACK pfnCallback, void *pv);
virtual ~CTextEventSink() {};
//
// IUnknown methods
//
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//
// ITfTextEventSink
//
STDMETHODIMP OnEndEdit(ITfContext *pic, TfEditCookie ecReadOnly, ITfEditRecord *pEditRecord);
STDMETHODIMP OnLayoutChange(ITfContext *pic, TfLayoutCode lcode, ITfContextView *pView);
HRESULT _Advise(ITfContext *pic, DWORD dwFlags);
HRESULT _Unadvise();
protected:
void SetCallbackPV(void* pv)
{
if (_pv == NULL)
_pv = pv;
};
private:
long _cRef;
ITfContext *_pic;
DWORD _dwEditCookie;
DWORD _dwLayoutCookie;
DWORD _dwFlags;
TESCALLBACK _pfnCallback;
void *_pv;
};
#endif // TES_H