Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

508 lines
16 KiB

/*======================================================================================//
| Process Control //
| //
|Copyright (c) 1998 Sequent Computer Systems, Incorporated. All rights reserved. //
| //
|File Name: ManagementRuleWizards.h //
| //
|Description: Implementation of management rule wizards //
| //
|Created: Paul Skoglund 09-1998 //
| //
|Rev History: //
| //
|=======================================================================================*/
#ifndef __MANAGEMENTRULEWIZARDS_H__
#define __MANAGEMENTRULEWIZARDS_H__
#include "BaseNode.h"
#include "ppage.h"
extern bool GetGrpNameList(PCid id, list<tstring> &jobs);
extern list<tstring> *GetGrpNameList(PCid id);
BOOL IsValidName(const CComBSTR &bStr, BOOL nullOK);
extern BOOL ProcRuleWizard(int nTitle, const list<tstring> &jobsdefined, PCProcDetail &out, const PCSystemParms &SystemParms, PROC_NAME *procName = NULL);
extern BOOL GroupRuleWizard(int nTitle, PCJobDetail &out, const PCSystemParms &SystemParms, JOB_NAME *jobName = NULL);
class CProcNameWiz :
public CMySnapInPropertyWizardImpl<CProcNameWiz>
{
public :
CProcNameWiz(WIZ_POSITION pos, int nTitle, PCProcDetail *ProcDetail);
~CProcNameWiz();
enum { IDD = IDD_PROCNAME_WIZ };
enum { ID_HeaderTitle = IDS_PROCESSALIAS_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_PROCESSALIAS_HDRSUBTITLE };
BEGIN_MSG_MAP(CProcNameWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CProcNameWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
void SetReadOnly() { m_bReadOnly = TRUE;}
void SetNoNameChange() { m_bNoNameChange = TRUE;}
private:
PCProcDetail *m_pProcDetail;
BOOL m_bReadOnly;
BOOL m_bNoNameChange;
};
class CProcGrpMemberWiz :
public CMySnapInPropertyWizardImpl<CProcGrpMemberWiz>
{
public :
CProcGrpMemberWiz(WIZ_POSITION pos, int nTitle, PCProcDetail *ProcDetail, const list<tstring> &jobsdefined);
~CProcGrpMemberWiz();
enum { IDD = IDD_PROCJOBMEMBER_WIZ };
enum { ID_HeaderTitle = IDS_GRPMEM_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_GRPMEM_HDRSUBTITLE };
BEGIN_MSG_MAP(CProcGrpMemberWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
COMMAND_HANDLER(IDC_JOBMEMBER_CHK, BN_CLICKED, OnJobChk)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CProcGrpMemberWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnJobChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
void SetReadOnly() { m_bReadOnly = TRUE;}
private:
PCProcDetail *m_pProcDetail;
BOOL m_bReadOnly;
const list<tstring> &m_JobsExisting;
};
class CAffinityWiz :
public CMySnapInPropertyWizardImpl<CAffinityWiz>
{
public :
CAffinityWiz(WIZ_POSITION pos, int nTitle, PCProcDetail *ProcDetail, AFFINITY ProcessorMask = 0xFFffFFff);
CAffinityWiz(WIZ_POSITION pos, int nTitle, PCJobDetail *JobDetail, AFFINITY ProcessorMask = 0xFFffFFff);
~CAffinityWiz();
enum { IDD = IDD_AFFINITY_WIZ };
enum { ID_HeaderTitle = IDS_AFFINITY_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_AFFINITY_HDRSUBTITLE };
BEGIN_MSG_MAP(CAffinityWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
COMMAND_RANGE_HANDLER(IDC_AFFINITY1, IDC_AFFINITY64, OnAffinityEdit)
COMMAND_HANDLER(IDC_AFFINITY_CHK, BN_CLICKED, OnChk)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CAffinityWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnAffinityEdit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
BOOL OnSetActive();
void SetReadOnly() { m_bReadOnly = TRUE;}
private:
typedef enum _PageType
{
PROCESS_PAGE,
JOB_PAGE,
} PageType;
PageType m_PageType;
PCProcDetail *m_pProcDetail;
PCJobDetail *m_pJobDetail;
BOOL m_bReadOnly;
AFFINITY m_ProcessorMask;
void Initialize();
void ApplyControlEnableRules(BOOL bForceDisable);
};
class CPriorityWiz :
public CMySnapInPropertyWizardImpl<CPriorityWiz>
{
public :
CPriorityWiz(WIZ_POSITION pos, int nTitle, PCProcDetail *ProcDetail);
CPriorityWiz(WIZ_POSITION pos, int nTitle, PCJobDetail *JobDetail);
~CPriorityWiz();
enum { IDD = IDD_PRIORITY_WIZ };
enum { ID_HeaderTitle = IDS_PRIORITY_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_PRIORITY_HDRSUBTITLE };
BEGIN_MSG_MAP(CPriorityWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
COMMAND_HANDLER(IDC_PRIORITY_CHK, BN_CLICKED, OnChk)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CPriorityWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
BOOL OnSetActive();
void SetReadOnly() { m_bReadOnly = TRUE;}
private:
typedef enum _PageType
{
PROCESS_PAGE,
JOB_PAGE,
} PageType;
PageType m_PageType;
PCProcDetail *m_pProcDetail;
PCJobDetail *m_pJobDetail;
BOOL m_bReadOnly;
void Initialize();
void ApplyControlEnableRules(BOOL bForceDisable);
};
class CJobNameWiz :
public CMySnapInPropertyWizardImpl<CJobNameWiz>
{
public :
CJobNameWiz(WIZ_POSITION pos, int nTitle, PCJobDetail *JobDetail);
~CJobNameWiz();
enum { IDD = IDD_JOBNAME_WIZ };
enum { ID_HeaderTitle = IDS_GRPNAME_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_GRPNAME_HDRSUBTITLE };
BEGIN_MSG_MAP(CJobNameWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CJobNameWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
void SetReadOnly() { m_bReadOnly = TRUE;}
void SetNoNameChange() { m_bNoNameChange = TRUE;}
private:
PCJobDetail *m_pJobDetail;
BOOL m_bReadOnly;
BOOL m_bNoNameChange;
};
class CSchedulingClassWiz :
public CMySnapInPropertyWizardImpl<CSchedulingClassWiz>
{
public :
CSchedulingClassWiz(WIZ_POSITION pos, int nTitle, SCHEDULING_CLASS *sclass, bool *sclasschk);
~CSchedulingClassWiz();
enum { IDD = IDD_SCHEDULING_CLASS_WIZ };
enum { ID_HeaderTitle = IDS_SCHEDCLASS_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_SCHEDCLASS_HDRSUBTITLE };
BEGIN_MSG_MAP(CSchedulingClassWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
COMMAND_HANDLER(IDC_SCHEDULING_CHK, BN_CLICKED, OnChk)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CSchedulingClassWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
void SetReadOnly() { m_bReadOnly = TRUE;}
private:
bool &m_schedClasschk;
SCHEDULING_CLASS &m_schedClass;
BOOL m_bReadOnly;
};
class CWorkingSetWiz :
public CMySnapInPropertyWizardImpl<CWorkingSetWiz>
{
public :
CWorkingSetWiz(WIZ_POSITION pos, int nTitle, PCProcDetail *ProcDetail);
CWorkingSetWiz(WIZ_POSITION pos, int nTitle, PCJobDetail *JobDetail);
~CWorkingSetWiz();
enum { IDD = IDD_MEMORY_WS_WIZ };
enum { ID_HeaderTitle = IDS_WSET_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_WSET_HDRSUBTITLE };
BEGIN_MSG_MAP(CWorkingSetWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
NOTIFY_HANDLER (IDC_MINWS_SPIN, UDN_DELTAPOS, OnSpin)
NOTIFY_HANDLER (IDC_MAXWS_SPIN, UDN_DELTAPOS, OnSpin)
COMMAND_HANDLER(IDC_WORKINGSET_CHK, BN_CLICKED, OnChk)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CWorkingSetWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnSpin(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
BOOL Validate(BOOL bSave = FALSE);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
BOOL OnSetActive();
void SetReadOnly() { m_bReadOnly = TRUE;}
private:
PCProcDetail *m_pProcDetail;
PCJobDetail *m_pJobDetail;
BOOL m_bReadOnly;
void Initialize();
void ApplyControlEnableRules(BOOL bForceDisable);
};
class CCommittedMemoryWiz :
public CMySnapInPropertyWizardImpl<CCommittedMemoryWiz>
{
public :
CCommittedMemoryWiz(WIZ_POSITION pos, int nTitle, MEMORY_VALUE *procmemorylimit, bool *procmemorylimitchk, MEMORY_VALUE *jobmemorylimit, bool *jobmemorylimitchk);
~CCommittedMemoryWiz();
enum { IDD = IDD_MEMORY_COMMIT_WIZ };
enum { ID_HeaderTitle = IDS_CMEM_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_CMEM_HDRSUBTITLE };
BEGIN_MSG_MAP(CCommittedMemoryWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
NOTIFY_HANDLER (IDC_PROC_SPIN, UDN_DELTAPOS, OnSpin)
NOTIFY_HANDLER (IDC_JOB_SPIN, UDN_DELTAPOS, OnSpin)
COMMAND_HANDLER(IDC_PROCMEMORY_CHK, BN_CLICKED, OnChk)
COMMAND_HANDLER(IDC_JOBMEMORY_CHK, BN_CLICKED, OnChk)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CCommittedMemoryWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnSpin(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
BOOL Validate(BOOL bSave = FALSE);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
void SetReadOnly() { m_bReadOnly = TRUE;}
private:
bool &m_procmemorylimitchk;
MEMORY_VALUE &m_procmemorylimit;
bool &m_jobmemorylimitchk;
MEMORY_VALUE &m_jobmemorylimit;
BOOL m_bReadOnly;
};
class CProcCountWiz :
public CMySnapInPropertyWizardImpl<CProcCountWiz>
{
public :
CProcCountWiz(WIZ_POSITION pos, int nTitle, PROC_COUNT *processcount, bool *processcountchk);
~CProcCountWiz();
enum { IDD = IDD_PROC_COUNT_WIZ };
enum { ID_HeaderTitle = IDS_PROCCOUNT_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_PROCCOUNT_HDRSUBTITLE };
BEGIN_MSG_MAP(CProcCountWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
COMMAND_HANDLER(IDC_PROCESSCOUNT_CHK, BN_CLICKED, OnChk)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CProcCountWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
BOOL Validate(BOOL bSave = FALSE);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
void SetReadOnly() { m_bReadOnly = TRUE;}
private:
bool &m_processcountchk;
PROC_COUNT &m_processcount;
BOOL m_bReadOnly;
};
class CTimeWiz :
public CMySnapInPropertyWizardImpl<CTimeWiz>
{
public :
CTimeWiz(WIZ_POSITION pos, int nTitle, TIME_VALUE *procusertime, bool *procusertimechk, TIME_VALUE *jobusertime, bool *jobusertimechk, bool *jobmsgontimelimit);
~CTimeWiz();
enum { IDD = IDD_TIME_WIZ };
enum { ID_HeaderTitle = IDS_CPUTIME_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_CPUTIME_HDRSUBTITLE };
BEGIN_MSG_MAP(CTimeWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
COMMAND_HANDLER(IDC_PROCUSERTIME_CHK, BN_CLICKED, OnChk)
COMMAND_HANDLER(IDC_JOBUSERTIME_CHK, BN_CLICKED, OnChk)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CTimeWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
BOOL Validate(BOOL bSave = FALSE);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
void SetReadOnly() { m_bReadOnly = TRUE;}
private:
bool &m_procusertimechk;
TIME_VALUE &m_procusertime;
bool &m_jobusertimechk;
TIME_VALUE &m_jobusertime;
bool &m_jobmsgontimelimit;
BOOL m_bReadOnly;
};
class CAdvancedWiz :
public CMySnapInPropertyWizardImpl<CAdvancedWiz>
{
public :
CAdvancedWiz(WIZ_POSITION pos, int nTitle, bool *endjob, bool *unhandledexcept);
~CAdvancedWiz();
enum { IDD = IDD_ADVANCED_WIZ };
enum { ID_HeaderTitle = IDS_ADVANCED_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_ADVANCED_HDRSUBTITLE };
BEGIN_MSG_MAP(CAdvancedWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CAdvancedWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
BOOL Validate(BOOL bSave = FALSE);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
void SetReadOnly() { m_bReadOnly = TRUE;}
private:
bool &m_endjob;
bool &m_unhandledexcept;
BOOL m_bReadOnly;
};
class CAdvBreakawayWiz :
public CMySnapInPropertyWizardImpl<CAdvBreakawayWiz>
{
public :
CAdvBreakawayWiz(WIZ_POSITION pos, int nTitle, bool *breakaway, bool *silentbreakaway);
~CAdvBreakawayWiz();
enum { IDD = IDD_ADV_BREAKAWAY_WIZ};
enum { ID_HeaderTitle = IDS_ADV_BREAKAWAY_HDRTITLE };
enum { ID_HeaderSubTitle = IDS_ADV_BREAKAWAY_HDRSUBTITLE };
BEGIN_MSG_MAP(CAdvBreakawayWiz)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_HELP, OnWMHelp)
CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl<CAdvBreakawayWiz>)
END_MSG_MAP()
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
BOOL Validate(BOOL bSave = FALSE);
BOOL UpdateData(BOOL bSaveAndValidate = TRUE);
BOOL OnWizardNext();
void SetReadOnly() { m_bReadOnly = TRUE;}
private:
bool &m_breakaway;
bool &m_silentbreakaway;
BOOL m_bReadOnly;
};
#endif //ifdef __MANAGEMENTRULEWIZARDS_H__