Función midiOutMessage (mmeapi.h)

La función midiOutMessage envía un mensaje a los controladores de dispositivo MIDI. Esta función solo se usa para mensajes específicos del controlador que no son compatibles con la API MIDI.

Sintaxis

MMRESULT midiOutMessage(
  HMIDIOUT  hmo,
  UINT      uMsg,
  DWORD_PTR dw1,
  DWORD_PTR dw2
);

Parámetros

hmo

Identificador del dispositivo MIDI que recibe el mensaje. Debe convertir el identificador de dispositivo al tipo de identificador HMIDIOUT . Si proporciona un identificador en lugar de un identificador de dispositivo, se produce un error en la función y devuelve el código de error MMSYSERR_NOSUPPORT.

uMsg

Mensaje que se va a enviar.

dw1

Parámetro de mensaje.

dw2

Parámetro de mensaje.

Valor devuelto

Devuelve el valor devuelto por el controlador de dispositivo de audio.

Comentarios

El DRV_QUERYDEVICEINTERFACE mensaje consulta el nombre de la interfaz del dispositivo de un dispositivo waveIn, waveOut, midiIn, midiOut o dispositivo mezclador .

Para DRV_QUERYDEVICEINTERFACE, dwParam1 es un puntero a un búfer asignado por el autor de la llamada en el que la función escribe una cadena Unicode terminada en null que contiene el nombre de la interfaz del dispositivo. Si el dispositivo no tiene ninguna interfaz de dispositivo, la longitud de la cadena es cero.

Para DRV_QUERYDEVICEINTERFACE, dwParam2 especifica el tamaño del búfer en bytes. Se trata de un parámetro de entrada para la función . El autor de la llamada debe especificar un tamaño mayor o igual que el tamaño del búfer recuperado por el mensaje DRV_QUERYDEVICEINTERFACESIZE .

El mensaje de DRV_QUERYDEVICEINTERFACE se admite en Windows Me y Windows 2000 y versiones posteriores. Este mensaje solo es válido para las funciones waveInMessage, waveOutMessage, midiInMessage, midiOutMessage y mixerMessage . El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.

Las dos constantes de mensaje siguientes se usan conjuntamente con el fin de obtener nombres de interfaz de dispositivo:

  • DRV_QUERYDEVICEINTERFACESIZE
  • DRV_QUERYDEVICEINTERFACE
El primer mensaje obtiene el tamaño en bytes del búfer necesario para contener la cadena que contiene el nombre de la interfaz del dispositivo. El segundo mensaje recupera la cadena de nombre en un búfer del tamaño necesario.

Para obtener más información, vea Obtener un nombre de interfaz de dispositivo.

El DRV_QUERYDEVICEINTERFACESIZE mensaje consulta el tamaño del búfer necesario para contener el nombre de la interfaz del dispositivo.

Para DRV_QUERYDEVICEINTERFACESIZE, dwParam1 es un puntero al tamaño del búfer. Este parámetro apunta a una variable ULONG en la que la función escribe el tamaño de búfer necesario en bytes. El tamaño incluye espacio de almacenamiento para el valor NULL de terminación de la cadena de nombre. El tamaño es cero si el identificador de dispositivo identifica un dispositivo que no tiene ninguna interfaz de dispositivo.

Para DRV_QUERYDEVICEINTERFACESIZE, dwParam2 no se usa. Establezca este parámetro en cero.

Este mensaje solo es válido para las funciones waveInMessage, waveOutMessage, midiInMessage, midiOutMessage y mixerMessage . El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.

El tamaño del búfer recuperado por este mensaje se expresa como un recuento de bytes. Especifica el tamaño del búfer necesario para contener la cadena Unicode terminada en null que contiene el nombre de la interfaz del dispositivo. El autor de la llamada asigna un búfer del tamaño especificado y usa el mensaje DRV_QUERYDEVICEINTERFACE para recuperar la cadena de nombre de la interfaz del dispositivo.

Para obtener más información, vea Obtener un nombre de interfaz de dispositivo.

El DRV_QUERYDEVNODE mensaje consulta el número de nodo dev asignado al dispositivo por el administrador de Plug and Play.

Para DRV_QUERYDEVNODE, dwParam1 es un puntero a una variable DWORD asignada por el autor de la llamada en la que la función escribe el número de devnode. Si no se asigna ningún devnode al dispositivo, la función establece esta variable en cero.

Para DRV_QUERYDEVNODE, dwParam2 no se usa. Establezca este parámetro en cero.

En Windows 2000 y versiones posteriores, el mensaje siempre devuelve MMSYSERR_NOTSUPPORTED. Este mensaje solo es válido para las funciones waveInMessage, waveOutMessage, midiInMessage, midiOutMessage y mixerMessage . El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.

El DRV_QUERYMAPPABLE mensaje consulta si un asignador puede usar el dispositivo especificado.

Para DRV_QUERYMAPPABLE, dwParam1 no se usa. Establezca este parámetro en cero.

Para DRV_QUERYMAPPABLE, dwParam2 no se usa. Establezca este parámetro en cero.

Este mensaje solo es válido para las funciones waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, mixerMessage y auxOutMessage . El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.

Cuando un programa de aplicación abre un asignador en lugar de un dispositivo de audio específico, el sistema inserta un asignador entre la aplicación y los dispositivos disponibles. El asignador selecciona un dispositivo adecuado asignando los requisitos de la aplicación a uno de los dispositivos disponibles. Para obtener más información sobre los asignadores, consulte la documentación de Microsoft Windows SDK.

El DRVM_MAPPER_CONSOLEVOICECOM_GET mensaje recupera el identificador de dispositivo del dispositivo de comunicaciones de voz preferido.

Para DRVM_MAPPER_CONSOLEVOICECOM_GET, dwParam1 es un puntero al identificador de dispositivo. Este parámetro apunta a una variable DWORD en la que la función escribe el identificador de dispositivo del dispositivo de comunicaciones de voz preferido actual. La función escribe el valor (-1) si no hay ningún dispositivo disponible que se califica como un dispositivo de comunicaciones de voz preferido.

Para DRVM_MAPPER_CONSOLEVOICECOM_GET, dwParam2 es un puntero a las marcas de estado. Este parámetro apunta a una variable DWORD en la que la función escribe las marcas de estado del dispositivo. Actualmente solo se define un bit de marca: DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.

Este mensaje solo es válido para las funciones waveInMessage y waveOutMessage . Cuando un llamador llama a estas dos funciones con el mensaje DRVM_MAPPER_CONSOLEVOICECOM_GET, el autor de la llamada debe especificar el identificador de dispositivo como WAVE_MAPPER y, a continuación, convertir este valor en el tipo de identificador adecuado. Para las funciones waveInMessage, waveOutMessage, midiInMessage, midiOutMessage o mixerMessage, el llamador debe convertir el identificador del dispositivo a un identificador de tipo HWAVEIN, HWAVEOUT, HMIDIIN, HMIDIOUT o HMIXER, respectivamente. Tenga en cuenta que si el autor de la llamada proporciona un identificador válido en lugar de un identificador de dispositivo para este parámetro, la función produce un error y devuelve el código de error MMSYSERR_NOSUPPORT.

El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.

Este mensaje proporciona una manera de determinar qué dispositivo se prefiere específicamente para las comunicaciones de voz, a diferencia del mensaje de DRVM_MAPPER_PREFERRED_GET , que determina qué dispositivo se prefiere para todas las demás funciones de audio.

Por ejemplo, el dispositivo waveOut preferido para las comunicaciones de voz podría ser el auricular en un casco, pero el dispositivo waveOut preferido para todas las demás funciones de audio podría ser un conjunto de altavoces estéreo.

Cuando el bit de marca de DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY se establece en la ubicación DWORD a la que apunta dwParam2, las API waveIn y waveOut solo usan el dispositivo de comunicaciones de voz preferido actual y no buscan otros dispositivos disponibles si el dispositivo preferido no está disponible. La marca que genera la llamada waveInMessage o waveOutMessage se aplica al dispositivo preferido de comunicaciones de voz para las API waveIn y waveOut , independientemente de si la llamada se realiza a waveInMessage o waveOutMessage. Para obtener más información, consulte Id. de dispositivo Voice-Communications preferido.

El DRVM_MAPPER_PREFERRED_GET mensaje recupera el identificador de dispositivo del dispositivo de audio preferido.

Para DRVM_MAPPER_PREFERRED_GET, dwParam1 es un puntero al identificador de dispositivo. Este parámetro apunta a una variable DWORD en la que la función escribe el identificador de dispositivo del dispositivo preferido actual. La función escribe el valor (-1) si no hay ningún dispositivo disponible que califique como un dispositivo preferido.

Para DRVM_MAPPER_PREFERRED_GET, dwParam2 es un puntero a las marcas de estado. Este parámetro apunta a una variable DWORD en la que la función escribe las marcas de estado del dispositivo. Actualmente solo se define un bit de marca (solo para waveInMessage y waveOutMessage ): DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.

Este mensaje solo es válido para las funciones waveInMessage, waveOutMessage y midiOutMessage . Cuando el autor de la llamada llama a estas funciones con el mensaje de DRVM_MAPPER_PREFERRED_GET, el autor de la llamada debe especificar primero el identificador de dispositivo como WAVE_MAPPER (para waveInMessage o waveOutMessage) o MIDI_MAPPER (para midiOutMessage) y, a continuación, convertir este valor en el tipo de identificador adecuado. Para las funciones waveInMessage, waveOutMessage o midiOutMessage , el autor de la llamada debe convertir el identificador de dispositivo en un tipo de controlador HWAVEIN, HWAVEOUT o HMIDIOUT, respectivamente. Tenga en cuenta que si el autor de la llamada proporciona un identificador válido en lugar de un identificador de dispositivo para este parámetro, la función produce un error y devuelve el código de error MMSYSERR_NOSUPPORT.

El sistema intercepta este mensaje y devuelve el valor adecuado sin enviar el mensaje al controlador del dispositivo. Para obtener información general sobre las funciones xxxMessage interceptadas por el sistema, consulte Mensajes de dispositivo interceptados por el sistema.

Este mensaje proporciona una manera de determinar qué dispositivo se prefiere para las funciones de audio en general, a diferencia del mensaje de DRVM_MAPPER_CONSOLEVOICECOM_GET , que determina qué dispositivo se prefiere específicamente para las comunicaciones de voz.

Cuando el bit de marca de DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY se establece en la ubicación DWORD a la que apunta dwParam2, las API waveIn y waveOut usan solo el dispositivo preferido actual y no buscan otros dispositivos disponibles si el dispositivo preferido no está disponible. Tenga en cuenta que la función midiOutMessage no genera esta marca: la API midiOut siempre usa solo el dispositivo preferido. La marca que genera la llamada waveInMessage o waveOutMessage se aplica al dispositivo preferido para las API waveIn y waveOut , independientemente de si se realiza la llamada a waveInMessage o waveOutMessage.

Las funciones xxxMessage aceptan este valor en lugar de un identificador de dispositivo válido para permitir que una aplicación determine el identificador de dispositivo predeterminado sin tener que abrir primero un dispositivo. Para obtener más información, consulte Acceso al identificador de dispositivo preferido.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mmeapi.h (incluya Windows.h)
Library Winmm.lib
Archivo DLL Winmm.dll

Consulte también

Funciones MIDI