You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
4.0 KiB
122 lines
4.0 KiB
/*++
|
|
|
|
Copyright (C) 1996-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
smonprop.h
|
|
|
|
Abstract:
|
|
|
|
Header file for the sysmon property page base class.
|
|
|
|
--*/
|
|
|
|
#ifndef _SMONPROP_H_
|
|
#define _SMONPROP_H_
|
|
|
|
#define GUIDS_FROM_TYPELIB
|
|
#define WM_SETPAGEFOCUS (WM_USER+1000)
|
|
|
|
// Property page indices
|
|
enum {
|
|
GENERAL_PROPPAGE,
|
|
SOURCE_PROPPAGE,
|
|
COUNTER_PROPPAGE,
|
|
GRAPH_PROPPAGE,
|
|
APPEAR_PROPPAGE,
|
|
CPROPPAGES
|
|
};
|
|
|
|
#define CCHSTRINGMAX 40
|
|
|
|
// Class factory for all property pages
|
|
class CSysmonPropPageFactory : public IClassFactory
|
|
{
|
|
protected:
|
|
ULONG m_cRef;
|
|
INT m_nPageID;
|
|
|
|
public:
|
|
CSysmonPropPageFactory(INT nPageID);
|
|
~CSysmonPropPageFactory(void);
|
|
|
|
//IUnknown members
|
|
STDMETHODIMP QueryInterface(REFIID, PPVOID);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
//IClassPPFactory members
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, PPVOID);
|
|
STDMETHODIMP LockServer(BOOL);
|
|
};
|
|
|
|
typedef CSysmonPropPageFactory *PCSysmonPropPageFactory;
|
|
|
|
|
|
// Dialog proc for proprty pages
|
|
INT_PTR APIENTRY CALLBACK SysmonPropPageProc(HWND, UINT, WPARAM, LPARAM);
|
|
|
|
// Base property page class
|
|
class CSysmonPropPage : public IPropertyPage2
|
|
{
|
|
friend INT_PTR APIENTRY CALLBACK SysmonPropPageProc(HWND, UINT, WPARAM, LPARAM);
|
|
protected:
|
|
ULONG m_cRef; //Reference count
|
|
UINT m_uIDDialog; //Dialog ID
|
|
UINT m_uIDTitle; //Page Title ID
|
|
HWND m_hDlg; //Dialog handle
|
|
|
|
ULONG m_cx; //Dialog size
|
|
ULONG m_cy;
|
|
UINT m_cObjects; //Number of objects
|
|
LCID m_lcid; //Current locale
|
|
BOOL m_fActive; //Page is fully active
|
|
BOOL m_fDirty; //Page dirty?
|
|
|
|
INT m_dwEditControl; // Focus if specified by EditProperty
|
|
|
|
ISystemMonitor **m_ppISysmon; //Objects to notify
|
|
IPropertyPageSite *m_pIPropertyPageSite; //Frame's site
|
|
|
|
void SetChange(void); //Mark page changed
|
|
virtual BOOL GetProperties(void) = 0; //Get object properties
|
|
virtual BOOL SetProperties(void) = 0; //Put object properties
|
|
|
|
virtual void DialogItemChange(WORD wId, WORD wMsg) = 0; // Handle item change
|
|
virtual void MeasureItem(PMEASUREITEMSTRUCT) {}; // Handle user measure req
|
|
virtual void DrawItem(PDRAWITEMSTRUCT) {}; // Handle user draw req
|
|
virtual BOOL InitControls(void) // Initialize dialog controls
|
|
{ return TRUE; }
|
|
virtual void DeinitControls(void) {}; // Deinitialize dialog controls
|
|
virtual HRESULT EditPropertyImpl( DISPID ) { return E_NOTIMPL; }; // Set focus control
|
|
|
|
virtual BOOL WndProc(UINT uMsg, WPARAM wParam, LPARAM lParam); // Special msg processing
|
|
|
|
public:
|
|
CSysmonPropPage(void);
|
|
virtual ~CSysmonPropPage(void);
|
|
|
|
virtual BOOL Init(void);
|
|
void FreeAllObjects(void);
|
|
|
|
STDMETHODIMP QueryInterface(REFIID, LPVOID *);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
STDMETHODIMP SetPageSite(LPPROPERTYPAGESITE);
|
|
STDMETHODIMP Activate(HWND, LPCRECT, BOOL);
|
|
STDMETHODIMP Deactivate(void);
|
|
STDMETHODIMP GetPageInfo(LPPROPPAGEINFO);
|
|
STDMETHODIMP SetObjects(ULONG, LPUNKNOWN *);
|
|
STDMETHODIMP Show(UINT);
|
|
STDMETHODIMP Move(LPCRECT);
|
|
STDMETHODIMP IsPageDirty(void);
|
|
STDMETHODIMP Apply(void);
|
|
STDMETHODIMP Help(LPCOLESTR);
|
|
STDMETHODIMP TranslateAccelerator(LPMSG);
|
|
STDMETHODIMP EditProperty(DISPID);
|
|
};
|
|
typedef CSysmonPropPage *PCSysmonPropPage;
|
|
|
|
#endif //_SMONPROP_H_
|