PackFileManager.h
资源名称:DXGuide.zip [点击查看]
上传用户:wymy58
上传日期:2007-01-07
资源大小:2086k
文件大小:2k
源码类别:
DirextX编程
开发平台:
Visual C++
- // Copyright (C) 1998-1999 DXGuide. All Rights Reserved.
- // File: PackFileManager.h
- #ifndef _PACKFILEMANAGER__H
- #define _PACKFILEMANAGER__H
- #if _MSC_VER >= 1000
- #pragma once
- #endif // _MSC_VER >= 1000
- #include "PackFileManagerBaseClass.h"
- #include "FastFileManager.h"
- #include "DirectoryFileManager.h"
- #include "ZipFileManager.h"
- enum PackFileManagerType
- {
- PACKFILEMANAGER_AUTO = -1,
- PACKFILEMANAGER_NONE = 0,
- PACKFILEMANAGER_FASTFILE,
- PACKFILEMANAGER_DIRECTORYFILE,
- PACKFILEMANAGER_ZIPFILE,
- };
- class CPackFileManager
- {
- friend class CPackFile;
- public:
- CPackFileManager(void);
- virtual ~CPackFileManager();
- public:
- bool Load(LPCTSTR lpszName);
- CPackFileManager::PackFileManagerType GetPackFileManagerType(void) const;
- protected:
- static PackFileManagerType GetPackFileManagerType(LPCTSTR lpszName, bool& bResource);
- // Conversion routines
- public:
- operator CFastFileManager* const(void) const
- {
- ASSERT(GetPackFileManagerType() == PACKFILEMANAGER_FASTFILE);
- return static_cast<CFastFileManager* const>(m_pPackFileManager);
- }
- operator CDirectoryFileManager* const(void) const
- {
- ASSERT(GetPackFileManagerType() == PACKFILEMANAGER_DIRECTORYFILE);
- return static_cast<CDirectoryFileManager* const>(m_pPackFileManager);
- }
- operator CZipFileManager* const(void) const
- {
- ASSERT(GetPackFileManagerType() == PACKFILEMANAGER_ZIPFILE);
- return static_cast<CZipFileManager* const>(m_pPackFileManager);
- }
- public:
- void SetOuterFilePath(LPCTSTR strOuterFilePath)
- {
- m_strOuterFilePath = strOuterFilePath;
- }
- protected:
- CPackFileManagerBaseClass* m_pPackFileManager;
- CDirectoryFileManager* m_pOuterFileManager;
- CString m_strOuterFilePath;
- };
- #endif // _PACKFILEMANAGER__H