If MCI’s required and basic command sets do not provide all of the functionality needed by applications to fully interact with a device, then a driver developer can create customized MCI commands by doing one or both of the following:
You should match your MCI command extensions as closely as possible to existing command extensions. Refer to the Win32 SDK for descriptions of existing command extensions.
You define new or modified MCI commands by creating new MCI command tables. Use these tables to define new commands and flags, and to redefine or extend the required or basic commands.
Creating new MCI command structures is also sometimes necessary. You must define a new structure if you are creating a new command, or if you are modifying an existing command in a way that requires additional structure members.