82.5 The MMIOINFO Structure

The multimedia file I/O manager uses the MMIOINFO data structure to maintain state information on an open file. The MMIOINFO data structure is defined in the MMSYSTEM.H header file as follows:

typedef struct _MMIOINFO

{

/* general fields */

DWORD dwFlags; // general status flags

FOURCC fccIOProc; // ptr. to I/O procedure

LPMMIOPROC pIOProc; // ptr. to I/O procedure

UINT wErrorRet; // location for error to be returned

HTASK htask; // alternate local task

/* fields maintained by MMIO functions during buffered I/O */

LONG cchBuffer; // size of I/O buffer (or 0L)

HPSTR pchBuffer; // start of I/O buffer (or NULL)

HPSTR pchNext; // ptr. to next byte to read/write

HPSTR pchEndRead; // ptr. to last valid byte to read

HPSTR pchEndWrite; // ptr. to last available byte to write

LONG lBufOffset; // disk offset of start of buffer

/* fields maintained by I/O procedure */

LONG lDiskOffset; // disk offset of next read/write

DWORD adwInfo[3]; // data specific to MMIOPROC type

/* other fields maintained by MMIO */

DWORD dwReserved1; // reserved for internal use

DWORD dwReserved2; // reserved for internal use

HMMIO hmmio; // handle to open file

} MMIOINFO;

For more information and examples using the MMIOINFO structure, see “Directly Accessing a File I/O Buffer,” “Performing File I/O on Memory Files,” and “Using Custom I/O Procedures,” all later in this chapter.