MODM_OPEN función
WINMM envía el MODM_OPEN
mensaje a la función modMessage de un controlador de salida MIDI para asignar un dispositivo especificado que una aplicación cliente pueda usar.
Sintaxis
DWORD modMessage(
UINT uDeviceID,
UINT uMsg,
DWORD_PTR dwUser,
DWORD_PTR dwParam1,
DWORD_PTR dwParam2
);
Parámetros
uDeviceID
Especifica el identificador del dispositivo de destino. Los identificadores de dispositivo son secuenciales y tienen un valor inicial de cero y un valor final igual a uno menor que el número de dispositivos que admite el controlador.uMsg
WINMM establece este parámetro en MODM_OPEN cuando llama a modMessage para procesar este mensaje.dwUser
El controlador de salida MIDI debe rellenar esta ubicación con sus datos de instancia, pero solo en respuesta a .MODM_OPEN
dwParam1
Este parámetro especifica un puntero lejano a una estructura MIDIOPENDESC . Esta estructura contiene información adicional para el controlador, como los datos de instancia del cliente y una función de devolución de llamada para el cliente.dwParam2
Este parámetro especifica marcas de opción que determinan cómo se abre el dispositivo. Las marcas pueden ser cualquiera de los valores de la tabla siguiente.Marca Significado CALLBACK_EVENT
Si se especifica esta marca, dwCallback en la estructura MIDIOPENDESC se supone que es un identificador de eventos.
CALLBACK_FUNCTION
Si se especifica esta marca, dwCallback en la estructura MIDIOPENDESC se supone que es la dirección de una función de devolución de llamada.
CALLBACK_THREAD
Si se especifica esta marca, dwCallback en la estructura MIDIOPENDESC se supone que es un identificador para un subproceso.
CALLBACK_WINDOW
Si se especifica esta marca, se supone que dwCallback en la estructura MIDIOPENDESC es un identificador de ventana.
MIDI_IO_COOKED
Si se especifica esta marca, el dispositivo se abre en modo de secuencia y el controlador recibe mensajes de secuencia. El controlador debe ser capaz de controlar las contingencias que surjan. Por ejemplo, el controlador debe poder reproducir mensajes cortos y mensajes exclusivos del sistema de forma asincrónica en la secuencia.
Valor devuelto
La función modMessage devuelve MMSYSERR_NOERROR si la operación se realiza correctamente. De lo contrario, devuelve uno de los mensajes de error de la tabla siguiente.
Código devuelto | Descripción |
---|---|
MMSYSERR_NOTENABLED | El controlador no se pudo cargar o inicializar. |
MMSYSERR_ALLOCATED | El dispositivo MIDI ya está asignado por el número máximo de clientes que admite el controlador o el dispositivo no se puede abrir debido a limitaciones de recursos del sistema distintas de la memoria. |
MMSYSERR_NOMEM | No se puede abrir el dispositivo debido a un error al asignar o bloquear la memoria. |
Comentarios
El controlador debe ser capaz de determinar el número de clientes que puede permitir usar un dispositivo determinado. Una vez abierto un dispositivo para el número máximo de clientes que admite el controlador, el controlador devuelve MMSYSERR_ALLOCATED para las solicitudes adicionales para abrir el dispositivo. Si la operación de apertura se realiza correctamente, el controlador usa la función DriverCallback para enviar al cliente un mensaje de MOM_OPEN .
Requisitos
Plataforma de destino |
Escritorio |
Versión |
Disponible en Windows XP y sistemas operativos Windows posteriores. |
Encabezado |
Mmddk.h (incluya Mmddk.h, Mmsystem.h o Windows.h) |