Windows-Server-2003/admin/pchealth/sysinfo/msconfig/exe/pagebootini.h

135 lines
4.1 KiB
C++

//=============================================================================
// PageBootIni.h : Declaration of the CPageBootIni
//
// TESTING NOTE:
//
// If the registry value "HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig:boot.ini"
// is set, that string will indicate what file this tab edits (otherwise it will
// be editing the c:\boot.ini file). For testing without interfering with your
// real boot.ini file, make a copy of boot.ini, set it to the same attributes
// and set this key appropriately.
//=============================================================================
#if !defined(AFX_PAGEBOOTINI_H__30CE1B24_CA43_4AFF_870C_7D49CCCF86BF__INCLUDED_)
#define AFX_PAGEBOOTINI_H__30CE1B24_CA43_4AFF_870C_7D49CCCF86BF__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "PageBase.h"
#include "MSConfigState.h"
/////////////////////////////////////////////////////////////////////////////
// CPageBootIni dialog
#define BOOT_INI _T("c:\\boot.ini")
class CPageBootIni : public CPropertyPage, public CPageBase
{
DECLARE_DYNCREATE(CPageBootIni)
friend LRESULT BootIniEditSubclassProc(HWND hwnd, UINT wm, WPARAM wp, LPARAM lp);
// Construction
public:
CPageBootIni();
~CPageBootIni();
void InitializePage();
BOOL LoadBootIni(CString strFileName = _T(""));
void SyncControlsToIni(BOOL fSyncEditField = TRUE);
void SelectLine(int index);
void SetDefaultOS(int iIndex);
BOOL SetBootIniContents(const CString & strNewContents, const CString & strAddedExtension = _T(""));
void ChangeCurrentOSFlag(BOOL fAdd, LPCTSTR szFlag);
LPCTSTR GetName() { return _T("bootini"); };
TabState GetCurrentTabState();
BOOL OnApply();
void CommitChanges();
void SetNormal();
void SetDiagnostic();
// Dialog Data
//{{AFX_DATA(CPageBootIni)
enum { IDD = IDD_PAGEBOOTINI };
// NOTE - ClassWizard will add data members here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_DATA
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CPageBootIni)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CPageBootIni)
virtual BOOL OnInitDialog();
afx_msg void OnBootMoveDown();
afx_msg void OnBootMoveUp();
afx_msg void OnSelChangeList();
afx_msg void OnClickedBase();
afx_msg void OnClickedBootLog();
afx_msg void OnClickedNoGUIBoot();
afx_msg void OnClickedSOS();
afx_msg void OnClickedSafeBoot();
afx_msg void OnClickedSBDSRepair();
afx_msg void OnClickedSBMinimal();
afx_msg void OnClickedSBMinimalAlt();
afx_msg void OnClickedSBNetwork();
afx_msg void OnChangeEditTimeOut();
afx_msg void OnKillFocusEditTimeOut();
afx_msg void OnClickedBootAdvanced();
afx_msg void OnClickedSetAsDefault();
afx_msg void OnClickedCheckBootPaths();
afx_msg void OnDestroy();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
CStringArray m_arrayIniLines; // array of lines in the ini file
int m_nTimeoutIndex; // list index of the "timeout=" line
int m_nDefaultIndex; // list index of the "default=" line
int m_nMinOSIndex; // first list index of an OS line
int m_nMaxOSIndex; // last list index of an OS line
CString m_strSafeBoot; // the current string for the safeboot flag
BOOL m_fIgnoreEdit; // used to avoid a recursion problem
CString m_strOriginalContents; // contents of the BOOT.INI as read
CString m_strFileName; // name (with path) of the boot.ini file
TabState m_stateCurrent; // USER or NORMAL state
HWND GetDlgItemHWND(UINT nID)
{
HWND hwnd = NULL;
CWnd * pWnd = GetDlgItem(nID);
if (pWnd)
hwnd = pWnd->m_hWnd;
ASSERT(hwnd);
return hwnd;
}
void UserMadeChange()
{
m_stateCurrent = USER;
SetModified(TRUE);
}
private:
BOOL m_fModified;
void SetModified(BOOL bChanged = TRUE)
{
m_fModified = bChanged;
CPropertyPage::SetModified(bChanged);
}
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_PAGEBOOTINI_H__30CE1B24_CA43_4AFF_870C_7D49CCCF86BF__INCLUDED_)