|
|
//
// canduies.cpp
//
#include "private.h"
#include "canduies.h"
/*============================================================================*/ /* */ /* C C A N D U I E X T B U T T O N E V E N T S I N K */ /* */ /*============================================================================*
/
/* C C A N D U I E X T B U T T O N E V E N T S I N K */ /*------------------------------------------------------------------------------
Constructor of CCandUIExtButtonEventSink
------------------------------------------------------------------------------*/ CCandUIExtButtonEventSink::CCandUIExtButtonEventSink(PFNONBUTTONPRESSED pfnOnButtonPressed, ITfContext *pic, void *pVoid) { m_cRef = 1; m_pic = pic; m_pic->AddRef(); m_pv = pVoid; m_pfnOnButtonPressed = pfnOnButtonPressed; }
/* ~ C C A N D U I E X T B U T T O N E V E N T S I N K */ /*------------------------------------------------------------------------------
Destructor of CCandUIExtButtonEventSink
------------------------------------------------------------------------------*/ CCandUIExtButtonEventSink::~CCandUIExtButtonEventSink() { m_pic->Release(); }
/* Q U E R Y I N T E R F A C E */ /*------------------------------------------------------------------------------
QueryInterface (IUknown method)
------------------------------------------------------------------------------*/ STDAPI CCandUIExtButtonEventSink::QueryInterface( REFIID riid, void **ppvObj) { *ppvObj = NULL;
if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_ITfCandUIExtButtonEventSink)) *ppvObj = SAFECAST(this, ITfCandUIExtButtonEventSink*);
if (*ppvObj) { AddRef(); return S_OK; }
return E_NOINTERFACE; }
/* A D D R E F */ /*------------------------------------------------------------------------------
Increment reference count (IUknown method)
------------------------------------------------------------------------------*/ STDAPI_(ULONG) CCandUIExtButtonEventSink::AddRef() { ++m_cRef; return m_cRef; }
/* R E L E A S E */ /*------------------------------------------------------------------------------
Decrement reference count and release (IUknown method)
------------------------------------------------------------------------------*/ STDAPI_(ULONG) CCandUIExtButtonEventSink::Release() { --m_cRef;
if (0 < m_cRef) return m_cRef;
delete this; return 0; }
/* O N B U T T O N P R E S S E D */ /*------------------------------------------------------------------------------
Callback function of CandUI button event (ITfCandUIExtButtonEventSink method)
------------------------------------------------------------------------------*/ STDAPI CCandUIExtButtonEventSink::OnButtonPressed(LONG id) { return (*m_pfnOnButtonPressed)(id, m_pic, m_pv); }
/*============================================================================*/ /* */ /* C C A N D U I A U T O F I L T E R E V E N T S I N K */ /* */ /*============================================================================*/
/* C C A N D U I A U T O F I L T E R E V E N T S I N K */ /*------------------------------------------------------------------------------
Constructor of CCandUIFilterEventSink
------------------------------------------------------------------------------*/ CCandUIAutoFilterEventSink::CCandUIAutoFilterEventSink(PFNONFILTEREVENT pfnOnFilterEvent, ITfContext *pic, void *pVoid) { m_cRef = 1; m_pic = pic; m_pic->AddRef(); m_pv = pVoid; m_pfnOnFilterEvent = pfnOnFilterEvent; }
/* ~ C C A N D U I A U T O F I L T E R E V E N T S I N K */ /*------------------------------------------------------------------------------
Destructor of CCandUIFilterEventSink
------------------------------------------------------------------------------*/ CCandUIAutoFilterEventSink::~CCandUIAutoFilterEventSink() { m_pic->Release(); }
/* Q U E R Y I N T E R F A C E */ /*------------------------------------------------------------------------------
QueryInterface (IUknown method)
------------------------------------------------------------------------------*/ STDAPI CCandUIAutoFilterEventSink::QueryInterface(REFIID riid, void **ppvObj) { *ppvObj = NULL;
if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_ITfCandUIAutoFilterEventSink)) *ppvObj = SAFECAST(this, ITfCandUIAutoFilterEventSink*);
if (*ppvObj) { AddRef(); return S_OK; }
return E_NOINTERFACE; }
/* A D D R E F */ /*------------------------------------------------------------------------------
Increment reference count (IUknown method)
------------------------------------------------------------------------------*/ STDAPI_(ULONG) CCandUIAutoFilterEventSink::AddRef() { ++m_cRef; return m_cRef; }
/* R E L E A S E */ /*------------------------------------------------------------------------------
Decrement reference count and release (IUknown method)
------------------------------------------------------------------------------*/ STDAPI_(ULONG) CCandUIAutoFilterEventSink::Release() { --m_cRef;
if (0 < m_cRef) return m_cRef;
delete this; return 0; }
/* O N F I L T E R E V E N T */ /*------------------------------------------------------------------------------
Callback function of CandUI filtering event (ITfCandUIAutoFilterEventSink method)
------------------------------------------------------------------------------*/ STDAPI CCandUIAutoFilterEventSink::OnFilterEvent(CANDUIFILTEREVENT ev) { return (*m_pfnOnFilterEvent)(ev, m_pic, m_pv); }
/*============================================================================*/ /* */ /* C C A N D U I M E N U E V E N T S I N K */ /* */ /*============================================================================*/
/* C C A N D U I M E N U E V E N T S I N K */ /*------------------------------------------------------------------------------
Constructor of CCandUIMenuEventSink
------------------------------------------------------------------------------*/ CCandUIMenuEventSink::CCandUIMenuEventSink(PFNINITMENU pfnInitMenu, PFNONCANDUIMENUCOMMAND pfnOnCandUIMenuCommand, ITfContext *pic, void *pVoid) { m_cRef = 1; m_pic = pic; m_pic->AddRef(); m_pv = pVoid; m_pfnInitMenu = pfnInitMenu; m_pfnOnCandUIMenuCommand = pfnOnCandUIMenuCommand; }
/* ~ C C A N D U I M E N U E V E N T S I N K */ /*------------------------------------------------------------------------------
Destructor of CCandUIMenuEventSink
------------------------------------------------------------------------------*/ CCandUIMenuEventSink::~CCandUIMenuEventSink( void ) { m_pic->Release(); }
/* Q U E R Y I N T E R F A C E */ /*------------------------------------------------------------------------------
QueryInterface (IUknown method)
------------------------------------------------------------------------------*/ STDAPI CCandUIMenuEventSink::QueryInterface(REFIID riid, void **ppvObj) { *ppvObj = NULL;
if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_ITfCandUIMenuEventSink)) *ppvObj = SAFECAST(this, CCandUIMenuEventSink*);
if (*ppvObj) { AddRef(); return S_OK; }
return E_NOINTERFACE; }
/* A D D R E F */ /*------------------------------------------------------------------------------
Increment reference count (IUknown method)
------------------------------------------------------------------------------*/ STDAPI_(ULONG) CCandUIMenuEventSink::AddRef() { ++m_cRef; return m_cRef; }
/* R E L E A S E */ /*------------------------------------------------------------------------------
Decrement reference count and release (IUknown method)
------------------------------------------------------------------------------*/ STDAPI_(ULONG) CCandUIMenuEventSink::Release() { --m_cRef;
if (0 < m_cRef) return m_cRef;
delete this; return 0; }
/* I N I T C A N D I D A T E M E N U */ /*------------------------------------------------------------------------------
Callback function to initialize candidate menu (ITfCandUIMenuEventSink method)
------------------------------------------------------------------------------*/ STDAPI CCandUIMenuEventSink::InitMenu(ITfMenu *pMenu) { return (*m_pfnInitMenu)(pMenu, m_pic, m_pv); }
/* O N C A N D U I M E N U C O M M A N D */ /*------------------------------------------------------------------------------
Callback function of candidate menu event (ITfCandUIMenuEventSink method)
------------------------------------------------------------------------------*/ STDAPI CCandUIMenuEventSink::OnMenuCommand(UINT uiCmd) { return (*m_pfnOnCandUIMenuCommand)(uiCmd, m_pic, m_pv); }
|