Sent to a MIDI output driver to allocate a specified device for use by a client application.
MMSYSERR_NOTENABLED | The driver failed to load or initialize. |
MMSYSERR_ALLOCATED | The device is already allocated by the maximum number of clients the driver supports or the device cannot be opened because of system resource limitations other than memory. |
MMSYSERR_NOMEM | The device cannot be opened because of a failure allocating or locking memory. |
CALLBACK_EVENT | If this flag is specified, dwCallback in the MIDIOPENDESC structure is assumed to be an event handle. |
CALLBACK_FUNCTION | If this flag is specified, dwCallback in the MIDIOPENDESC structure is assumed to be the address of a callback function. |
CALLBACK_THREAD | If this flag is specified, dwCallback in the MIDIOPENDESC structure is assumed to be a handle to a thread. |
CALLBACK_WINDOW | If this flag is specified, dwCallback in the MIDIOPENDESC structure is assumed to be a window handle. |
MIDI_IO_COOKED | If this flag is specified, the device is being opened in stream mode. In stream mode, the driver may receive all Windows 3.1 messages as well as the stream messages. The device driver must be able to handle any contingencies which arise; for example, it must be able to play short messages and system exclusive messages asynchronously to the stream. |
MIDI_IO_PACKED | If this flag is specified, the driver is being opened in compatibility mode. (Compatibility mode is supported for applications written for the Windows 3.1 platform). |
It is up to the driver to determine the number of clients allowed to use a particular device. Once a device is opened for the maximum number of clients the driver supports, the driver should return MMSYSERR_ALLOCATED for any additional open requests. If the open operation is successful, the driver should use the DriverCallback function to send the client a MOM_OPEN message.
MODM_CLOSE, MIDIOPENDESC