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.
|
|
#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_
|