Compartir a través de


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)

Consulte también

modMessage

MIDIOPENDESC

DriverCallback

MOM_OPEN