65 lines
1.7 KiB
C++
65 lines
1.7 KiB
C++
|
// SAFChannelNotifyIncident.cpp : Implementation of CSAFChannelNotifyIncident
|
||
|
#include "stdafx.h"
|
||
|
#include "obj\i386\SAFInciTrac.h"
|
||
|
#include "SAFChannelNotifyIncident.h"
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CSAFChannelNotifyIncident
|
||
|
UINT CSAFChannelNotifyIncident::m_nRefCount = 0;
|
||
|
CSAFInciTrayIcon CSAFChannelNotifyIncident::m_TrayIcon(CSAFChannelNotifyIncident::m_nRefCount);
|
||
|
|
||
|
STDMETHODIMP CSAFChannelNotifyIncident::onIncidentAdded(ISAFChannel *ch, ISAFIncidentItem *inc, long n)
|
||
|
{
|
||
|
::MessageBox(NULL,L"In Added",NULL,MB_OK);
|
||
|
m_nRefCount++;
|
||
|
if (CSAFInciTrayIcon::dwThreadId == 0)
|
||
|
{
|
||
|
HANDLE hnd = CreateThread(NULL,0,CSAFInciTrayIcon::SAFInciTrayIconThreadFn,&m_TrayIcon,0,&CSAFInciTrayIcon::dwThreadId);
|
||
|
if (hnd)
|
||
|
CloseHandle(hnd);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
m_TrayIcon.ChangeToolTip();
|
||
|
}
|
||
|
|
||
|
return S_OK;
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP CSAFChannelNotifyIncident::onIncidentRemoved(ISAFChannel *ch, ISAFIncidentItem *inc, long n)
|
||
|
{
|
||
|
::MessageBox(NULL,L"In Remove",NULL,MB_OK);
|
||
|
if (m_nRefCount)
|
||
|
{
|
||
|
m_nRefCount--;
|
||
|
m_TrayIcon.ChangeToolTip();
|
||
|
|
||
|
if (m_nRefCount == 0)
|
||
|
{
|
||
|
m_TrayIcon.RemoveTrayIcon();
|
||
|
if (!PostThreadMessage(CSAFInciTrayIcon::dwThreadId,WM_QUIT,0,0))
|
||
|
{
|
||
|
DWORD dwError = GetLastError();
|
||
|
TCHAR strBuf[100];
|
||
|
wsprintf(strBuf,_T("The error is %d"),dwError);
|
||
|
::MessageBox(NULL,strBuf,NULL,MB_OK);
|
||
|
}
|
||
|
CSAFInciTrayIcon::dwThreadId = 0;
|
||
|
}
|
||
|
}
|
||
|
return S_OK;
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP CSAFChannelNotifyIncident::onIncidentUpdated(ISAFChannel *ch, ISAFIncidentItem *inc, long n)
|
||
|
{
|
||
|
m_TrayIcon.m_wIconId = IDI_ALERTINCIDENT;
|
||
|
m_TrayIcon.ModifyIcon();
|
||
|
return S_OK;
|
||
|
}
|
||
|
|
||
|
STDMETHODIMP CSAFChannelNotifyIncident::onChannelUpdated(ISAFChannel *ch, long dwCode, long n)
|
||
|
{
|
||
|
// m_TrayIcon.ChangeIcon(IDI_NORMALINCIDENT);
|
||
|
return S_OK;
|
||
|
}
|