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

165 lines
5.2 KiB
C++

/*++
Copyright (C) 1998-1999 Microsoft Corporation
Module Name:
smproppg.h
Abstract:
Class definitions for the property page base class.
--*/
#ifndef _SMPROPPG_H_
#define _SMPROPPG_H_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "smlogqry.h" // For shared data
#define MAXSTR 32
#define INVALID_DWORD -2 // SLQ_DISK_MAX_SIZE = -1
#define INVALID_DOUBLE -1.00
/////////////////////////////////////////////////////////////////////////////
// CSmPropertyPage dialog
#define VALIDATE_FOCUS 1
#define VALIDATE_APPLY 2
class CSmPropertyPage : public CPropertyPage
{
DECLARE_DYNCREATE(CSmPropertyPage)
// Construction
public:
CSmPropertyPage();
CSmPropertyPage (
UINT nIDTemplate,
LONG_PTR hConsole = NULL,
LPDATAOBJECT pDataObject = NULL );
virtual ~CSmPropertyPage();
public:
static UINT CALLBACK PropSheetPageProc( HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp );
DWORD SetContextHelpFilePath ( const CString& rstrPath );
const CString& GetContextHelpFilePath ( void ) { return m_strContextHelpFilePath; };
void SetModifiedPage ( const BOOL bModified = TRUE );
DWORD AllocInitCounterPath(
const LPTSTR szCounterPath,
PPDH_COUNTER_PATH_ELEMENTS* ppCounter );
// Dialog Data
//{{AFX_DATA(CSmPropertyPage)
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CSmPropertyPage)
public:
protected:
virtual BOOL OnInitDialog();
virtual BOOL OnSetActive();
//}}AFX_VIRTUAL
public:
LPFNPSPCALLBACK m_pfnOriginalCallback;
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CSmPropertyPage)
virtual BOOL OnHelpInfo( HELPINFO* );
virtual void OnContextMenu( CWnd*, CPoint );
//}}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()
protected:
enum eStartType {
eStartManually,
eStartImmediately,
eStartSched
};
void SetRunAs( CSmLogQuery* pQuery );
BOOL Initialize(CSmLogQuery* pQuery);
eStartType DetermineCurrentStartType ( void );
virtual INT GetFirstHelpCtrlId ( void ) { ASSERT ( FALSE ); return 0; }; // Subclass must override.
BOOL IsValidData ( CSmLogQuery* pQuery, DWORD fReason );
virtual BOOL IsValidLocalData() { return TRUE; }
BOOL Apply( CSmLogQuery* pQuery );
BOOL IsActive( void ) { return m_bIsActive; };
void SetIsActive( BOOL bIsActive ) { m_bIsActive = bIsActive; };
BOOL UpdateService( CSmLogQuery* pQuery, BOOL bSyncSerial = FALSE );
void SetHelpIds ( DWORD* pdwHelpIds ) { m_pdwHelpIds = pdwHelpIds; };
BOOL IsModifiedPage( void ) { return m_bIsModifiedPage; };
void ValidateTextEdit(CDataExchange * pDX,
int nIDC,
int nMaxChars,
DWORD * value,
DWORD minValue,
DWORD maxValue);
BOOL ValidateDWordInterval(int nIDC,
LPCWSTR strLogName,
long lValue,
DWORD minValue,
DWORD maxValue);
void OnDeltaposSpin(NMHDR * pNMHDR,
LRESULT * pResult,
DWORD * pValue,
DWORD dMinValue,
DWORD dMaxValue);
BOOL SampleTimeIsLessThanSessionTime( CSmLogQuery* pQuery );
BOOL SampleIntervalIsInRange( SLQ_TIME_INFO&, const CString& );
BOOL IsWritableQuery( CSmLogQuery* pQuery );
BOOL ConnectRemoteWbemFail(CSmLogQuery* pQuery, BOOL bNotTouchRunAs);
CWnd* GetRunAsWindow();
SLQ_PROP_PAGE_SHARED m_SharedData;
HINSTANCE m_hModule;
LPDATAOBJECT m_pDataObject;
CString m_strUserDisplay; // For RunAs
CString m_strUserSaved;
BOOL m_bCanAccessRemoteWbem;
BOOL m_bPwdButtonEnabled;
private:
LONG_PTR m_hConsole;
BOOL m_bIsActive;
CString m_strContextHelpFilePath;
DWORD* m_pdwHelpIds;
BOOL m_bIsModifiedPage;
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // _SMPROPPG_H_