MsOleStream

Name

MsOleStream -- 

Synopsis


#include <libole2/libole2.h>


struct      MsOleStream;
MsOleErr    ms_ole_stream_open              (MsOleStream **const stream,
                                             MsOle *fs,
                                             const char *dirpath,
                                             const char *name,
                                             char mode);
MsOleErr    ms_ole_stream_close             (MsOleStream **const stream);
MsOleErr    ms_ole_stream_duplicate         (MsOleStream **const stream_copy,
                                             const MsOleStream *const stream);

Description

Details

struct MsOleStream

struct MsOleStream
{
	MsOlePos size;

	gint		(*read_copy)	(MsOleStream *stream,
					 guint8 *ptr,
					 MsOlePos length);

	guint8 *	(*read_ptr)	(MsOleStream *stream,
					 MsOlePos length);

	MsOleSPos	(*lseek)	(MsOleStream *stream,
					 MsOleSPos bytes,
					 MsOleSeek type);

	MsOlePos	(*tell)		(MsOleStream *stream);

	MsOlePos	(*write)	(MsOleStream *stream,
					 guint8 *ptr,
					 MsOlePos length);


	/**
	 * PRIVATE (do not use)
	 **/
	enum {
		MsOleSmallBlock,
		MsOleLargeBlock
	} type;
	MsOle		*file;
	void		*pps;		/* Straight PPS */
	GArray		*blocks;	/* A list of the blocks in the file
					   if NULL: no file */
	MsOlePos	 position;	/* Current offset into file.
					   Points to the next byte to read */
};


ms_ole_stream_open ()

MsOleErr    ms_ole_stream_open              (MsOleStream **const stream,
                                             MsOle *fs,
                                             const char *dirpath,
                                             const char *name,
                                             char mode);

Opens the stream in dirpath with the name name and creates the stream object stream. If mode is 'r' it opens read only, and if it is 'w' it opens for write only.


ms_ole_stream_close ()

MsOleErr    ms_ole_stream_close             (MsOleStream **const stream);

Closes the stream.


ms_ole_stream_duplicate ()

MsOleErr    ms_ole_stream_duplicate         (MsOleStream **const stream_copy,
                                             const MsOleStream *const stream);

Duplicates the stream object stream.