Compartir a través de


ModMessage (función)

La función modMessage es la función de punto de entrada para los controladores de salida de la interfaz digital del instrumento musical (MIDI) y para los controladores de sintetizador internos. Para obtener más información sobre los mensajes de dispositivo de audio relacionados con MIDI, consulta Mensajes de dispositivo de audio para MIDI.

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
    Especifica el mensaje que WINMM envía al controlador en respuesta a una llamada desde la aplicación cliente.

  • dwUser
    Para el mensaje de MODM_OPEN , el controlador debe rellenar esta ubicación con sus datos de instancia. Para cualquier otro mensaje, los datos de instancia se devuelven al controlador. Los controladores que admiten varios clientes pueden usar estos datos de instancia para realizar un seguimiento de qué cliente está asociado al mensaje.

  • dwParam1
    Especifica un parámetro dependiente del mensaje.

  • dwParam2
    Especifica un parámetro dependiente del mensaje. Si hay marcas que proporcionan información adicional al controlador que funciona con modMessage, WINMM usa este parámetro para pasar las marcas.

Valor devuelto

La función modMessage devuelve MMSYSERR_NOERROR si puede procesar correctamente el mensaje que recibió de MMSYSTEM. De lo contrario, devuelve uno de los siguientes mensajes de error.

Código devuelto Descripción
MMSYSERR_ERROR

Error no especificado.

MMSYSERR_BADDEVICEID

El identificador de dispositivo especificado está fuera del intervalo.

MMSYSERR_NOTENABLED

No se pudo cargar o inicializar el controlador.

MMSYSERR_ALLOCATED

El dispositivo especificado ya está asignado.

MMSYSERR_INVALHANDLE

El identificador del dispositivo especificado no es válido.

MMSYSERR_NODRIVER

No hay ningún controlador de dispositivo presente.

MMSYSERR_NOMEM

Error de asignación de memoria.

MMSYSERR_NOTSUPPORTED

No se admite la función solicitada por el mensaje.

MMSYSERR_BADERRNUM

El valor de error está fuera del intervalo. Consulte la sección Comentarios para obtener más detalles.

MMSYSERR_INVALFLAG

Se pasó una marca no válida a modMessage(mediante dwParam2).

MMSYSERR_INVALPARAM

Se pasó un parámetro no válido a modMessage.

MMSYSERR_HANDLEBUSY

Otro subproceso usa simultáneamente el identificador especificado (por ejemplo, un subproceso de devolución de llamada).

MMSYSERR_INVALIDALIAS

No se encontró el alias especificado.

MMSYSERR_BADDB

Base de datos del Registro incorrecta.

MMSYSERR_KEYNOTFOUND

No se encontró la clave del Registro especificada.

MMSYSERR_READERROR

Error de lectura del Registro.

MMSYSERR_WRITEERROR

Error de escritura del Registro.

MMSYSERR_DELETEERROR

Error de eliminación del Registro.

MMSYSERR_VALNOTFOUND

No se encontró el valor del Registro especificado.

MMSYSERR_NODRIVERCB

El controlador que funciona con modMessage no llama a DriverCallback.

MMSYSERR_MOREDATA

modMessage tiene más datos para devolver.

MMSYSERR_LASTERROR

Indica que este es el último error del intervalo de valores de error. Para obtener información más detallada, consulte la sección Comentarios.

Comentarios

Los mensajes de dispositivo de audio son constantes definidas por el sistema. Por lo tanto, cuando modMessage recibe un mensaje de dispositivo de audio, usa una instrucción switch para determinar la acción que se va a realizar, en función del valor del mensaje.

El intervalo de mensajes de error que modMessage puede devolver depende del mensaje que estaba procesando cuando se produjo el error. Los valores numéricos del MMSYSERR_ mensajes de error comienzan con cero (para MMSYSERR_NOERROR) y continúan con MMSYSERR_BASE + n, donde n es un entero comprendido entre 1 y 21. El valor de MMSYSERR_BASE es una constante definida. Para obtener más información sobre MSYSERR_BASE y los mensajes de error de MMSYSERR_, vea Mmsystem.h en Windows SDK y Mmddk.h en WDK respectivamente.

Requisitos

Plataforma de destino

Escritorio

Versión

Disponible con Windows XP y sistemas operativos Windows posteriores.

Encabezado

Mmddk.h (incluya Mmddk.h, Mmsystem.h o Windows.h)

Consulte también

MODM_OPEN