Required Command Messages

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             │
└────────────────┴──────────────────────────┴──────────────────────────────┘


[Back: Types of Command Messages]
[Next: Opening an MCD]