summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/fstream.hxx
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--public/sdk/inc/fstream.hxx87
1 files changed, 87 insertions, 0 deletions
diff --git a/public/sdk/inc/fstream.hxx b/public/sdk/inc/fstream.hxx
new file mode 100644
index 000000000..1abb1870f
--- /dev/null
+++ b/public/sdk/inc/fstream.hxx
@@ -0,0 +1,87 @@
+//+---------------------------------------------------------------------------
+//
+// Copyright (C) 1992, Microsoft Corporation.
+//
+// File: FSTREAM.HXX
+//
+// Contents: Streams for accessing files w/runtime libs
+//
+// Classes: CStreamFile
+//
+// History: 05-Aug-92 MikeHew Created
+// 14-Aug-92 KyleP Hacked
+// 23-Nov-92 AmyA Revised for buffering data
+//
+//----------------------------------------------------------------------------
+
+#ifndef __FSTREAM_HXX__
+#define __FSTREAM_HXX__
+
+#ifdef DISPLAY_INCLUDES
+#pragma message( "#include <" __FILE__ ">..." )
+#endif
+
+#include <except.hxx>
+#include <streams.hxx>
+#include <stdio.h>
+#include <debnot.h> // for Win4Assert
+
+#define defaultBufSize 4096
+
+//+---------------------------------------------------------------------------
+//
+// Class: CStreamFile
+//
+// Purpose: Stream for dumping data to a file and reading back
+//
+// History: 29-Jul-92 MikeHew Created
+// 23-Nov-92 AmyA Revised for buffering data
+//
+// Notes: Seek() is from the current offset
+//
+//----------------------------------------------------------------------------
+
+class CStreamFile : INHERIT_VIRTUAL_UNWIND, public CStreamA
+{
+ DECLARE_UNWIND
+public:
+ enum FileType
+ {
+ NewFile,
+ NewOrExistingFile,
+ ExistingFile
+ };
+
+ EXPORTDEF CStreamFile( const char * filename, FileType type );
+
+ EXPORTDEF ~CStreamFile();
+
+ //
+ // Status functions
+ //
+ BOOL Ok() { return (_fp != 0) && !ferror( _fp ); }
+
+ //
+ // Input from stream functions
+ //
+ EXPORTDEF unsigned APINOT Read( void *dest, unsigned size );
+
+ //
+ // Output to stream functions
+ //
+ EXPORTDEF unsigned APINOT Write( const void *source, unsigned size );
+
+ //
+ // Misc
+ //
+ EXPORTDEF int APINOT Seek( LONG offset, CStream::SEEK origin = CStream::SET );
+
+ ULONG Size();
+
+private:
+ BOOL FillBuf();
+
+ FILE * _fp;
+};
+
+#endif // __FSTREAM_HXX__