WindowsXP-SP1/enduser/troubleshoot/tshoot/chmfilereader.h

73 lines
2.2 KiB
C++

//
// MODULE: CHMFileReader.CPP
//
// PURPOSE: interface for CHM file reading class CCHMFileReader
//
// COMPANY: Saltmine Creative, Inc. (206)-284-7511 support@saltmine.com
//
// AUTHOR: Joe Mabel
//
// ORIGINAL DATE: 01-18-99
//
// NOTES:
//
// Version Date By Comments
//--------------------------------------------------------------------
// V3.1 01-18-99 JM
//
#if !defined(AFX_CHMFILEREADER_H__1A2C05D6_AEFC_11D2_9658_00C04FC22ADD__INCLUDED_)
#define AFX_CHMFILEREADER_H__1A2C05D6_AEFC_11D2_9658_00C04FC22ADD__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "fileread.h"
class CFileSystem;
class CSubFileSystem;
class CCHMFileReader : public CPhysicalFileReader
{
private:
CString m_strCHMPath; // full path and name of CHM
CString m_strStreamName; // name of stream within CHM
CFileSystem* m_pFileSystem;
CSubFileSystem* m_pSubFileSystem;
private:
CCHMFileReader(); // do not instantiate
public:
CCHMFileReader(CString strCHMPath, CString strStreamName);
CCHMFileReader( CString strFullCHMname );
virtual ~CCHMFileReader();
protected:
// only CFileReader can access these functions !!!
virtual bool CloseHandle(); // doesn't throw exception, therefore may be used by exception class.
virtual void Open();
virtual void ReadData(LPTSTR * ppBuf);
public:
// return full file path and its components
CString GetPathName() const;
CString GetJustPath() const {return m_strCHMPath;}
CString GetJustName() const {return m_strStreamName;}
CString GetJustNameWithoutExtension() const;
CString GetJustExtension() const;
bool GetFileTime(CAbstractFileReader::EFileTime type, time_t& out) const;
CString GetNameToLog() const;
static bool IsCHMfile( const CString& strPath ); // Returns true if the first few
// characters of the path specification
// match a given sequence.
static bool IsPathToCHMfile( const CString& strPath ); // returns true if this is
// a full path to a CHM file
static CString FormCHMPath( const CString strPathToCHMfile ); // forms mk:@msitstore:path::/stream
// string
};
#endif // !defined(AFX_CHMFILEREADER_H__1A2C05D6_AEFC_11D2_9658_00C04FC22ADD__INCLUDED_)