/* * _ F S M V C P Y . H * * Sources for directory iteration object * * Copyright 1986-1997 Microsoft Corporation, All Rights Reserved */ #ifndef __FSMVCPY_H_ #define __FSMVCPY_H_ #include // Metabase operations ------------------------------------------------------- // // class CAccessMetaOp ------------------------------------------------------- // class CAccessMetaOp : public CMetaOp { enum { DONT_INHERIT = 0 }; DWORD m_dwAcc; BOOL m_fAccessBlocked; // non-implemented // CAccessMetaOp& operator=( const CAccessMetaOp& ); CAccessMetaOp( const CAccessMetaOp& ); protected: // Subclass' operation to perform for each node where // a value is explicitly set. // virtual SCODE __fastcall ScOp(LPCWSTR pwszMbPath, UINT cch); public: virtual ~CAccessMetaOp() {} CAccessMetaOp (const LPMETHUTIL pmu, LPCWSTR pwszPath, DWORD dwAcc) : CMetaOp (pmu->GetEcb(), pwszPath, MD_ACCESS_PERM, DWORD_METADATA, FALSE), m_dwAcc(dwAcc), m_fAccessBlocked(FALSE) { } // If FAccessBlocked() returns true, the operation must // check the access directly on all resources that the // operation wishes to process // BOOL __fastcall FAccessBlocked() const { return m_fAccessBlocked; } }; // class CAuthMetaOp ------------------------------------------------------- // class CAuthMetaOp : public CMetaOp { enum { DONT_INHERIT = 0 }; DWORD m_dwAuth; BOOL m_fAccessBlocked; // non-implemented // CAuthMetaOp& operator=( const CAuthMetaOp& ); CAuthMetaOp( const CAuthMetaOp& ); protected: // Subclass' operation to perform for each node where // a value is explicitly set. // virtual SCODE __fastcall ScOp(LPCWSTR pwszMbPath, UINT cch); public: virtual ~CAuthMetaOp() {} CAuthMetaOp (const LPMETHUTIL pmu, LPCWSTR pwszPath, DWORD dwAuth) : CMetaOp (pmu->GetEcb(), pwszPath, MD_AUTHORIZATION, DWORD_METADATA, FALSE), m_dwAuth(dwAuth), m_fAccessBlocked(FALSE) { } // If FAccessBlocked() returns true, the operation must // check the access directly on all resources that the // operation wishes to process // BOOL __fastcall FAccessBlocked() const { return m_fAccessBlocked; } }; // class CIPRestrictionMetaOp ------------------------------------------------ // class CIPRestrictionMetaOp : public CMetaOp { enum { DONT_INHERIT = 0 }; BOOL m_fAccessBlocked; // non-implemented // CIPRestrictionMetaOp& operator=( const CIPRestrictionMetaOp& ); CIPRestrictionMetaOp( const CIPRestrictionMetaOp& ); protected: // Subclass' operation to perform for each node where // a value is explicitly set. // virtual SCODE __fastcall ScOp(LPCWSTR pwszMbPath, UINT cch); public: virtual ~CIPRestrictionMetaOp() {} CIPRestrictionMetaOp (const LPMETHUTIL pmu, LPCWSTR pwszPath) : CMetaOp (pmu->GetEcb(), pwszPath, MD_IP_SEC, BINARY_METADATA, FALSE), m_fAccessBlocked(FALSE) { } // If FAccessBlocked() returns true, the operation must // check the access directly on all resources that the // operation wishes to process // BOOL __fastcall FAccessBlocked() const { return m_fAccessBlocked; } }; // class CContentTypeMetaOp -------------------------------------------------- // class CContentTypeMetaOp : public CMetaOp { enum { DONT_INHERIT = 0 }; LPCWSTR m_pwszDestPath; BOOL m_fDelete; // non-implemented // CContentTypeMetaOp& operator=( const CContentTypeMetaOp& ); CContentTypeMetaOp( const CContentTypeMetaOp& ); protected: // Subclass' operation to perform for each node where // a value is explicitly set. // virtual SCODE __fastcall ScOp(LPCWSTR pwszMbPath, UINT cch); public: virtual ~CContentTypeMetaOp() {} CContentTypeMetaOp (const LPMETHUTIL pmu, LPCWSTR pwszSrcPath, LPCWSTR pwszDestPath, BOOL fDelete) : CMetaOp (pmu->GetEcb(), pwszSrcPath, MD_MIME_MAP, MULTISZ_METADATA, fDelete), m_pwszDestPath(pwszDestPath), m_fDelete(fDelete) { } }; // Helper functions // // XML Error construction helpers ------------------------------------------------ // SCODE ScAddMulti ( /* [in] */ CXMLEmitter& emitter, /* [in] */ IMethUtil * pmu, /* [in] */ LPCWSTR pwszPath, /* [in] */ LPCWSTR pwszErr, /* [in] */ ULONG hsc, /* [in] */ BOOL fCollection = FALSE, /* [in] */ CVRoot* pcvrTrans = NULL); // Access -------------------------------------------------------------------- // SCODE __fastcall ScCheckMoveCopyDeleteAccess ( /* [in] */ IMethUtil* pmu, /* [in] */ LPCWSTR pwszUrl, /* [in] */ CVRoot* pcvr, /* [in] */ BOOL fDirectory, /* [in] */ BOOL fCheckScriptmaps, /* [in] */ DWORD dwAccess, /* [out] */ SCODE* pscItem, /* [in] */ CXMLEmitter& msr); // Delete -------------------------------------------------------------------- // SCODE ScDeleteDirectoryAndChildren ( /* [in] */ IMethUtil* pmu, /* [in] */ LPCWSTR pwszUrl, /* [in] */ LPCWSTR pwszPath, /* [in] */ BOOL fCheckAccess, /* [in] */ DWORD dwAcc, /* [in] */ LONG lDepth, /* [in] */ CXMLEmitter& msr, /* [in] */ CVRoot* pcvrTranslate, /* [out] */ BOOL* pfDeleted, /* [in] */ CParseLockTokenHeader* plth, // Usually NULL -- no locktokens to worry about /* [in] */ BOOL fDeleteLocks); // Normally FALSE -- don't drop locks // MoveCopy ------------------------------------------------------------------ // void MoveCopyResource ( /* [in] */ IMethUtil* pmu, /* [in] */ DWORD dwAccRequired, /* [in] */ BOOL fDeleteSrc); #endif // __FSMVCPY_H_