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.
76 lines
1.4 KiB
76 lines
1.4 KiB
#pragma once
|
|
|
|
#include "Resource.h"
|
|
#include <map>
|
|
|
|
#ifndef StringVector
|
|
#include <vector>
|
|
typedef std::vector<_bstr_t> StringVector;
|
|
#endif
|
|
|
|
#include "Argument.h"
|
|
#include "Switch.h"
|
|
|
|
|
|
enum ETask
|
|
{
|
|
TASK_NONE,
|
|
TASK_USER,
|
|
TASK_GROUP,
|
|
TASK_COMPUTER,
|
|
TASK_SECURITY,
|
|
TASK_SERVICE,
|
|
TASK_REPORT,
|
|
TASK_KEY,
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
// Parameter Map
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
class CParameterMap :
|
|
public std::map<int, _variant_t>
|
|
{
|
|
public:
|
|
|
|
CParameterMap(CArguments& rArgs)
|
|
{
|
|
Initialize(rArgs);
|
|
}
|
|
|
|
bool IsExist(int nParam)
|
|
{
|
|
return (find(nParam) != end());
|
|
}
|
|
|
|
bool GetValue(int nParam, bool& bValue);
|
|
bool GetValue(int nParam, long& lValue);
|
|
bool GetValue(int nParam, _bstr_t& strValue);
|
|
|
|
bool GetValues(int nParam, _variant_t& vntValues);
|
|
bool GetValues(int nParam, StringVector& vecValues);
|
|
|
|
protected:
|
|
|
|
void Initialize(CArguments& rArgs);
|
|
|
|
bool DoTask(LPCTSTR pszArg);
|
|
void DoSwitches(CArguments& rArgs);
|
|
void DoSwitch(int nSwitch, CArguments& rArgs);
|
|
|
|
_variant_t& Insert(int nParam);
|
|
|
|
void DoOptionFile(LPCTSTR pszFileName);
|
|
FILE* OpenOptionFile(LPCTSTR pszFileName);
|
|
int FindTask(FILE* fp);
|
|
void DoTask(FILE* fp, CSwitchMap& mapSwitchs);
|
|
void DoParameter(int nSwitch, LPCTSTR pszValue);
|
|
void DoTaskKey(CArguments& rArgs);
|
|
void VerifyIncludeExclude();
|
|
|
|
protected:
|
|
|
|
CSwitchMap m_mapSwitchs;
|
|
};
|