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
2.1 KiB
70 lines
2.1 KiB
/*
|
|
SessEvnt.h
|
|
*/
|
|
|
|
#ifndef __SESSEVNT__
|
|
#define __SESSEVNT__
|
|
|
|
#include "Shared.h"
|
|
|
|
class ATL_NO_VTABLE CSessionEvent :
|
|
public CComObjectRootEx<CComSingleThreadModel>,
|
|
public IDispEventImpl<IDC_SessionEvent, CSessionEvent, &DIID_DMsgrSessionEvents, &LIBID_MsgrSessionManager, 1, 0>
|
|
{
|
|
public:
|
|
CSessionEvent()
|
|
{
|
|
m_pSessObj = NULL; m_pIMSession = NULL;
|
|
}
|
|
~CSessionEvent()
|
|
{
|
|
if (m_pSessObj)
|
|
{
|
|
DispEventUnadvise(m_pSessObj);
|
|
m_pSessObj->Release();
|
|
}
|
|
}
|
|
|
|
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
|
|
BEGIN_COM_MAP(CSessionEvent)
|
|
END_COM_MAP()
|
|
|
|
BEGIN_SINK_MAP(CSessionEvent)
|
|
SINK_ENTRY_EX(IDC_SessionEvent, DIID_DMsgrSessionEvents, DISPID_ONAPPNOTPRESENT, OnAppNotPresent)
|
|
SINK_ENTRY_EX(IDC_SessionEvent, DIID_DMsgrSessionEvents, DISPID_ONACCEPTED, OnAccepted)
|
|
SINK_ENTRY_EX(IDC_SessionEvent, DIID_DMsgrSessionEvents, DISPID_ONDECLINED, OnDeclined)
|
|
SINK_ENTRY_EX(IDC_SessionEvent, DIID_DMsgrSessionEvents, DISPID_ONTERMINATION, OnTermination)
|
|
SINK_ENTRY_EX(IDC_SessionEvent, DIID_DMsgrSessionEvents, DISPID_ONREADYTOLAUNCH, OnReadyToLaunch)
|
|
SINK_ENTRY_EX(IDC_SessionEvent, DIID_DMsgrSessionEvents, DISPID_ONCONTEXTDATA, OnContextData)
|
|
SINK_ENTRY_EX(IDC_SessionEvent, DIID_DMsgrSessionEvents, DISPID_ONCANCELLED, OnCancelled)
|
|
END_SINK_MAP()
|
|
|
|
public:
|
|
void Init(CIMSession* pIM, IMsgrSession *pS)
|
|
{
|
|
if (m_pSessObj)
|
|
{
|
|
DispEventUnadvise(m_pSessObj);
|
|
m_pSessObj->Release();
|
|
}
|
|
m_pIMSession = pIM;
|
|
m_pSessObj = pS;
|
|
m_pSessObj->AddRef();
|
|
DispEventAdvise(m_pSessObj);
|
|
};
|
|
|
|
private:
|
|
IMsgrSession* m_pSessObj;
|
|
CIMSession* m_pIMSession;
|
|
|
|
void __stdcall OnAppNotPresent(BSTR bstrAppName, BSTR bstrAppURL);
|
|
void __stdcall OnAccepted(BSTR bstrAppData);
|
|
void __stdcall OnDeclined(BSTR bstrAppData);
|
|
void __stdcall OnTermination(long hr, BSTR bstrAppData);
|
|
void __stdcall OnReadyToLaunch();
|
|
void __stdcall OnContextData(BSTR pBlob);
|
|
void __stdcall OnCancelled(BSTR bstrAppData);
|
|
};
|
|
|
|
#endif // __SESSEVNT__
|