MCI Command Tables

Client applications can specify MCI commands as either strings or messages, but an MCI driver’s DriverProc function only accepts messages. Therefore, it is necessary to provide command tables, which the MCI command parser uses to translate command strings into messages. Furthermore, most commands can accept modifiers, so the MCI parser translates string modifiers into message arguments that MCI drivers can read.

There are three types of command tables:

Command tables are compiled by the Microsoft Windows Resource Compiler, which is described in the Win32 SDK.

Device-type command tables take precedence over the core command table. Likewise, device-specific command tables take precedence over device-type command tables. And finally, device-specific tables that reside in separate files take precedence over those that are linked to drivers. This scheme allows the core commands and device-type commands to be modified. In fact, it is common for a device-type or a device-specific table to redefine a core command in order to provide an expanded set of command modifiers.

For details about the contents of command tables and their associated data structures, see Creating Customized MCI Commands.