EMF  1.0
Public Member Functions | List of all members
EMF::DATASTREAM Class Reference

Support different endian modes when reading and writing the metafile. More...

#include <libemf.h>

Public Member Functions

 DATASTREAM (::FILE *fp=0)
 
void setStream (::FILE *fp)
 
DATASTREAMoperator<< (const BYTE &byte)
 
DATASTREAMoperator>> (BYTE &byte)
 
DATASTREAMoperator<< (const WORD &word)
 
DATASTREAMoperator>> (WORD &word)
 
DATASTREAMoperator<< (const INT16 &word)
 
DATASTREAMoperator>> (INT16 &word)
 
DATASTREAMoperator<< (const DWORD &dword)
 
DATASTREAMoperator>> (DWORD &dword)
 
DATASTREAMoperator<< (const LONG &long_)
 
DATASTREAMoperator>> (LONG &long_)
 
DATASTREAMoperator<< (const INT &int_)
 
DATASTREAMoperator>> (INT &int_)
 
DATASTREAMoperator<< (const UINT &uint)
 
DATASTREAMoperator>> (UINT &uint)
 
DATASTREAMoperator<< (const FLOAT &float_)
 
DATASTREAMoperator>> (FLOAT &float_)
 
DATASTREAMoperator<< (const PADDING &padding)
 
DATASTREAMoperator<< (const RECTL &rectl)
 
DATASTREAMoperator>> (RECTL &rectl)
 
DATASTREAMoperator<< (const SIZEL &sizel)
 
DATASTREAMoperator>> (SIZEL &sizel)
 
DATASTREAMoperator<< (const WCHARSTR &wcharstr)
 
DATASTREAMoperator>> (WCHARSTR &wcharstr)
 
DATASTREAMoperator<< (const CHARSTR &charstr)
 
DATASTREAMoperator>> (CHARSTR &charstr)
 
DATASTREAMoperator<< (const ::EMR &emr)
 
DATASTREAMoperator>> (::EMR &emr)
 
DATASTREAMoperator<< (const POINT &point)
 
DATASTREAMoperator>> (POINT &point)
 
DATASTREAMoperator<< (const POINTL &pointl)
 
DATASTREAMoperator>> (POINTL &pointl)
 
DATASTREAMoperator<< (const POINT16 &point)
 
DATASTREAMoperator>> (POINT16 &point)
 
DATASTREAMoperator<< (const XFORM &xform)
 
DATASTREAMoperator>> (XFORM &xform)
 
DATASTREAMoperator<< (const BYTEARRAY &array)
 
DATASTREAMoperator>> (BYTEARRAY &array)
 
DATASTREAMoperator<< (const POINTLARRAY &array)
 
DATASTREAMoperator>> (POINTLARRAY &array)
 
DATASTREAMoperator<< (const POINT16ARRAY &array)
 
DATASTREAMoperator>> (POINT16ARRAY &array)
 
DATASTREAMoperator<< (const INTARRAY &array)
 
DATASTREAMoperator>> (INTARRAY &array)
 
DATASTREAMoperator<< (const DWORDARRAY &array)
 
DATASTREAMoperator>> (DWORDARRAY &array)
 
DATASTREAMoperator<< (const ::EMRTEXT &text)
 
DATASTREAMoperator>> (::EMRTEXT &text)
 
DATASTREAMoperator<< (const LOGPEN &pen)
 
DATASTREAMoperator>> (LOGPEN &pen)
 
DATASTREAMoperator<< (const EXTLOGPEN &pen)
 
DATASTREAMoperator>> (EXTLOGPEN &pen)
 
DATASTREAMoperator<< (const LOGBRUSH &brush)
 
DATASTREAMoperator>> (LOGBRUSH &brush)
 
DATASTREAMoperator<< (const LOGFONTW &font)
 
DATASTREAMoperator>> (LOGFONTW &font)
 
DATASTREAMoperator<< (const PANOSE &panose)
 
DATASTREAMoperator>> (PANOSE &panose)
 
DATASTREAMoperator<< (const EXTLOGFONTW &font)
 
DATASTREAMoperator>> (EXTLOGFONTW &font)
 
DATASTREAMoperator<< (const LOGPALETTE &palette)
 
DATASTREAMoperator>> (LOGPALETTE &palette)
 

Detailed Description

Support different endian modes when reading and writing the metafile.

To support different endian modes, rather than just writing the structures directly to a file via fwrite( &emr, ...), we have to write each element of the structure separately, swapping bytes as necessary. datastream supports this. Remarkably similar to the QDataStream class from Qt. So, too, for reading.

Constructor & Destructor Documentation

EMF::DATASTREAM::DATASTREAM ( ::FILE *  fp = 0)
inline

Constructor for DATASTREAM.

Parameters
fpoptional file pointer (but must be assigned before any output occurs.)

Member Function Documentation

DATASTREAM& EMF::DATASTREAM::operator<< ( const BYTE &  byte)
inline

Output a byte to the stream (not swabbed or anything).

Parameters
bytebyte to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const WORD &  word)
inline

Output a (short) word to the stream (swabbed).

Parameters
word(short) word to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const INT16 &  word)
inline

Output a (short, 16-bit) word to the stream (swabbed).

Parameters
word(short, 16-bit) word to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const DWORD &  dword)
inline

Output a double word (long) to the stream (swabbed).

Parameters
dworddouble word (long) to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const LONG &  long_)
inline

Output a long int to the stream (swabbed).

Parameters
long_long int to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const INT &  int_)
inline

Output a (long) int to the stream (swabbed).

Parameters
int_(long) int to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const UINT &  uint)
inline

Output a (long) unsigned int to the stream (swabbed).

Parameters
uint(long) unsigned int to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const FLOAT &  float_)
inline

Output a single precision float to the stream (swabbed).

Parameters
float_single precision float to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const PADDING padding)
inline

Output a series of '\0's to pad out a record.

Parameters
paddingsimple padding structure (length and number of nulls).
DATASTREAM& EMF::DATASTREAM::operator<< ( const RECTL &  rectl)
inline

Output a RECTL structure.

Parameters
rectlstructure to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const SIZEL &  sizel)
inline

Output a SIZEL structure.

Parameters
sizelstructure to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const WCHARSTR wcharstr)
inline

Output a WCHAR string (note: the individual characters are swabbed).

Parameters
wcharstrstructure to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const CHARSTR charstr)
inline

Output a single byte character string.

Parameters
charstrstructure to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const ::EMR &  emr)
inline

Output an Enhanced Metafile Record header.

Parameters
emrEnhanced Metafile Record header to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const POINT &  point)
inline

Output a POINT structure.

Parameters
pointPOINT to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const POINTL &  pointl)
inline

Output a POINTL structure.

Parameters
pointlPOINTL to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const POINT16 &  point)
inline

Output a POINT16 structure.

Parameters
pointPOINT16 to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const XFORM &  xform)
inline

Output an XFORM structure.

Parameters
xformXFORM to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const BYTEARRAY array)
inline

Output an array of BYTEs.

Parameters
arrayarray of BYTEs to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const POINTLARRAY array)
inline

Output an array of POINTLs.

Parameters
arrayarray of POINTLs to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const POINT16ARRAY array)
inline

Output an array of POINT16s.

Parameters
arrayarray of POINT16s to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const INTARRAY array)
inline

Output an array of (long) ints.

Parameters
arrayarray of (long) ints to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const DWORDARRAY array)
inline

Output an array of double words (longs).

Parameters
arrayarray of double words (longs) to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const ::EMRTEXT &  text)
inline

Output an Enhanced Metafile Text Record.

Parameters
textEnhanced Metafile Text Record to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const LOGPEN &  pen)
inline

Output a Logical Pen definition.

Parameters
penLogical Pen definition to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const EXTLOGPEN &  pen)
inline

Output an Extended Logical Pen definition.

Parameters
penExtended Logical Pen definition to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const LOGBRUSH &  brush)
inline

Output a Logical Brush definition.

Parameters
brushLogical Brush definition to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const LOGFONTW &  font)
inline

Output a Logical Font definition (using WCHAR strings).

Parameters
fontLogical Font definition to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const PANOSE &  panose)
inline

Output a Panose structure.

Parameters
panosePanose structure to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const EXTLOGFONTW &  font)
inline

Output an Extended Logical Font definition (using WCHAR strings).

Parameters
fontExtended Logical Font definition to output.
DATASTREAM& EMF::DATASTREAM::operator<< ( const LOGPALETTE &  palette)
inline

Output a Logical Palette.

Parameters
paletteLogical Palette to output.
DATASTREAM& EMF::DATASTREAM::operator>> ( BYTE &  byte)
inline

Input a byte from the stream (not swabbed or anything).

Parameters
bytedestination for input byte.
DATASTREAM& EMF::DATASTREAM::operator>> ( WORD &  word)
inline

Input a (short) word from the stream (swabbed).

Parameters
worddestination for (short) word.
DATASTREAM& EMF::DATASTREAM::operator>> ( INT16 &  word)
inline

Input a (short, 16-bit) word from the stream (swabbed).

Parameters
worddestination for (short, 16-bit) word.
DATASTREAM& EMF::DATASTREAM::operator>> ( DWORD &  dword)
inline

Input a double word (long) from the stream (swabbed).

Parameters
dworddestination for double word (long).
DATASTREAM& EMF::DATASTREAM::operator>> ( LONG &  long_)
inline

Input a long int from the stream (swabbed).

Parameters
long_destination for long int.
DATASTREAM& EMF::DATASTREAM::operator>> ( INT &  int_)
inline

Input a (long) int from the stream (swabbed).

Parameters
int_destination for (long) int.
DATASTREAM& EMF::DATASTREAM::operator>> ( UINT &  uint)
inline

Input a (long) unsigned int from the stream (swabbed).

Parameters
uintdestination for (long) unsigned int.
DATASTREAM& EMF::DATASTREAM::operator>> ( FLOAT &  float_)
inline

Input a single precision float from the stream (swabbed).

Parameters
float_destination for single precision float.
DATASTREAM& EMF::DATASTREAM::operator>> ( RECTL &  rectl)
inline

Input a RECTL structure.

Parameters
rectldestination of input RECTL.
DATASTREAM& EMF::DATASTREAM::operator>> ( SIZEL &  sizel)
inline

Input a SIZEL structure.

Parameters
sizeldestination of input SIZEL.
DATASTREAM& EMF::DATASTREAM::operator>> ( WCHARSTR wcharstr)
inline

Input a WCHAR string (note: the individual characters are swabbed.)

Parameters
wcharstrdestination of input WCHAR string.
DATASTREAM& EMF::DATASTREAM::operator>> ( CHARSTR charstr)
inline

Input a single byte character string.

Parameters
charstrdestination of input CHAR string.
DATASTREAM& EMF::DATASTREAM::operator>> ( ::EMR &  emr)
inline

Input an Enhanced Metafile Record header.

Parameters
emrdestination of Enhanced Metafile Record header.
DATASTREAM& EMF::DATASTREAM::operator>> ( POINT &  point)
inline

Input a POINT structure.

Parameters
pointdestination of input POINT.
DATASTREAM& EMF::DATASTREAM::operator>> ( POINTL &  pointl)
inline

Input a POINTL structure.

Parameters
pointldestination of input POINTL.
DATASTREAM& EMF::DATASTREAM::operator>> ( POINT16 &  point)
inline

Input a POINT16 structure.

Parameters
pointdestination of input POINT16.
DATASTREAM& EMF::DATASTREAM::operator>> ( XFORM &  xform)
inline

Input an XFORM structure.

Parameters
xformdestination of input XFORM.
DATASTREAM& EMF::DATASTREAM::operator>> ( BYTEARRAY array)
inline

Input an array of BYTEs.

Parameters
arraydestination of array of input BYTEs.
DATASTREAM& EMF::DATASTREAM::operator>> ( POINTLARRAY array)
inline

Input an array of POINTLs.

Parameters
arraydestination of array of input POINTLs.
DATASTREAM& EMF::DATASTREAM::operator>> ( POINT16ARRAY array)
inline

Input an array of POINT16s.

Parameters
arraydestination of array of input POINT16s.
DATASTREAM& EMF::DATASTREAM::operator>> ( INTARRAY array)
inline

Input an array of (long) ints.

Parameters
arraydestination of array of input (long) ints.
DATASTREAM& EMF::DATASTREAM::operator>> ( DWORDARRAY array)
inline

Input an array of double words (longs).

Parameters
arraydestination of array of input double words (longs).
DATASTREAM& EMF::DATASTREAM::operator>> ( ::EMRTEXT &  text)
inline

Input an Enhanced Metafile Text Record.

Parameters
textdestination of Enhanced Metafile Text Record.
DATASTREAM& EMF::DATASTREAM::operator>> ( LOGPEN &  pen)
inline

Input a Logical Pen definition.

Parameters
pendestination of Logical Pen definition.
DATASTREAM& EMF::DATASTREAM::operator>> ( EXTLOGPEN &  pen)
inline

Input an Extended Logical Pen definition.

Parameters
pendestination of Extended Logical Pen definition.
DATASTREAM& EMF::DATASTREAM::operator>> ( LOGBRUSH &  brush)
inline

Input a Logical Brush definition.

Parameters
brushdestination of Logical Brush definition.
DATASTREAM& EMF::DATASTREAM::operator>> ( LOGFONTW &  font)
inline

Input a Logical Font definition (using WCHAR strings).

Parameters
fontdestination of Logical Font definition.
DATASTREAM& EMF::DATASTREAM::operator>> ( PANOSE &  panose)
inline

Input a Panose structure.

Parameters
panosedestinatino of input Panose structure.
DATASTREAM& EMF::DATASTREAM::operator>> ( EXTLOGFONTW &  font)
inline

Input an Extended Logical Font definition (using WCHAR strings).

Parameters
fontdestination of Extended Logical Font definition.
DATASTREAM& EMF::DATASTREAM::operator>> ( LOGPALETTE &  palette)
inline

Input a Logical Palette.

Parameters
palettedestination of input Logical Palette.
void EMF::DATASTREAM::setStream ( ::FILE *  fp)
inline

Use the given FILE stream as the input/output destination.

Parameters
fpfile point for i/o.

The documentation for this class was generated from the following files: