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) |