windows-nt/Source/XPSP1/NT/admin/snapin/smonlog/smlogcfg/ctrsprop.h
2020-09-26 16:20:57 +08:00

166 lines
4.4 KiB
C++

/*++
Copyright (C) 1998-1999 Microsoft Corporation
Module Name:
ctrsprop.h
Abstract:
Header file for the counters general property page
--*/
#ifndef _CTRSPROP_H_
#define _CTRSPROP_H_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "smproppg.h" // Base class
#include "smcfghlp.h"
// Dialog controls
#define IDD_COUNTERS_PROP 800
#define IDC_CTRS_FILENAME_CAPTION 801
#define IDC_CTRS_LOG_SCHED_TEXT 802
#define IDC_CTRS_SAMPLE_CAPTION 803
#define IDC_CTRS_SAMPLE_INTERVAL_CAPTION 804
#define IDC_CTRS_SAMPLE_UNITS_CAPTION 805
#define IDC_CTRS_FIRST_HELP_CTRL_ID 806 // First control with Help text.
#define IDC_CTRS_COUNTER_LIST 806
#define IDC_CTRS_ADD_OBJ_BTN 807
#define IDC_CTRS_ADD_BTN 808
#define IDC_CTRS_REMOVE_BTN 809
#define IDC_CTRS_FILENAME_DISPLAY 810
#define IDC_CTRS_SAMPLE_SPIN 811
#define IDC_CTRS_SAMPLE_UNITS_COMBO 812
#define IDC_CTRS_SAMPLE_EDIT 813
#define PDLCNFIG_LISTBOX_STARS_YES 1
class CSmCounterLogQuery;
/////////////////////////////////////////////////////////////////////////////
// CCountersProperty dialog
class CCountersProperty : public CSmPropertyPage
{
DECLARE_DYNCREATE(CCountersProperty)
// Construction
public:
CCountersProperty();
CCountersProperty(MMC_COOKIE mmcCookie, LONG_PTR hConsole);
virtual ~CCountersProperty();
public:
// Dialog Data
//{{AFX_DATA(CCountersProperty)
enum { IDD = IDD_COUNTERS_PROP };
int m_nSampleUnits;
CString m_strFileNameDisplay;
CString m_strStartDisplay;
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CCountersProperty)
public:
protected:
virtual void OnFinalRelease();
virtual BOOL OnInitDialog();
virtual BOOL OnSetActive();
virtual BOOL OnKillActive();
virtual BOOL OnApply();
virtual void OnCancel();
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual void PostNcDestroy();
//}}AFX_VIRTUAL
public:
// All of these members are Public to be accessed by the callback routine.
LPWSTR m_szCounterListBuffer;
DWORD m_dwCounterListBufferSize;
long m_lCounterListHasStars;
DWORD m_dwMaxHorizListExtent;
PDH_BROWSE_DLG_CONFIG m_dlgConfig;
CSmCounterLogQuery *m_pCtrLogQuery;
// Implementation
protected:
virtual INT GetFirstHelpCtrlId ( void )
{
return IDC_CTRS_FIRST_HELP_CTRL_ID;
}; // Subclass must override.
virtual BOOL IsValidLocalData ();
// Generated message map functions
//{{AFX_MSG(CCountersProperty)
afx_msg void OnCtrsAddBtn();
afx_msg void OnCtrsAddObjBtn();
afx_msg void OnCtrsRemoveBtn();
afx_msg void OnPwdBtn();
afx_msg void OnDblclkCtrsCounterList();
afx_msg void OnKillfocusSchedSampleEdit();
afx_msg void OnDeltaposSchedSampleSpin(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSelendokSampleUnitsCombo();
afx_msg void OnChangeUser();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// Generated OLE dispatch map functions
//{{AFX_DISPATCH(CCountersProperty)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_DISPATCH
DECLARE_DISPATCH_MAP()
DECLARE_INTERFACE_MAP()
private:
enum eValueRange {
eMinSampleInterval = 1,
eMaxSampleInterval = 999999,
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 );
void ImplementAdd ( BOOL bShowObjects );
void UpdateFileNameString ( void );
void UpdateLogStartString ( void );
void SetButtonState( void );
public:
DWORD CheckDuplicate( PPDH_COUNTER_PATH_ELEMENTS pCounter);
BOOL RemoveCounterFromHashTable( LPTSTR szCounterName, PPDH_COUNTER_PATH_ELEMENTS pCounterPath);
void SetupCountersHashTable( void );
void ClearCountersHashTable ( void );
PPDH_COUNTER_PATH_ELEMENTS InsertCounterToHashTable ( LPTSTR szCounterName );
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // _CTRSPROP_H_