Blame ports/MSVC++/CMP3Stream/INCLUDE/IIEP_FileIn.H

Packit c32a2d
//
Packit c32a2d
//                         __ __ __ __   __ __ __ __   __ __ __ __   __ __ __ __
Packit c32a2d
//                        /_//_//_//_/\ /_//_//_//_/\ /_//_//_//_/\ /_//_//_//_/\
Packit c32a2d
//                        \_/_//_/\\_\/ \_/_//_/\\_\//_/\\_\\_\\_\//_/\\_\\_/_/\/
Packit c32a2d
//                         /_//_/\/      /_//_/\/   /_/\/ __      /_/\/ __ /_/\/
Packit c32a2d
//                        /_//_/\/      /_//_/\/   /_//_//_/\    /_//_//_//_/\/
Packit c32a2d
//                       /_//_/\/      /_//_/\/   /_/\\_\\_\/   /_/\\_\\_\\_\/
Packit c32a2d
//                   __ /_//_/\/   __ /_//_/\/   /_/\/ __ __   /_/\/
Packit c32a2d
//                  /_//_//_//_/\ /_//_//_//_/\ /_//_//_//_/\ /_/\/
Packit c32a2d
//                  \_\\_\\_\\_\/ \_\\_\\_\\_\/ \_\\_\\_\\_\/ \_\/
Packit c32a2d
//                                                    
Packit c32a2d
//
Packit c32a2d
//                     ..::  Interactive Internet Entertainment Platform  ::..
Packit c32a2d
//
Packit c32a2d
//                         (C) 2000-2005, FAN YI PENG. ALL RIGHTS RESERVED
Packit c32a2d
//
Packit c32a2d
// ________________________________________________________________________________________________
Packit c32a2d
//
Packit c32a2d
/// @file  IIEP_FileIn.H
Packit c32a2d
/// @brief 文件输入接口类
Packit c32a2d
// ________________________________________________________________________________________________
Packit c32a2d
//
Packit c32a2d
//
Packit c32a2d
//                               _____________________________________
Packit c32a2d
//                              |                                     |
Packit c32a2d
//                              |                DATA                 |
Packit c32a2d
// _____________________________|_____________________________________|____________________________
Packit c32a2d
//
Packit c32a2d
//                                            __________
Packit c32a2d
// __________________________________________|  CONFIG  |__________________________________________
Packit c32a2d

Packit c32a2d
#pragma once
Packit c32a2d

Packit c32a2d
// ____________________________________________ CONFIG ____________________________________________
Packit c32a2d
//
Packit c32a2d
//                                            __________
Packit c32a2d
// __________________________________________|  HEADER  |__________________________________________
Packit c32a2d

Packit c32a2d
#include <stdio.h>
Packit c32a2d
#include <string>
Packit c32a2d

Packit c32a2d
#include <IIEP_Def.H>
Packit c32a2d

Packit c32a2d
// ____________________________________________ HEADER ____________________________________________
Packit c32a2d
//
Packit c32a2d
//                                            __________
Packit c32a2d
// __________________________________________|  DEFINE  |__________________________________________
Packit c32a2d
//
Packit c32a2d
//      ___________
Packit c32a2d
// ____/  CFileIn  \_______________________________________________________________________________
Packit c32a2d

Packit c32a2d
namespace IIEP
Packit c32a2d
{
Packit c32a2d
  /// @brief 文件输入接口类
Packit c32a2d

Packit c32a2d
  class CFileIn
Packit c32a2d
  {
Packit c32a2d
    public:
Packit c32a2d

Packit c32a2d
    CFileIn(void);
Packit c32a2d
    ~CFileIn(void);
Packit c32a2d

Packit c32a2d
    bool Open(const char *pcszFileName);
Packit c32a2d
    bool Open(const WORD *pcwsFileName);
Packit c32a2d

Packit c32a2d
    void Close(void);
Packit c32a2d

Packit c32a2d
    DWORD GetFileSize(void) const;
Packit c32a2d
    DWORD GetReadPosition(void) const;
Packit c32a2d

Packit c32a2d
    bool Seek(long nOffset, long nOrigin = 0);  // SEEK_SET = 0     SEEK_CUR = 1     SEEK_END = 2
Packit c32a2d

Packit c32a2d
    bool Skip(long nOffset) { return Seek(nOffset, 1); }
Packit c32a2d

Packit c32a2d
    DWORD Read(PVOID pDataBuffer, DWORD dwReadSize);
Packit c32a2d

Packit c32a2d
    bool ReadB(BYTE &ucData)
Packit c32a2d
    {
Packit c32a2d
      return (1 == Read(&ucData, 1));
Packit c32a2d
    }
Packit c32a2d

Packit c32a2d
    bool ReadW(WORD &wData)
Packit c32a2d
    {
Packit c32a2d
      return (2 == Read(&wData, 2));
Packit c32a2d
    }
Packit c32a2d

Packit c32a2d
    bool ReadDW(DWORD &dwData)
Packit c32a2d
    {
Packit c32a2d
      return (4 == Read(&dwData, 4));
Packit c32a2d
    }
Packit c32a2d

Packit c32a2d
    bool ReadInverseW(WORD &wData)
Packit c32a2d
    {
Packit c32a2d
      if (2 == Read(&wData, 2))
Packit c32a2d
      {
Packit c32a2d
        _asm
Packit c32a2d
        {
Packit c32a2d
          MOV       ECX, wData
Packit c32a2d
          MOV       AX, [ECX]
Packit c32a2d
          XCHG      AH, AL
Packit c32a2d
          MOV       [ECX], AX
Packit c32a2d
        }
Packit c32a2d

Packit c32a2d
        return true;
Packit c32a2d
      }
Packit c32a2d

Packit c32a2d
      return false;
Packit c32a2d
    }
Packit c32a2d

Packit c32a2d
    bool ReadInverseDW(DWORD &dwData)
Packit c32a2d
    {
Packit c32a2d
      if (4 == Read(&dwData, 4))
Packit c32a2d
      {
Packit c32a2d
        _asm
Packit c32a2d
        {
Packit c32a2d
          MOV       ECX, dwData
Packit c32a2d
          MOV       EAX, [ECX]
Packit c32a2d
          BSWAP     EAX
Packit c32a2d
          MOV       [ECX], EAX
Packit c32a2d
        }
Packit c32a2d

Packit c32a2d
        return true;
Packit c32a2d
      }
Packit c32a2d

Packit c32a2d
      return false;
Packit c32a2d
    }
Packit c32a2d

Packit c32a2d
    // --------------------------------------------------------------------------------------------
Packit c32a2d

Packit c32a2d
    bool ReadAnsiLine(std::string &strLine);
Packit c32a2d
    bool ReadUnicodeLine(std::wstring &wstrLine, bool bBigEndian);
Packit c32a2d

Packit c32a2d
    bool ReadAnsiString   (char *pszBuffer, DWORD dwBufferLength);
Packit c32a2d
    bool ReadUnicodeString(WORD *pwzBuffer, DWORD dwBufferLength);
Packit c32a2d

Packit c32a2d
    // --------------------------------------------------------------------------------------------
Packit c32a2d

Packit c32a2d
    private:
Packit c32a2d

Packit c32a2d
    CFileIn(const CFileIn &);				        // forbidden
Packit c32a2d
    CFileIn & operator = (const CFileIn &);	// forbidden
Packit c32a2d

Packit c32a2d
    #include <CORE/CORE_FileIn.H>
Packit c32a2d
  };
Packit c32a2d
}
Packit c32a2d

Packit c32a2d
// ______ CFileIn _________________________________________________________________________________
Packit c32a2d
//
Packit c32a2d
//      _______________
Packit c32a2d
// ____/  Memory File  \___________________________________________________________________________
Packit c32a2d

Packit c32a2d
namespace IIEP
Packit c32a2d
{
Packit c32a2d
  bool CreateMemoryFile(PVOID pMemory, DWORD dwLength, const char *pcszFileName);
Packit c32a2d
  bool CreateMemoryFile(PVOID pMemory, DWORD dwLength, const WORD *pcwsFileName);
Packit c32a2d
  bool RemoveMemoryFile(const char *pcszFileName);
Packit c32a2d
  bool RemoveMemoryFile(const WORD *pcwsFileName);
Packit c32a2d
  void RemoveMemoryFile(void);
Packit c32a2d
}
Packit c32a2d

Packit c32a2d
// ______ Memory File _____________________________________________________________________________
Packit c32a2d
//
Packit c32a2d
// ____________________________________________ DEFINE ____________________________________________
Packit c32a2d
//
Packit c32a2d
// ____________________________________________________________________________________ DATA ______
Packit c32a2d
//
Packit c32a2d
// ___________________________________________ FILE END ___________________________________________