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.
 
 
 
 
 
 

128 lines
1.9 KiB

//
// editssn.h
//
// CEditSession2
//
#ifndef EDITSES_H
#define EDITSES_H
class CKorIMX;
class CEditSession2;
//
// structure
//
typedef struct _ESSTRUCT
{
DWORD id;
ITfThreadMgr *ptim;
ITfRange *pRange;
IEnumTfRanges *pEnumRange;
CCandidateListEx *pCandList;
CCandidateStringEx *pCandStr;
VOID *pv1;
VOID *pv2;
WPARAM wParam;
LPARAM lParam;
BOOL fBool;
} ESSTRUCT;
//
// flags
//
/* read/readwrite flag */
#define ES2_READONLY 0x00000000
#define ES2_READWRITE 0x00000001
/* sync/async flag */
#define ES2_ASYNC 0x00000010
#define ES2_SYNC 0x00000020
#define ES2_SYNCASYNC 0x00000030
/* mask bits */
#define ES2_READWRITEMASK 0x0000000F
#define ES2_SYNCMASK 0x000000F0
//
// callback function
//
typedef HRESULT (*PFNESCALLBACK)( TfEditCookie ec, CEditSession2 *pes );
//
// misc function
//
__inline void ESStructInit( ESSTRUCT *pess, DWORD id )
{
ZeroMemory(pess, sizeof(ESSTRUCT));
pess->id = id;
}
//
// CEditSession2
//
class CEditSession2 : public ITfEditSession
{
public:
CEditSession2(ITfContext *pic, CKorIMX *ptip, ESSTRUCT *pess, PFNESCALLBACK pfnCallback);
virtual ~CEditSession2();
//
// IUnknown methods
//
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();
//
// ITfEditSession
//
STDMETHODIMP DoEditSession(TfEditCookie ec);
//
//
//
HRESULT Invoke(DWORD dwFlag, HRESULT *phrSession);
__inline ITfContext *GetContext()
{
return m_pic;
}
__inline CKorIMX *GetTIP()
{
return m_ptip;
}
__inline ESSTRUCT *GetStruct()
{
return &m_ess;
}
__inline void Processed()
{
m_fProcessed = TRUE;
}
private:
ULONG m_cRef;
ITfContext *m_pic;
CKorIMX *m_ptip;
ESSTRUCT m_ess;
PFNESCALLBACK m_pfnCallback;
BOOL m_fProcessed;
};
#endif // EDITSES_H