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.
|
|
//
// MODULE: DSCREAD.H
//
// PURPOSE: dsc reading classes
//
// COMPANY: Saltmine Creative, Inc. (206)-284-7511 [email protected]
//
// AUTHOR: Oleg Kalosha
//
// ORIGINAL DATE: 8-19-98
//
// NOTES:
// >>> TBD: must deal with case where DSC file is in a CHM. I assume we must unpack it
// from CHM into a normal directory, then read it with BReadModel. Exception handling scheme
// must cope correctly with the fact that the error may be either from the CHM file or the
// DSC file. Maybe use CFileReader to read from the CHM file and write the copy
// to disk? JM 1/7/99
//
// Version Date By Comments
//--------------------------------------------------------------------
// V3.0 08-04-98 OK
//
#ifndef __DSCREAD_H_
#define __DSCREAD_H_
#include "BaseException.h"
#include "stateless.h"
#include "bnts.h"
////////////////////////////////////////////////////////////////////////////////////
// CDSCReaderException
////////////////////////////////////////////////////////////////////////////////////
class CDSCReader; class CDSCReaderException : public CBaseException { public: enum eErr { eErrRead, eErrGetDateTime, eErrUnpackCHM // for Local Troubleshooter only
} m_eErr;
protected: CDSCReader* m_pDSCReader;
public: // source_file is LPCSTR rather than LPCTSTR because __FILE__ is char[35]
CDSCReaderException(CDSCReader* reader, eErr err, LPCSTR source_file, int line); virtual ~CDSCReaderException();
public: virtual void Clear(); };
////////////////////////////////////////////////////////////////////////////////////
// CDSCReader
// This handles just the reading of BNTS. CBN packages it up for public consumption.
////////////////////////////////////////////////////////////////////////////////////
class CPhysicalFileReader; class CDSCReader : public CStateless { protected: CPhysicalFileReader* m_pPhysicalFileReader; CString m_strName; // network name
CString m_strPath; // full path and name of dsc file
BNTS m_Network; bool m_bIsRead; // network has been loaded
SYSTEMTIME m_stimeLastWrite; // when the DSC file was last written to
bool m_bDeleteFile; // Set to true when a temporary file originating from a
// CHM file needs to be deleted in the destructor.
public: CDSCReader(CPhysicalFileReader*); ~CDSCReader();
public: bool IsRead() const; bool IsValid() const;
public: // These functions to be ONLY public interface.
bool Read(); void Clear();
#ifdef LOCAL_TROUBLESHOOTER
private: bool CHMfileHandler( LPCTSTR path ); #endif
};
#endif
|