⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stream.h

📁 This software performs code conversion of Chinese characters, including GB2312/GBK and BIG5. It a
💻 H
字号:
// stream.h

#ifndef STREAM_H
#define STREAM_H


#ifdef __cplusplus
extern "C" {
#endif


#define STREAM_UNREAD_BUFFER_SIZE   0x10


// 僼傽僀儖僗僩儕乕儉偲暥帤楍傪摨偠僗僩儕乕儉偲偟偰張棟偡傞偨傔偺儔僀僽儔儕


// Private Structure
typedef struct STREAM_TAG {
   FILE *File ;
   int ( __cdecl *Read ) ( FILE * ) ;
   int ( __cdecl *Write ) ( int, FILE * ) ;
   int ( __cdecl *WriteString ) ( const char *, FILE * ) ;
   int ( __cdecl *WriteFormat ) ( FILE *, const char *, va_list ) ;
   int ( __cdecl *Error ) ( FILE * ) ;
   int ( *Close ) ( struct STREAM_TAG *, size_t * ) ;
   void *UserDefinedValue ;
   unsigned long Flag ;
   int UnreadCurrent ;
   unsigned char UnreadBuffer [ STREAM_UNREAD_BUFFER_SIZE ] ;
} STREAM ;



// Public Inline Functions/Macros
static inline int StreamWrite ( int C, STREAM *Stream ) {
   return Stream->Write ( C, Stream->File ) ;
}
static inline int StreamWriteString ( const char *String, STREAM *Stream ) {
   return Stream->WriteString ( String, Stream->File ) ;
}
static inline int StreamError ( STREAM *Stream ) {
   return Stream->Error ( Stream->File ) ;
}
static inline int CloseStream ( STREAM *Stream, size_t *Size ) {
   return Stream->Close ( Stream, Size ) ;
}
#define GetStreamValue(Stream)         ((Stream)->UserDefinedValue)
#define SetStreamValue(Stream,value)   ((Stream)->UserDefinedValue=(value))



// Public Functions
int StreamRead ( STREAM *Stream ) ;
int StreamUnread ( int C, STREAM *Stream ) ;
int StreamReadString ( char *szBuffer, int nSize, STREAM *Stream ) ;
int __cdecl StreamWriteFormat ( STREAM *Stream, const char *format,... ) ;
int StreamSeek ( STREAM *Stream, intptr_t offset, int origin ) ;
STREAM *OpenFileStreamForReadingA ( const char *FileName ) ;
STREAM *OpenFileStreamForReadingW ( const wchar_t *FileName ) ;
STREAM *OpenFileStreamForWritingA ( const char *FileName ) ;
STREAM *OpenFileStreamForWritingW ( const wchar_t *FileName ) ;
STREAM *OpenStringStreamForReading ( const void *String, size_t nLength, int nSizeOfChar ) ;
STREAM *OpenStringStreamForWriting ( void *String, size_t nLength, int nSizeOfChar ) ;


#ifdef UNICODE
#define OpenFileStreamForReading OpenFileStreamForReadingW
#define OpenFileStreamForWriting OpenFileStreamForWritingW
#else
#define OpenFileStreamForReading OpenFileStreamForReadingA
#define OpenFileStreamForWriting OpenFileStreamForWritingA
#endif


#ifdef __cplusplus
}
#endif


#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -