//*************************************************************************** // // ACTION.H // // Module: HEALTHMON SERVER AGENT // // Purpose: To act as the coordinator of actions. WMI actually provides the // code and support to carry out the actions (like email). This class // does the scheduling, and throttling of them. // // Copyright (c)1999 Microsoft Corporation, All Rights Reserved // //*************************************************************************** #if !defined( __ACTION_H ) #define __ACTION_H #include #include #include "global.h" #include "tmpcnsmr.h" #include "base.h" typedef struct _tag_QStruct { LPTSTR szQuery; CTempConsumer* pTempSink; long lThrottleTime; long lReminderTime; unsigned long ulTriggerStates; DWORD startTick; DWORD reminderTimeTick; BOOL bThrottleOn; LPTSTR szConfigActionAssocPath; LPTSTR szUserConfigPath; LPTSTR szChildPath; CBase *pBase; HRESULT hRes; } QSTRUCT, *PQSTRUCT; typedef std::vector > QLIST; class CAction : public CBase { public: CAction(); ~CAction(); // LPTSTR m_szGUID; // LPTSTR m_szName; LPTSTR m_szDescription; int m_iActiveDays; long m_lBeginHourTime; long m_lBeginMinuteTime; long m_lEndHourTime; long m_lEndMinuteTime; BOOL m_bEnabled; BOOL m_bParentEnabled; LPTSTR m_szTypeGUID; // BOOL m_bFTCBBroken; QLIST m_qList; // long m_lCurrState; TCHAR m_szDTTime[512]; TCHAR m_szTime[512]; LPTSTR m_pszStatusGUID; BOOL m_bValidLoad; HRESULT LoadInstanceFromMOF(IWbemClassObject* pObj, BOOL bModifyPass=FALSE); BOOL OnAgentInterval(void); BOOL HandleTempEvent(LPTSTR szGUID, IWbemClassObject* pObj); BOOL HandleTempErrorEvent(BSTR szGUID, long lErrorCode, LPTSTR pszErrorDescription); HRESULT FindAndModAction(BSTR szGUID, IWbemClassObject* pObj); BOOL FindAndCreateActionAssociation(BSTR szGUID, IWbemClassObject* pObj); BOOL FindAndModActionAssociation(BSTR szGUID, IWbemClassObject* pObj); BOOL FireEvent(long lErrorCode, LPTSTR pszErrorDescription, int iResString); HRESULT GetHMActionStatus(IWbemClassObject** ppInstance, IWbemClassObject* pObj, LPTSTR pszClass, int iResString); BOOL DeleteConfigActionAssoc(LPTSTR pszConfigGUID, LPTSTR pszActionGUID); BOOL DeleteEFAndFTCB(void); LPTSTR GetGUID(void); BOOL DeleteAConfig(void); HRESULT SendHMActionStatusInstances(IWbemObjectSink* pSink); HRESULT SendHMActionStatusInstance(IWbemObjectSink* pSink, LPTSTR pszGUID); BOOL checkTime(void); CBase *FindImediateChildByName(LPTSTR pszName); BOOL GetNextChildName(LPTSTR pszChildName, LPTSTR pszOutName); CBase *FindPointerFromName(LPTSTR pszName); // BOOL ModifyAssocForMove(CBase *pNewParentBase); BOOL ReceiveNewChildForMove(CBase *pBase); BOOL DeleteChildFromList(LPTSTR pszGUID); BOOL SendReminderActionIfStateIsSame(IWbemObjectSink* pActionEventSink, IWbemObjectSink* pActionTriggerEventSink, IWbemClassObject* pActionInstance, IWbemClassObject* pActionTriggerInstance, unsigned long ulTriggerStates); Cleanup(BOOL bClearAll); HRESULT RemapAction(void); HRESULT RemapOneAction(IWbemClassObject* pObj); HRESULT CheckForBadLoad(void); }; #endif // __ACTION_H