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.
|
|
//////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 1999--2001 Microsoft Corporation
//
// Module Name:
// CAlertEmailConsumer.h
//
// Description:
// Implement the interface of IWbemUnboundObjectSink
//
// [Implementation Files:]
// CAlertEmailConsumer.cpp
//
// History:
// Xing Jin (i-xingj) 23-Dec-2000
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
const ULONG MAX_EMAILADDRESS = 1024; // Including the NULL.
//////////////////////////////////////////////////////////////////////////////
//
//
// class CAlertEmailConsumer
//
// Description:
// Physical event of consumer for Alert Event.
//
// History
// Xing Jin (i-xingj) 23-Dec-2000
//
//////////////////////////////////////////////////////////////////////////////
class CAlertEmailConsumer : public IWbemUnboundObjectSink {
//
// Public data
//
public:
//
// Constructors & Destructors
//
CAlertEmailConsumer(); ~CAlertEmailConsumer();
//
// Initial function called by consumer provider.
//
HRESULT Initialize();
//
// IUnknown members
//
STDMETHODIMP QueryInterface(REFIID, LPVOID *); STDMETHODIMP_(ULONG) AddRef(void); STDMETHODIMP_(ULONG) Release(void); //
// IWbemUnboundObjectSink members
//
STDMETHOD(IndicateToConsumer)( IWbemClassObject *pLogicalConsumer, long lNumObjects, IWbemClassObject **ppObjects );
static DWORD WINAPI RegThreadProc( PVOID pIn ); void RegThread();
//
// private data
//
private:
//
// Method for email sending.
//
HRESULT SendMail( BSTR bstrSubject, BSTR bstrMessage );
//
// Method to get alert's resource information and send mail.
//
HRESULT SendMailFromResource( LPWSTR lpszSource, LONG lSourceID, VARIANT* pvtReplaceStr );
//
// Method to get FullyQualifiedDomainName.
//
BOOL GetComputerName( LPWSTR* pstrFullyQualifiedDomainName, COMPUTER_NAME_FORMAT nametype );
//
// Get the port local server appliance is using.
//
HRESULT GetAppliancePort( LPWSTR* pstrPort );
BOOL RetrieveRegInfo();
//
// Method to intialize CDO.
//
HRESULT InitializeCDOMessage(void);
//
// Method to intialize Element Manager.
//
HRESULT InitializeElementManager(void);
//
// Method to intialize CDO interface.
//
HRESULT InitializeLocalManager(void);
//
// Handler for raised alert event.
//
HRESULT RaiseAlert(IWbemClassObject *pObject);
//
// Get SMTP "Fully Qualified Domain Name" from metabase
//
HRESULT GetSMTPFromDomainName( BSTR* bstrDomainName );
//
// Handler for cleared alert event.
//
HRESULT ClearAlert(IWbemClassObject *pObject);
LONG m_cRef; // Reference counter.
HKEY m_hAlertKey; // Handle of AlertEmail key.
LONG m_lCurAlertType; // Current alert type.
LONG m_lAlertEmailDisabled;
WCHAR m_pstrMailAddress[MAX_EMAILADDRESS];
LPWSTR m_pstrFullyQualifiedDomainName;
LPWSTR m_pstrNetBIOSName;
HANDLE m_hCloseThreadEvent;
HANDLE m_hThread;
//
// Reference to Local Manager.
//
ISALocInfo* m_pLocInfo;
//
// Reference to CDO::IMessage.
//
IMessage* m_pcdoIMessage;
//
// Reference to Element Manager.
//
IWebElementEnum* m_pElementEnum; };
|