140 lines
4.1 KiB
C++
140 lines
4.1 KiB
C++
/*++
|
|
|
|
Copyright (C) 1996-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ctrprop.h
|
|
|
|
Abstract:
|
|
|
|
Header file for the counter date property page
|
|
|
|
--*/
|
|
|
|
#ifndef _CTRPROP_H_
|
|
#define _CTRPROP_H_
|
|
|
|
#include "smonprop.h"
|
|
#include "visuals.h"
|
|
|
|
|
|
// Property Page Dialog IDs
|
|
#define IDD_CTR_PROPP_DLG 200
|
|
#define IDC_CTRLIST 201
|
|
#define IDC_ADDCTR 202
|
|
#define IDC_DELCTR 203
|
|
#define IDC_ADDCTR_TEXT 204
|
|
#define IDC_LINECOLOR 205
|
|
#define IDC_LINESCALE 206
|
|
#define IDC_LINEWIDTH 207
|
|
#define IDC_LINESTYLE 208
|
|
#define IDC_LABEL_LINECOLOR 209
|
|
#define IDC_LABEL_LINESCALE 210
|
|
#define IDC_LABEL_LINEWIDTH 211
|
|
#define IDC_LABEL_LINESTYLE 212
|
|
|
|
typedef struct _ItemProps
|
|
{
|
|
// Combo box indices
|
|
INT iColorIndex;
|
|
INT iStyleIndex;
|
|
INT iScaleIndex;
|
|
INT iWidthIndex;
|
|
// Custom color
|
|
COLORREF rgbColor;
|
|
} ItemProps;
|
|
|
|
typedef struct _ItemInfo
|
|
{
|
|
struct _ItemInfo * pNextInfo;
|
|
ICounterItem * pItem;
|
|
LPTSTR pszPath;
|
|
BOOL fLoaded:1,
|
|
fChanged:1,
|
|
fAdded:1;
|
|
ItemProps Props;
|
|
PPDH_COUNTER_PATH_ELEMENTS pCounter;
|
|
} ItemInfo, *PItemInfo;
|
|
|
|
class CCounterPropPage : public CSysmonPropPage
|
|
{
|
|
friend static HRESULT AddCallback (
|
|
LPTSTR pszPathName,
|
|
DWORD_PTR lpUserData,
|
|
DWORD dwFlags
|
|
);
|
|
|
|
public:
|
|
CCounterPropPage(void);
|
|
virtual ~CCounterPropPage(void);
|
|
|
|
protected:
|
|
virtual BOOL GetProperties(void); //Read current options
|
|
virtual BOOL SetProperties(void); //Set new options
|
|
virtual void DeinitControls(void); // Deinitialize dialog controls
|
|
|
|
virtual void DialogItemChange(WORD wId, WORD wMsg); // Handle item change
|
|
virtual void MeasureItem(PMEASUREITEMSTRUCT); // Handle user measure req
|
|
virtual void DrawItem(PDRAWITEMSTRUCT); // Handle user draw req
|
|
virtual HRESULT EditPropertyImpl( DISPID dispID); // Set focus to control
|
|
|
|
private:
|
|
|
|
void DeleteInfo(PItemInfo pInfo);
|
|
void SetStyleComboEnable(); // Enable/disable based on current width value
|
|
void InitDialog(void);
|
|
void AddCounters(void);
|
|
HRESULT NewItem(LPTSTR pszPath, DWORD dwFlags);
|
|
INT AddItemToList(PItemInfo pInfo);
|
|
void DeleteItem();
|
|
void LoadItemProps(PItemInfo pInfo);
|
|
void DisplayItemProps(PItemInfo pInfo);
|
|
void SelectItem(INT iItem);
|
|
INT SelectMatchingItem(INT iColor, COLORREF rgbCustomColor, INT iWidth, INT iStyle);
|
|
|
|
INT ScaleFactorToIndex ( INT iScaleFactor );
|
|
INT IndexToScaleFactor ( INT iScaleIndex );
|
|
|
|
void IncrementLocalVisuals ( void );
|
|
void SetModifiedSelectedVisuals ( BOOL bModified = TRUE ) { m_bAreModSelectedVisuals = bModified; };
|
|
BOOL AreModifiedSelectedVisuals ( void ){ return m_bAreModSelectedVisuals; };
|
|
|
|
|
|
private:
|
|
PItemInfo m_pInfoSel;
|
|
PItemInfo m_pInfoDeleted;
|
|
ItemProps m_props;
|
|
INT m_iAddIndex;
|
|
DWORD m_dwMaxHorizListExtent;
|
|
BOOL m_bAreModSelectedVisuals;
|
|
|
|
PDH_BROWSE_DLG_CONFIG m_BrowseInfo;
|
|
|
|
enum eValueRange {
|
|
eHashTableSize = 257
|
|
};
|
|
typedef struct _HASH_ENTRY {
|
|
struct _HASH_ENTRY* pNext;
|
|
PPDH_COUNTER_PATH_ELEMENTS pCounter;
|
|
} HASH_ENTRY, *PHASH_ENTRY;
|
|
|
|
PHASH_ENTRY m_HashTable[257];
|
|
BOOL m_fHashTableSetup;
|
|
|
|
ULONG HashCounter ( LPTSTR szCounterName );
|
|
public:
|
|
|
|
BOOL RemoveCounterFromHashTable( LPTSTR pszPath, PPDH_COUNTER_PATH_ELEMENTS pCounter);
|
|
void InitializeHashTable( void );
|
|
void ClearCountersHashTable ( void );
|
|
DWORD InsertCounterToHashTable ( LPTSTR pszPath, PPDH_COUNTER_PATH_ELEMENTS* ppCounter );
|
|
|
|
};
|
|
typedef CCounterPropPage *PCCounterPropPage;
|
|
|
|
DEFINE_GUID(CLSID_CounterPropPage,
|
|
0xcf948561, 0xede8, 0x11ce, 0x94, 0x1e, 0x0, 0x80, 0x29, 0x0, 0x43, 0x47);
|
|
|
|
#endif //_CTRPROP_H_
|