168 lines
5 KiB
C++
168 lines
5 KiB
C++
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1998 - 1999
|
|
//
|
|
// File: chooser.h
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
// Chooser.h
|
|
//
|
|
// HISTORY
|
|
// 13-May-1997 t-danm Creation.
|
|
//
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __CHOOSER_H_INCLUDED__
|
|
#define __CHOOSER_H_INCLUDED__
|
|
|
|
#include "tfcprop.h"
|
|
|
|
LPCTSTR PchGetMachineNameOverride();
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////
|
|
// class CAutoDeletePropPage
|
|
//
|
|
// This object is the backbone for property page
|
|
// that will *destroy* itself when no longer needed.
|
|
// The purpose of this object is to maximize code reuse
|
|
// among the various pages in the snapin wizards.
|
|
//
|
|
// INHERITANCE TREE (so far)
|
|
// CAutoDeletePropPage - Base object
|
|
// CChooseMachinePropPage - Dialog to select a machine name
|
|
// CFileMgmtGeneral - Dialog to select "File Services" (snapin\filemgmt\snapmgr.h)
|
|
// CMyComputerGeneral - Dialog for the "My Computer" (snapin\mycomput\snapmgr.h)
|
|
// CChoosePrototyperPropPage - Dialog to select prototyper demo (NYI)
|
|
//
|
|
// HISTORY
|
|
// 15-May-1997 t-danm Creation. Split of CChooseMachinePropPage
|
|
// to allow property pages to have more flexible dialog
|
|
// templates.
|
|
//
|
|
class CAutoDeletePropPage : public PropertyPage
|
|
{
|
|
public:
|
|
// Construction
|
|
CAutoDeletePropPage(UINT uIDD);
|
|
virtual ~CAutoDeletePropPage();
|
|
|
|
protected:
|
|
// Dialog Data
|
|
|
|
// Overrides
|
|
virtual BOOL OnSetActive();
|
|
|
|
// Implementation
|
|
protected:
|
|
void OnHelp(LPHELPINFO lpHelp);
|
|
void OnContextHelp(HWND hwnd);
|
|
|
|
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
|
|
|
|
// This mechanism deletes the CAutoDeletePropPage object
|
|
// when the wizard is finished
|
|
struct
|
|
{
|
|
INT cWizPages; // Number of pages in wizard
|
|
LPFNPSPCALLBACK pfnOriginalPropSheetPageProc;
|
|
} m_autodeleteStuff;
|
|
|
|
static UINT CALLBACK S_PropSheetPageProc(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp);
|
|
|
|
|
|
protected:
|
|
CString m_strCaption; // Covers for MFC4.2's missing support for Wiz97.
|
|
// without this override, CPropertyPage::m_strCaption
|
|
// address is miscalculated and GPF ensues.
|
|
|
|
CString m_strHelpFile; // Name for the .hlp file
|
|
const DWORD * m_prgzHelpIDs; // Optional: Pointer to an array of help IDs
|
|
|
|
public:
|
|
/////////////////////////////////////////////////////////////////////
|
|
void SetCaption(UINT uStringID);
|
|
void SetCaption(LPCTSTR pszCaption);
|
|
void SetHelp(LPCTSTR szHelpFile, const DWORD rgzHelpIDs[]);
|
|
void EnableDlgItem(INT nIdDlgItem, BOOL fEnable);
|
|
}; // CAutoDeletePropPage
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////
|
|
// class CChooseMachinePropPage
|
|
//
|
|
// This object is a stand-alone property page used to
|
|
// select a computer name.
|
|
//
|
|
// The object CChooseMachinePropPage can have its dialog
|
|
// template replaced to allow a new wizard without any new code.
|
|
// The object can also be inherited, allowing easy extentionability.
|
|
//
|
|
// RESTRICTIONS:
|
|
// If the user wishes to provide its own dialog template, here
|
|
// are the dialog IDs that must present:
|
|
// IDC_CHOOSER_RADIO_LOCAL_MACHINE - Select local machine.
|
|
// IDC_CHOOSER_RADIO_SPECIFIC_MACHINE - Select a specific machine.
|
|
// IDC_CHOOSER_EDIT_MACHINE_NAME - Edit field to enter the machine name.
|
|
// There are also optional IDs:
|
|
// IDC_CHOOSER_BUTTON_BROWSE_MACHINENAMES - Browse to select a machine name.
|
|
// IDC_CHOOSER_CHECK_OVERRIDE_MACHINE_NAME - Checkbox to allow the machine name to be overriden by command line.
|
|
//
|
|
class CChooseMachinePropPage : public CAutoDeletePropPage
|
|
{
|
|
public:
|
|
enum { IID_DEFAULT = IDD_CHOOSER_CHOOSE_MACHINE };
|
|
|
|
public:
|
|
// Construction
|
|
CChooseMachinePropPage(UINT uIDD = IID_DEFAULT);
|
|
virtual ~CChooseMachinePropPage();
|
|
|
|
protected:
|
|
void InitChooserControls();
|
|
|
|
// MFC replacements
|
|
BOOL UpdateData(BOOL fSuckFromDlg = TRUE);
|
|
BOOL OnCommand(WPARAM wParam, LPARAM lParam);
|
|
|
|
// Dialog Data
|
|
BOOL m_fIsRadioLocalMachine;
|
|
BOOL m_fEnableMachineBrowse;
|
|
CString m_strMachineName;
|
|
DWORD* m_pdwFlags;
|
|
|
|
// Overrides
|
|
public:
|
|
virtual BOOL OnWizardFinish();
|
|
protected:
|
|
|
|
// Implementation
|
|
protected:
|
|
virtual BOOL OnInitDialog();
|
|
void OnRadioLocalMachine();
|
|
void OnRadioSpecificMachine();
|
|
void OnBrowse();
|
|
|
|
|
|
protected:
|
|
CString * m_pstrMachineNameOut; // OUT: Pointer to the CString object to store the machine name
|
|
CString * m_pstrMachineNameEffectiveOut; // OUT: Pointer to the CString object to store the effective machine name
|
|
|
|
public:
|
|
void InitMachineName(LPCTSTR pszMachineName);
|
|
void SetOutputBuffers(
|
|
OUT CString * pstrMachineNamePersist,
|
|
OUT OPTIONAL CString * pstrMachineNameEffective,
|
|
OUT DWORD* m_pdwFlags);
|
|
|
|
}; // CChooseMachinePropPage
|
|
|
|
|
|
#endif // ~__CHOOSER_H_INCLUDED__
|
|
|