Required commands are recognized by all devices and have actions common to all media devices. The following table lists the required commands that must be supported by your MCD.
┌────────────────────┬────────────────────────────────────────┐ │Message │Description │ ├────────────────────┼────────────────────────────────────────┤ │MCI_CLOSE │Closes the device. │ ├────────────────────┼────────────────────────────────────────┤ │MCI_GETDEVCAPS │Gets the capabilities of a device. │ ├────────────────────┼────────────────────────────────────────┤ │MCI_INFO │Gets textual information from the │ │ │device. │ ├────────────────────┼────────────────────────────────────────┤ │MCI_OPEN │Initializes an instance of the device. │ ├────────────────────┼────────────────────────────────────────┤ │MCI_STATUS │Gets status information from the device.│ ├────────────────────┼────────────────────────────────────────┤ │MCIDRV_SAVE │Is sent from MDM to MCDs to save the │ │ │context. │ ├────────────────────┼────────────────────────────────────────┤ │MCIDRV_RESTORE │Is sent from MDM to MCDs to restore the │ │ │state of an inactive device context. │ └────────────────────┴────────────────────────────────────────┘
The required command messages use a ULONG for the ulParam1 parameter that contains any flags for the command message. They also use the pParam2 parameter for a pointer to a message-specific data structure. Your MCD might create extended commands by adding new flags and data structure fields to those already defined. When you extend a command message, your MCD must still support the required flags and fields.
The following table identifies the flags and data structures of the required command messages. For a complete reference of media control interface commands, refer to the OS/2 Multimedia Programming Reference.
┌────────────────┬──────────────────────────┬──────────────────────────────┐ │Message │Parameters (ulParam1) │Data Structure (pParam2) │ ├────────────────┼──────────────────────────┼──────────────────────────────┤ │MCI_CLOSE │MCI_NOTIFY │MCI_GENERIC_PARMS │ │ │MCI_WAIT │ │ ├────────────────┼──────────────────────────┼──────────────────────────────┤ │MCI_GETDEVCAPS │MCI_NOTIFY │MCI_GETDEVCAPS_PARMS │ │ │MCI_WAIT │ │ │ │MCI_STATUS │ │ │ │MCI_GETDEVCAPS_EXTENDED │ │ │ │MCI_GETDEVCAPS_MESSAGE │ │ │ │MCI_GETDEVCAPS_ITEM │ │ ├────────────────┼──────────────────────────┼──────────────────────────────┤ │MCI_INFO │MCI_NOTIFY │MCI_INFO_PARMS │ │ │MCI_WAIT │ │ │ │MCI_INFO_PRODUCT │ │ ├────────────────┼──────────────────────────┼──────────────────────────────┤ │MCI_OPEN │MCI_WAIT │MMDRV_OPEN_PARMS │ │ │MCI_OPEN_SHARABLE │ │ │ │MCI_OPEN_ELEMENT │ │ │ │MCI_OPEN_MMIO │ │ ├────────────────┼──────────────────────────┼──────────────────────────────┤ │MCI_STATUS │MCI_NOTIFY │MCI_STATUS_PARMS │ │ │MCI_WAIT │ │ │ │MCI_STATUS_CLIPBOARD │ │ │ │MCI_TRACK │ │ │ │MCI_STATUS_ITEM │ │ ├────────────────┼──────────────────────────┼──────────────────────────────┤ │MCIDRV_RESTORE │MCI_WAIT │MCI_GENERIC_PARMS │ │ │MCI_SHAREABLE │ │ │ │MCI_EXCLUSIVE │ │ ├────────────────┼──────────────────────────┼──────────────────────────────┤ │MCIDRV_SAVE │MCI_WAIT │MCI_GENERIC_PARMS │ └────────────────┴──────────────────────────┴──────────────────────────────┘