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.
45 lines
850 B
45 lines
850 B
//
|
|
// statsink.h
|
|
//
|
|
// Generic ITfStatusSink object
|
|
//
|
|
|
|
#ifndef STATSINK_H
|
|
#define STATSINK_H
|
|
|
|
#include "private.h"
|
|
|
|
#define SES_INVALID_COOKIE ((DWORD)(-1))
|
|
|
|
typedef HRESULT (*SESCALLBACK)(void *pv, DWORD dwFlags);
|
|
|
|
class CStatusSink : public ITfStatusSink
|
|
{
|
|
public:
|
|
CStatusSink(SESCALLBACK pfnCallback, void *pv);
|
|
|
|
//
|
|
// IUnknown methods
|
|
//
|
|
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
//
|
|
// ITfStatusSink
|
|
//
|
|
STDMETHODIMP OnStatusChange(ITfContext *pic, DWORD dwFlags);
|
|
|
|
HRESULT _Advise(ITfContext *pic);
|
|
HRESULT _Unadvise();
|
|
|
|
private:
|
|
|
|
long _cRef;
|
|
ITfContext *_pic;
|
|
DWORD _dwCookie;
|
|
SESCALLBACK _pfnCallback;
|
|
void *_pv;
|
|
};
|
|
|
|
#endif // STATSINK_H
|