📄 stream.h
字号:
//---------------------------------------------------------------------------
#include <windows.h>
#ifndef StreamH
#define StreamH
#include "CNFileOP.h"
//---------------------------------------------------------------------------
class TCNStream
{
private:
friend class TCNMemoryStream;
protected:
void* __fastcall GlobalAllocPtr(unsigned int Flags,unsigned long Bytes);
void* __fastcall GlobalReAllocPtr(void *Ptr,DWORD Bytes,UINT Flag);
HGLOBAL __fastcall GlobalFreePtr(void *Ptr);
virtual void __fastcall SetSize(int NewSize);
public:
void __fastcall SetPosition(int Pos);
int __fastcall GetPosition(void);
int __fastcall GetSize(void);
virtual int __fastcall Read(void *Buffer, int Count) = 0 ;
virtual int __fastcall Write(const void *Buffer, int Count) = 0 ;
virtual int __fastcall Seek(int Offset, WORD Origin) = 0 ;
void __fastcall ReadBuffer(void *Buffer, int Count);
void __fastcall WriteBuffer(const void *Buffer, int Count);
int __fastcall CopyFrom(TCNStream* Source, int Count);
public:
// inline __fastcall TCNStream(void){ }
// inline __fastcall virtual ~TCNStream(void) { }
};
class TCNCustomMemoryStream : public TCNStream
{
private:
void *FMemory;
int FSize;
int FPosition;
friend class TCNMemoryStream;
protected:
void __fastcall SetPointer(void * Ptr, int Size);
public:
virtual int __fastcall Read(void *Buffer, int Count);
virtual int __fastcall Seek(int Offset, WORD Origin);
void __fastcall SaveToStream(TCNStream* Stream);
public:
inline __fastcall TCNCustomMemoryStream(void) : TCNStream() { }
inline __fastcall virtual ~TCNCustomMemoryStream(void) { }
};
class TCNMemoryStream : public TCNCustomMemoryStream
{
private:
int FCapacity;
void __fastcall SetCapacity(int NewCapacity);
protected:
virtual void * __fastcall Realloc(int &NewCapacity);
public:
__fastcall virtual ~TCNMemoryStream(void);
void __fastcall Clear(void);
void __fastcall LoadFromStream(TCNStream* Stream);
virtual void __fastcall SetSize(int NewSize);
virtual int __fastcall Write(const void *Buffer, int Count);
public:
inline __fastcall TCNMemoryStream(void) : TCNCustomMemoryStream() { }
};
enum TCNFileMode{cfmCreate,cfmOpenRead,cfmOpenWrite,cfmOpenReadWrite};
class TCNHandleStream : public TCNStream
{
protected:
HANDLE FHandle;
public:
virtual int __fastcall Read(void *Buffer, int Count);
virtual int __fastcall Write(const void *Buffer, int Count);
virtual int __fastcall Seek(int Offset, WORD Origin);
};
class TCNFileStream : public TCNHandleStream
{
private:
public:
TCNFileStream(TCNString FileName, WORD Mode);
~TCNFileStream(void);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -