|
|
// 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; }
|