The multimedia input/output (MMIO) file services are an extension of the base OS/2 file services. Designed to be simple, fast, and flexible, the MMIO services-functions, messages, and data structures-enable an application to access and manipulate multimedia data files. These files contain a variety of media elements (images, graphics, digital audio, and video) that are in different file formats; for example, RIFF, AVC, and M-Motion.
MMIO services provide a consistent programming interface so that an application can refer to these files, read and write data to the files, and query the contents of the files, without having to know anything about the specific format of the files. MMIO services strengthen a program's portability, as well as data compatibility, by insulating the application from the underlying file formats.
Note: As a general comment, all fields in MMIO services data structures that are not used in a given function must be initialized to NULL. Flags that are not used, and bits not used within flags, must be set to 0.
The following table describes the MMIO functions.
┌──────────────────────────────┬────────────────────────────────────────┐ │Function │Description │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioAdvance │Fills and empties the contents of an I/O│ │ │buffer of a file set up for direct I/O │ │ │buffer access. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioAscend │Ascends out of a chunk in a RIFF file │ │ │that was descended into by mmioDescend │ │ │or created by mmioCreateChunk. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFAddElement │Adds an element to the CGRP chunk of an │ │ │open RIFF compound file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFAddEntry │Adds an entry to the CTOC chunk of an │ │ │open RIFF compound file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFChangeEntry │Changes a CTOC entry in an open RIFF │ │ │compound file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFClose │Closes a RIFF compound file that was │ │ │opened by mmioCFOpen. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFCompact │Compacts the elements of a RIFF compound│ │ │file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFCopy │Copies the CTOC and CGRP chunks from an │ │ │open RIFF compound file to another RIFF │ │ │compound file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFDeleteEntry │Deletes a CTOC entry in an open RIFF │ │ │compound file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFFindEntry │Finds a CTOC entry in an open RIFF │ │ │compound file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFGetInfo │Retrieves the CTOC header of an open │ │ │RIFF compound file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFOpen │Opens a RIFF compound file by name. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCFSetInfo │Modifies information that is stored in │ │ │the CTOC header of an open RIFF compound│ │ │file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioClose │Closes a file opened by mmioOpen. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioCreateChunk │Creates a chunk in a RIFF file that was │ │ │opened by mmioOpen. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioDescend │Descends into a RIFF file chunk │ │ │beginning at the current file position, │ │ │or searches for a specified chunk. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioDetermineSSIOProc │Determines the storage system of the │ │ │media data object. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioFindElement │Enumerates the entries of a compound │ │ │file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioFlush │Forces the contents of an I/O buffer to │ │ │be written to disk. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioFOURCC │Converts four characters to a │ │ │four-character code (FOURCC). │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioGetFormatName │Provides the descriptive name of the │ │ │format supported by the IOProc. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioGetFormats │Provides a list of all format I/O │ │ │procedures available for use. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioGetHeader │Obtains media-specific information about│ │ │data in a file such as the media type, │ │ │media structure, and the size of the │ │ │media structure. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioGetInfo │Retrieves information from the file I/O │ │ │buffer to a file opened for buffered │ │ │I/O. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioGetLastError │Returns the last error condition stored │ │ │in ulErrorRet that might contain │ │ │additional information for the analysis │ │ │of the last error routine. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioIdentifyFile │Determines (if possible) the format of a│ │ │file by either using the file name or │ │ │querying currently installed I/O │ │ │procedures to see which IOProc can │ │ │understand and process the specified │ │ │file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioIdentifyStorageSystem │Identifies the storage system that │ │ │contains the media data object. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioIniFileCODEC │Modifies the initialization file │ │ │(MMPMMMIO.INI) for MMIO services. It │ │ │adds, replaces, removes, or finds a │ │ │CODEC procedure in the MMPMMMIO.INI │ │ │file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioIniFileHandler │Adds, replaces, removes, or finds an I/O│ │ │procedure in the initialization file │ │ │(MMPMMMIO.INI). │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioInstallIOProc │Installs an I/O procedure in the MMIO │ │ │IOProc table, removes an IOProc from the│ │ │table, or finds a procedure when given │ │ │its FOURCC identifier. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioLoadCODECProc │Loads the CODEC Proc and returns the │ │ │entry point. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioOpen │Opens a file and returns an MMIO handle.│ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioQueryCODECName │Returns the CODEC Proc name. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioQueryCODECNameLength │Returns the length of the CODEC Proc │ │ │name. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioQueryFormatCount │Provides the number of IOProcs that │ │ │match the requested format. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioQueryHeaderLength │Determines the size of the header for a │ │ │specified file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioQueryIOProcModuleHandle │Provides the module handle of an │ │ │IOProc's DLL. This handle must be used │ │ │to retrieve resources from the DLL. This│ │ │function provides the handle of the DLL │ │ │only if it was loaded by MMIO from the │ │ │MMPMMMIO.INI file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioRead │Reads a specified number of bytes from a│ │ │file opened by mmioOpen. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioRemoveElement │Removes the specified element in a │ │ │compound file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioSeek │Changes the current position for │ │ │reading, writing, or both, in a file │ │ │opened by mmioOpen. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioSendMessage │Sends a message to the I/O procedure │ │ │associated with a file that was opened │ │ │with mmioOpen. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioSet │Sets or queries extended file │ │ │information. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioSetBuffer │Enables or disables buffered I/O, or │ │ │changes the buffer or buffer size, for a│ │ │file that was opened using mmioOpen. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioSetHeader │Sets media-specific information for data│ │ │to be written to a file. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioSetInfo │Changes information on a file I/O buffer│ │ │of a file opened for buffered I/O. │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioStringToFOURCC │Converts a null-terminated string to a │ │ │four-character code (FOURCC). │ ├──────────────────────────────┼────────────────────────────────────────┤ │mmioWrite │Writes to a file that was opened using │ │ │mmioOpen. │ └──────────────────────────────┴────────────────────────────────────────┘