Main Page Class Hierarchy Compound List File List Compound Members

# EMF::DATASTREAM Class Reference

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

`#include <libemf.h>`

List of all members.

## Public Methods
| DATASTREAM (::FILE *fp=0)
void | setStream (::FILE *fp)
DATASTREAM& | operator<< (const BYTE &byte)
DATASTREAM& | operator>> (BYTE &byte)
DATASTREAM& | operator<< (const WORD &word)
DATASTREAM& | operator>> (WORD &word)
DATASTREAM& | operator<< (const INT16 &word)
DATASTREAM& | operator>> (INT16 &word)
DATASTREAM& | operator<< (const DWORD &dword)
DATASTREAM& | operator>> (DWORD &dword)
DATASTREAM& | operator<< (const LONG &long_)
DATASTREAM& | operator>> (LONG &long_)
DATASTREAM& | operator<< (const INT &int_)
DATASTREAM& | operator>> (INT &int_)
DATASTREAM& | operator<< (const UINT &uint)
DATASTREAM& | operator>> (UINT &uint)
DATASTREAM& | operator<< (const FLOAT &float_)
DATASTREAM& | operator>> (FLOAT &float_)
DATASTREAM& | operator<< (const PADDING &padding)
DATASTREAM& | operator<< (const RECTL &rectl)
DATASTREAM& | operator>> (RECTL &rectl)
DATASTREAM& | operator<< (const SIZEL &sizel)
DATASTREAM& | operator>> (SIZEL &sizel)
DATASTREAM& | operator<< (const WCHARSTR &wcharstr)
DATASTREAM& | operator>> (WCHARSTR &wcharstr)
DATASTREAM& | operator<< (const CHARSTR &charstr)
DATASTREAM& | operator>> (CHARSTR &charstr)
DATASTREAM& | operator<< (const::EMR &emr)
DATASTREAM& | operator>> (::EMR &emr)
DATASTREAM& | operator<< (const POINT &point)
DATASTREAM& | operator>> (POINT &point)
DATASTREAM& | operator<< (const POINTL &pointl)
DATASTREAM& | operator>> (POINTL &pointl)
DATASTREAM& | operator<< (const POINT16 &point)
DATASTREAM& | operator>> (POINT16 &point)
DATASTREAM& | operator<< (const XFORM &xform)
DATASTREAM& | operator>> (XFORM &xform)
DATASTREAM& | operator<< (const BYTEARRAY &array)
DATASTREAM& | operator>> (BYTEARRAY &array)
DATASTREAM& | operator<< (const POINTLARRAY &array)
DATASTREAM& | operator>> (POINTLARRAY &array)
DATASTREAM& | operator<< (const POINT16ARRAY &array)
DATASTREAM& | operator>> (POINT16ARRAY &array)
DATASTREAM& | operator<< (const INTARRAY &array)
DATASTREAM& | operator>> (INTARRAY &array)
DATASTREAM& | operator<< (const DWORDARRAY &array)
DATASTREAM& | operator>> (DWORDARRAY &array)
DATASTREAM& | operator<< (const::EMRTEXT &text)
DATASTREAM& | operator>> (::EMRTEXT &text)
DATASTREAM& | operator<< (const LOGPEN &pen)
DATASTREAM& | operator>> (LOGPEN &pen)
DATASTREAM& | operator<< (const EXTLOGPEN &pen)
DATASTREAM& | operator>> (EXTLOGPEN &pen)
DATASTREAM& | operator<< (const LOGBRUSH &brush)
DATASTREAM& | operator>> (LOGBRUSH &brush)
DATASTREAM& | operator<< (const LOGFONTW &font)
DATASTREAM& | operator>> (LOGFONTW &font)
DATASTREAM& | operator<< (const PANOSE &panose)
DATASTREAM& | operator>> (PANOSE &panose)
DATASTREAM& | operator<< (const EXTLOGFONTW &font)
DATASTREAM& | operator>> (EXTLOGFONTW &font)
DATASTREAM& | operator<< (const LOGPALETTE &palette)
DATASTREAM& | operator>> (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:
  fp | optional file pointer (but must be assigned before any output occurs.)

## Member Function Documentation

DATASTREAM & EMF::DATASTREAM::operator<< ( | const LOGPALETTE & palette )`[inline]`

  | Output a Logical Palette. Parameters:
  palette | Logical Palette to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const EXTLOGFONTW & font )`[inline]`

  | Output an Extended Logical Font definition (using WCHAR strings). Parameters:
  font | Extended Logical Font definition to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const PANOSE & panose )`[inline]`

  | Output a Panose structure. Parameters:
  panose | Panose structure to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const LOGFONTW & font )`[inline]`

  | Output a Logical Font definition (using WCHAR strings). Parameters:
  font | Logical Font definition to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const LOGBRUSH & brush )`[inline]`

  | Output a Logical Brush definition. Parameters:
  brush | Logical Brush definition to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const EXTLOGPEN & pen )`[inline]`

  | Output an Extended Logical Pen definition. Parameters:
  pen | Extended Logical Pen definition to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const LOGPEN & pen )`[inline]`

  | Output a Logical Pen definition. Parameters:
  pen | Logical Pen definition to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const::EMRTEXT & text )`[inline]`

  | Output an Enhanced Metafile Text Record. Parameters:
  text | Enhanced Metafile Text Record to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const DWORDARRAY & array )`[inline]`

  | Output an array of double words (longs). Parameters:
  array | array of double words (longs) to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const INTARRAY & array )`[inline]`

  | Output an array of (long) ints. Parameters:
  array | array of (long) ints to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const POINT16ARRAY & array )`[inline]`

  | Output an array of POINT16s. Parameters:
  array | array of POINT16s to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const POINTLARRAY & array )`[inline]`

  | Output an array of POINTLs. Parameters:
  array | array of POINTLs to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const BYTEARRAY & array )`[inline]`

  | Output an array of BYTEs. Parameters:
  array | array of BYTEs to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const XFORM & xform )`[inline]`

  | Output an XFORM structure. Parameters:
  xform | XFORM to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const POINT16 & point )`[inline]`

  | Output a POINT16 structure. Parameters:
  point | POINT16 to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const POINTL & pointl )`[inline]`

  | Output a POINTL structure. Parameters:
  pointl | POINTL to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const POINT & point )`[inline]`

  | Output a POINT structure. Parameters:
  point | POINT to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const::EMR & emr )`[inline]`

  | Output an Enhanced Metafile Record header. Parameters:
  emr | Enhanced Metafile Record header to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const CHARSTR & charstr )`[inline]`

  | Output a single byte character string. Parameters:
  charstr | structure to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const WCHARSTR & wcharstr )`[inline]`

  | Output a WCHAR string (note: the individual characters are swabbed). Parameters:
  wcharstr | structure to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const SIZEL & sizel )`[inline]`

  | Output a SIZEL structure. Parameters:
  sizel | structure to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const RECTL & rectl )`[inline]`

  | Output a RECTL structure. Parameters:
  rectl | structure to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const PADDING & padding )`[inline]`

  | Output a series of '\0's to pad out a record. Parameters:
  padding | simple padding structure (length and number of nulls).

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 UINT & uint )`[inline]`

  | Output a (long) unsigned int to the stream (swabbed). Parameters:
  uint | (long) unsigned 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 LONG & long_ )`[inline]`

  | Output a long int to the stream (swabbed). Parameters:
  long | long int to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const DWORD & dword )`[inline]`

  | Output a double word (long) to the stream (swabbed). Parameters:
  word | word (long) 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 WORD & word )`[inline]`

  | Output a (short) word to the stream (swabbed). Parameters:
  word | (short) word to output.

DATASTREAM & EMF::DATASTREAM::operator<< ( | const BYTE & byte )`[inline]`

  | Output a byte to the stream (not swabbed or anything). Parameters:
  byte | byte to output.

DATASTREAM & EMF::DATASTREAM::operator>> ( | LOGPALETTE & palette )`[inline]`

  | Input a Logical Palette. Parameters:
  palette | destination of input Logical Palette.

DATASTREAM & EMF::DATASTREAM::operator>> ( | EXTLOGFONTW & font )`[inline]`

  | Input an Extended Logical Font definition (using WCHAR strings). Parameters:
  font | destination of Extended Logical Font definition.

DATASTREAM & EMF::DATASTREAM::operator>> ( | PANOSE & panose )`[inline]`

  | Input a Panose structure. Parameters:
  panose | destinatino of input Panose structure.

DATASTREAM & EMF::DATASTREAM::operator>> ( | LOGFONTW & font )`[inline]`

  | Input a Logical Font definition (using WCHAR strings). Parameters:
  font | destination of Logical Font definition.

DATASTREAM & EMF::DATASTREAM::operator>> ( | LOGBRUSH & brush )`[inline]`

  | Input a Logical Brush definition. Parameters:
  brush | destination of Logical Brush definition.

DATASTREAM & EMF::DATASTREAM::operator>> ( | EXTLOGPEN & pen )`[inline]`

  | Input an Extended Logical Pen definition. Parameters:
  pen | destination of Extended Logical Pen definition.

DATASTREAM & EMF::DATASTREAM::operator>> ( | LOGPEN & pen )`[inline]`

  | Input a Logical Pen definition. Parameters:
  pen | destination of Logical Pen definition.

DATASTREAM & EMF::DATASTREAM::operator>> ( | ::EMRTEXT & text )`[inline]`

  | Input an Enhanced Metafile Text Record. Parameters:
  text | destination of Enhanced Metafile Text Record.

DATASTREAM & EMF::DATASTREAM::operator>> ( | DWORDARRAY & array )`[inline]`

  | Input an array of double words (longs). Parameters:
  array | destination of array of input double words (longs).

DATASTREAM & EMF::DATASTREAM::operator>> ( | INTARRAY & array )`[inline]`

  | Input an array of (long) ints. Parameters:
  array | destination of array of input (long) ints.

DATASTREAM & EMF::DATASTREAM::operator>> ( | POINT16ARRAY & array )`[inline]`

  | Input an array of POINT16s. Parameters:
  array | destination of array of input POINT16s.

DATASTREAM & EMF::DATASTREAM::operator>> ( | POINTLARRAY & array )`[inline]`

  | Input an array of POINTLs. Parameters:
  array | destination of array of input POINTLs.

DATASTREAM & EMF::DATASTREAM::operator>> ( | BYTEARRAY & array )`[inline]`

  | Input an array of BYTEs. Parameters:
  array | destination of array of input BYTEs.

DATASTREAM & EMF::DATASTREAM::operator>> ( | XFORM & xform )`[inline]`

  | Input an XFORM structure. Parameters:
  xfrom | destination of input XFORM.

DATASTREAM & EMF::DATASTREAM::operator>> ( | POINT16 & point )`[inline]`

  | Input a POINT16 structure. Parameters:
  point | destination of input POINT16.

DATASTREAM & EMF::DATASTREAM::operator>> ( | POINTL & pointl )`[inline]`

  | Input a POINTL structure. Parameters:
  pointl | destination of input POINTL.

DATASTREAM & EMF::DATASTREAM::operator>> ( | POINT & point )`[inline]`

  | Input a POINT structure. Parameters:
  point | destination of input POINT.

DATASTREAM & EMF::DATASTREAM::operator>> ( | ::EMR & emr )`[inline]`

  | Input an Enhanced Metafile Record header. Parameters:
  emr | destination of Enhanced Metafile Record header.

DATASTREAM & EMF::DATASTREAM::operator>> ( | CHARSTR & charstr )`[inline]`

  | Input a single byte character string. Parameters:
  charstr | destination of input CHAR string.

DATASTREAM & EMF::DATASTREAM::operator>> ( | WCHARSTR & wcharstr )`[inline]`

  | Input a WCHAR string (note: the individual characters are swabbed.) Parameters:
  wcharstr | destination of input WCHAR string.

DATASTREAM & EMF::DATASTREAM::operator>> ( | SIZEL & sizel )`[inline]`

  | Input a SIZEL structure. Parameters:
  sizel | destination of input SIZEL.

DATASTREAM & EMF::DATASTREAM::operator>> ( | RECTL & rectl )`[inline]`

  | Input a RECTL structure. Parameters:
  rectl | destination of input RECTL.

DATASTREAM & EMF::DATASTREAM::operator>> ( | FLOAT & float_ )`[inline]`

  | Input a single precision float from the stream (swabbed). Parameters:
  uint | destination for single precision float.

DATASTREAM & EMF::DATASTREAM::operator>> ( | UINT & uint )`[inline]`

  | Input a (long) unsigned int from the stream (swabbed). Parameters:
  uint | destination for (long) unsigned 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>> ( | LONG & long_ )`[inline]`

  | Input a long int from the stream (swabbed). Parameters:
  word | destination for long int.

DATASTREAM & EMF::DATASTREAM::operator>> ( | DWORD & dword )`[inline]`

  | Input a double word (long) from the stream (swabbed). Parameters:
  word | destination for double word (long).

DATASTREAM & EMF::DATASTREAM::operator>> ( | INT16 & word )`[inline]`

  | Input a (short, 16-bit) word from the stream (swabbed). Parameters:
  word | destination for (short, 16-bit) word.

DATASTREAM & EMF::DATASTREAM::operator>> ( | WORD & word )`[inline]`

  | Input a (short) word from the stream (swabbed). Parameters:
  word | destination for (short) word.

DATASTREAM & EMF::DATASTREAM::operator>> ( | BYTE & byte )`[inline]`

  | Input a byte from the stream (not swabbed or anything). Parameters:
  byte | destination for input byte.

void EMF::DATASTREAM::setStream ( | ::FILE * fp )`[inline]`

  | Use the given FILE stream as the input/output destination. Parameters:
  fp | file point for i/o.

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

- libemf.h
- libemf.cpp