135 lines
3.5 KiB
C++
135 lines
3.5 KiB
C++
#ifndef _MASSUPDT_H_
|
|
#define _MASSUPDT_H_
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
// Abstract class for mass property updates
|
|
class CMassPropertyUpdater : public CMDKey
|
|
{
|
|
public:
|
|
CMassPropertyUpdater(DWORD dwMDIdentifier, DWORD dwMDDataType );
|
|
~CMassPropertyUpdater();
|
|
|
|
// pass in the starting node
|
|
virtual HRESULT Update( LPCTSTR strStartNode, BOOL fStopOnErrors = FALSE );
|
|
|
|
protected:
|
|
// update at a certain path
|
|
virtual HRESULT UpdateOne( LPWSTR strPath ) = 0;
|
|
|
|
DWORD m_dwMDIdentifier;
|
|
DWORD m_dwMDDataType;
|
|
|
|
CStringList m_pathList;
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
class CInvertScriptMaps : public CMassPropertyUpdater
|
|
{
|
|
public:
|
|
CInvertScriptMaps():
|
|
CMassPropertyUpdater(MD_SCRIPT_MAPS, MULTISZ_METADATA) {;}
|
|
~CInvertScriptMaps() {;}
|
|
|
|
protected:
|
|
#define SZ_INVERT_ALL_VERBS _T("OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE")
|
|
|
|
// update at a certain path
|
|
virtual HRESULT UpdateOne( LPWSTR strPath );
|
|
HRESULT InvertOneScriptMap( CString& csMap );
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
class CIPSecRefBitAdder : public CMassPropertyUpdater
|
|
{
|
|
public:
|
|
CIPSecRefBitAdder():
|
|
CMassPropertyUpdater(MD_IP_SEC, BINARY_METADATA) {;}
|
|
~CIPSecRefBitAdder() {;}
|
|
|
|
protected:
|
|
// update at a certain path
|
|
virtual HRESULT UpdateOne( LPWSTR strPath );
|
|
};
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
// use this one for c:\windows\system type paths
|
|
class CPhysicalPathFixer : public CMassPropertyUpdater
|
|
{
|
|
public:
|
|
CPhysicalPathFixer( CString& szOldSysPath, CString &szNewSysPath );
|
|
~CPhysicalPathFixer() {;}
|
|
|
|
void SetPaths( CString& szOldSysPath, CString &szNewSysPath )
|
|
{ m_szOldSysPath = szOldSysPath; m_szNewSysPath = szNewSysPath; }
|
|
|
|
// pass in the starting node
|
|
virtual HRESULT Update( LPCTSTR strStartNode, BOOL fStopOnErrors = FALSE );
|
|
|
|
protected:
|
|
// update at a certain path
|
|
virtual HRESULT UpdateOne( LPWSTR strPath );
|
|
HRESULT UpdateOneMULTISZ_DATA( LPWSTR strPath );
|
|
HRESULT UpdateOneSTRING_DATA( LPWSTR strPath );
|
|
HRESULT UpdateOneSTRING_DATA_EXPAND( LPWSTR strPath );
|
|
|
|
HRESULT UpdateOnePath( CString& csPath );
|
|
|
|
// instance variables
|
|
CString m_szOldSysPath;
|
|
CString m_szNewSysPath;
|
|
};
|
|
|
|
//---------------------------------------------------------------
|
|
// use this one for c:\windows type paths
|
|
class CPhysicalPathFixer2 : public CPhysicalPathFixer
|
|
{
|
|
public:
|
|
CPhysicalPathFixer2( CString& szOldSysPath, CString &szNewSysPath ):
|
|
CPhysicalPathFixer( szOldSysPath , szNewSysPath )
|
|
{;}
|
|
~CPhysicalPathFixer2() {;}
|
|
|
|
// pass in the starting node
|
|
virtual HRESULT Update( LPCTSTR strStartNode, BOOL fStopOnErrors = FALSE );
|
|
};
|
|
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
class CFixCustomErrors : public CMassPropertyUpdater
|
|
{
|
|
public:
|
|
CFixCustomErrors():
|
|
CMassPropertyUpdater(MD_CUSTOM_ERROR, MULTISZ_METADATA) {;}
|
|
~CFixCustomErrors() {;}
|
|
|
|
protected:
|
|
|
|
// update at a certain path
|
|
virtual HRESULT UpdateOne( LPWSTR strPath );
|
|
};
|
|
|
|
|
|
|
|
//---------------------------------------------------------------
|
|
class CEnforceMaxConnection : public CMassPropertyUpdater
|
|
{
|
|
public:
|
|
CEnforceMaxConnection():
|
|
CMassPropertyUpdater(MD_MAX_CONNECTIONS, DWORD_METADATA) {;}
|
|
~CEnforceMaxConnection() {;}
|
|
|
|
protected:
|
|
|
|
// update at a certain path
|
|
virtual HRESULT UpdateOne( LPWSTR strPath );
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif //_MASSUPDT_H_
|