mirror of https://github.com/tongzx/nt5src
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.
64 lines
1.7 KiB
64 lines
1.7 KiB
// 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;
|
|
}
|