mirror of https://github.com/tongzx/nt5src
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.
106 lines
2.7 KiB
106 lines
2.7 KiB
// Toolset.h A set of tools added by a menu item.
|
|
//
|
|
// Copyright (c) 1998-1999 Microsoft Corporation
|
|
|
|
#pragma once // MSINFO_TOOLSET_H
|
|
|
|
#include "StdAfx.h"
|
|
#include <afxtempl.h>
|
|
|
|
/*
|
|
* CTool - A single tool object, defining the menu item and interface for execution.
|
|
*
|
|
* History: a-jsari 11/11/97 Initial version.
|
|
*/
|
|
class CTool {
|
|
public:
|
|
CTool(CRegKey *pKeyTool = NULL);
|
|
~CTool() { }
|
|
|
|
const CString &GetName() const { return m_strName; }
|
|
const CString &GetDescription() const { return m_strDescription; }
|
|
const CTool &operator=(const CTool &tCopy);
|
|
HRESULT RunTool();
|
|
virtual BOOL IsValid() const { return m_fValid; }
|
|
virtual const CString &GetPath() { return m_strPath; }
|
|
virtual const CString &GetParam() { return m_strParam; }
|
|
|
|
static BOOL PolicyPermitRun();
|
|
|
|
protected:
|
|
BOOL PathExists() const;
|
|
|
|
BOOL m_fValid;
|
|
CString m_strName;
|
|
CString m_strPath;
|
|
CString m_strParam;
|
|
CString m_strDescription;
|
|
};
|
|
|
|
class CSystemInfoScope;
|
|
/*
|
|
* CCabTool - A tool to run the internal cab explosion code.
|
|
*
|
|
* History: a-jsari 2/13/98 Initial version
|
|
*/
|
|
class CCabTool : public CTool {
|
|
public:
|
|
CCabTool(CSystemInfoScope *pScope);
|
|
~CCabTool() {};
|
|
|
|
BOOL IsValid() const;
|
|
const CString &GetPath();
|
|
const CString &GetParam();
|
|
|
|
private:
|
|
CSystemInfoScope *m_pScope;
|
|
};
|
|
|
|
/*
|
|
* CToolset - A set of tools under a common heading.
|
|
*
|
|
* History: a-jsari 11/6/97 Initial version
|
|
*/
|
|
class CToolset {
|
|
public:
|
|
CToolset(CSystemInfoScope *pScope, CRegKey *pKeyTool = NULL, CString *szName = NULL);
|
|
~CToolset();
|
|
|
|
const CString &GetName() const { return m_strName; }
|
|
unsigned GetToolCount() const { return (unsigned)m_Tools.GetSize(); }
|
|
const CString &GetToolName(unsigned iTool) const { return m_Tools[iTool]->GetName(); }
|
|
HRESULT RunTool(unsigned iTool) const { return m_Tools[iTool]->RunTool(); }
|
|
HRESULT AddToMenu(unsigned long iSet, CMenu *pMenu);
|
|
const CToolset &operator=(const CToolset &tCopy);
|
|
|
|
static const unsigned MAXIMUM_TOOLS;
|
|
private:
|
|
static BOOL s_fCabAdded;
|
|
|
|
CMenu *m_pPopup;
|
|
CString m_strName;
|
|
CArray <CTool *, CTool * &> m_Tools;
|
|
};
|
|
|
|
/*
|
|
* CToolList - A list of toolsets. Currently only one of these exists in the
|
|
* CSystemInfo item.
|
|
*
|
|
* History: a-jsari 11/6/97 Initial version.
|
|
*/
|
|
class CToolList {
|
|
public:
|
|
CToolList(CSystemInfoScope *pScope);
|
|
~CToolList();
|
|
|
|
void Add(CToolset *pTool);
|
|
HRESULT AddToMenu(CMenu *pMenu);
|
|
CToolset *operator[](int iSet) const;
|
|
|
|
static long Register(BOOL fRegister = TRUE);
|
|
static void ReplaceString(CString & strString, const CString & strFind, const CString & strReplace);
|
|
private:
|
|
CMenu *m_pMainPopup;
|
|
CArray <CToolset *, CToolset * &> m_InternalList;
|
|
};
|
|
|