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.
|
|
// 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; };
|