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
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__