202 lines
6.1 KiB
C++
202 lines
6.1 KiB
C++
#if !defined(AFX_HMOBJECT_H__D9BF4F9B_F673_11D2_BDC4_0000F87A3912__INCLUDED_)
|
|
#define AFX_HMOBJECT_H__D9BF4F9B_F673_11D2_BDC4_0000F87A3912__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
// HMObject.h : header file
|
|
//
|
|
|
|
#include "HealthmonScopePane.h"
|
|
#include "ScopePaneItem.h"
|
|
#include "HMRuleStatus.h"
|
|
#include "HMScopeItem.h"
|
|
#include "HMEventResultsPaneItem.h"
|
|
#include "SplitpaneResultsView.h"
|
|
#include "WbemEventListener.h"
|
|
#include "HMGraphView.h"
|
|
#include "HMListView.h"
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CHMObject command target
|
|
|
|
class CHMObject : public CCmdTarget
|
|
{
|
|
DECLARE_SERIAL(CHMObject)
|
|
|
|
// Construction/Destruction
|
|
public:
|
|
CHMObject();
|
|
virtual ~CHMObject();
|
|
|
|
// Create/Destroy
|
|
public:
|
|
virtual void Destroy(bool bDeleteClassObject = false);
|
|
|
|
// WMI Operations
|
|
public:
|
|
virtual HRESULT EnumerateChildren();
|
|
virtual CString GetObjectPath();
|
|
virtual CString GetStatusObjectPath();
|
|
virtual CWbemClassObject* GetClassObject();
|
|
virtual CWbemClassObject* GetParentClassObject();
|
|
virtual CHMEvent* GetStatusClassObject();
|
|
virtual void DeleteClassObject();
|
|
void IncrementActiveSinkCount();
|
|
void DecrementActiveSinkCount();
|
|
virtual bool ImportMofFile(CArchive& ar);
|
|
virtual bool ExportMofFile(CArchive& ar);
|
|
protected:
|
|
long m_lActiveSinkCount;
|
|
|
|
// Clipboard Operations
|
|
public:
|
|
virtual bool Copy(CString& sParentGuid, COleSafeArray& Instances);
|
|
virtual bool Paste(CHMObject* pObject, bool bCutOrMove);
|
|
virtual bool QueryPaste(CHMObject* pObject);
|
|
|
|
// Operations
|
|
public:
|
|
CString GetGuid();
|
|
void SetGuid(const CString& sGuid);
|
|
CString GetName();
|
|
void SetName(const CString& sNewName);
|
|
virtual bool Rename(const CString& sNewName);
|
|
CString GetTypeName();
|
|
virtual CString GetUITypeName();
|
|
CString GetSystemName();
|
|
void SetSystemName(const CString& sNewName);
|
|
void ToggleStatusIcon(bool bOn = true);
|
|
virtual bool Refresh();
|
|
static int GetRefreshType() { return m_iRefreshType; }
|
|
static int GetRefreshEventCount() { return m_iEventCount; }
|
|
static void GetRefreshTimePeriod(int& iTimeValue, TimeUnit& Units) { iTimeValue = m_iTimeValue; Units = m_Units; }
|
|
static void SetRefreshType(int iType) { m_iRefreshType = iType; }
|
|
static void SetRefreshEventCount(int iEventCount) { m_iEventCount = iEventCount; }
|
|
static void SetRefreshTimePeriod(int iTimeValue, TimeUnit Units) { m_iTimeValue = iTimeValue; m_Units = Units; }
|
|
virtual bool ResetStatus();
|
|
virtual bool ResetStatistics();
|
|
virtual bool CheckNow();
|
|
bool DeleteActionAssoc(const CString& sActionConfigGuid);
|
|
int IsEnabled();
|
|
void Enable();
|
|
void Disable();
|
|
CTime GetCreateDateTime();
|
|
void GetCreateDateTime(CString& sDateTime);
|
|
void SetCreateDateTime(const CTime& dtime);
|
|
CTime GetModifiedDateTime();
|
|
void GetModifiedDateTime(CString& sDateTime);
|
|
void SetModifiedDateTime(const CTime& dtime);
|
|
CString GetComment();
|
|
void SetComment(const CString& sComment);
|
|
void UpdateComment(const CString& sComment);
|
|
void Serialize(CArchive& ar);
|
|
protected:
|
|
CString m_sGUID;
|
|
CString m_sName;
|
|
CString m_sTypeName;
|
|
CString m_sSystemName;
|
|
bool m_bStatusIconsOn;
|
|
CTime m_CreateDateTime;
|
|
CTime m_ModifiedDateTime;
|
|
CString m_sComment;
|
|
static int m_iRefreshType;
|
|
static int m_iEventCount;
|
|
static int m_iTimeValue;
|
|
static TimeUnit m_Units;
|
|
|
|
// Child Members
|
|
public:
|
|
int GetChildCount(CRuntimeClass* pClass = NULL);
|
|
virtual int AddChild(CHMObject* pObject);
|
|
virtual bool CreateChild(CHMObject* pObject, const CString& sWMIClassName, const CString& sWMIAssociatorClassName);
|
|
CString GetUniqueChildName(UINT uiFmtID = IDS_STRING_UNTITLED);
|
|
virtual CHMObject* GetChild(const CString& sName);
|
|
CHMObject* GetChildByGuid(const CString& sGUID);
|
|
CHMObject* GetDescendantByGuid(const CString& sGuid);
|
|
CHMObject* GetChild(int iIndex);
|
|
virtual void RemoveChild(CHMObject* pObject);
|
|
void DestroyChild(int iIndex, bool bDeleteClassObject = false);
|
|
virtual void DestroyChild(CHMObject* pObject, bool bDeleteClassObject = false);
|
|
void DestroyAllChildren();
|
|
protected:
|
|
CTypedPtrArray<CObArray,CHMObject*> m_Children;
|
|
long m_lNameSuffix;
|
|
|
|
// Event Members
|
|
public:
|
|
virtual void AddContainer(const CString& sParentGuid, const CString& sGuid, CHMObject* pObject);
|
|
void ClearEvents();
|
|
|
|
// State Members
|
|
public:
|
|
virtual void UpdateStatus();
|
|
int GetState() { return m_nState; }
|
|
void SetState(int iState, bool bUpdateScopeItems = false, bool bApplyToChildren = false);
|
|
virtual void TallyChildStates();
|
|
long GetNormalCount() { return m_lNormalCount; }
|
|
long GetWarningCount() { return m_lWarningCount; }
|
|
long GetCriticalCount() { return m_lCriticalCount; }
|
|
long GetUnknownCount() { return m_lUnknownCount; }
|
|
protected:
|
|
int m_nState;
|
|
long m_lNormalCount;
|
|
long m_lWarningCount;
|
|
long m_lCriticalCount;
|
|
long m_lUnknownCount;
|
|
|
|
// Associated Scope Pane Member
|
|
public:
|
|
CScopePane* GetScopePane();
|
|
void SetScopePane(CScopePane* pPane);
|
|
protected:
|
|
CScopePane* m_pPane;
|
|
|
|
// Scope Item Members
|
|
public:
|
|
BOOL IsActionsItem();
|
|
int GetScopeItemCount();
|
|
CScopePaneItem* GetScopeItem(int iIndex);
|
|
virtual int AddScopeItem(CScopePaneItem* pItem);
|
|
virtual void RemoveScopeItem(int iIndex);
|
|
void RemoveAllScopeItems();
|
|
void DestroyAllScopeItems();
|
|
virtual CScopePaneItem* CreateScopeItem() { ASSERT(FALSE); return NULL; }
|
|
CScopePaneItem* IsSelected();
|
|
protected:
|
|
CTypedPtrArray<CObArray,CScopePaneItem*> m_ScopeItems;
|
|
|
|
// Overrides
|
|
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CHMObject)
|
|
public:
|
|
virtual void OnFinalRelease();
|
|
//}}AFX_VIRTUAL
|
|
|
|
// MFC Implementation
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CHMObject)
|
|
// NOTE - the ClassWizard will add and remove member functions here.
|
|
//}}AFX_MSG
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
// Generated OLE dispatch map functions
|
|
//{{AFX_DISPATCH(CHMObject)
|
|
// NOTE - the ClassWizard will add and remove member functions here.
|
|
//}}AFX_DISPATCH
|
|
DECLARE_DISPATCH_MAP()
|
|
DECLARE_INTERFACE_MAP()
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "HMObject.inl"
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
|
|
#endif // !defined(AFX_HMOBJECT_H__D9BF4F9B_F673_11D2_BDC4_0000F87A3912__INCLUDED_)
|