Condividi tramite


funzione mixerMessage (mmeapi.h)

La funzione mixerMessage invia un messaggio driver mixer personalizzato direttamente a un driver mixer.

Sintassi

DWORD mixerMessage(
  HMIXER    hmx,
  UINT      uMsg,
  DWORD_PTR dwParam1,
  DWORD_PTR dwParam2
);

Parametri

hmx

Identificatore del mixer che riceve il messaggio. È necessario eseguire il cast dell'ID dispositivo al tipo di handle HMIXER . Se si specifica un handle anziché un ID dispositivo, la funzione ha esito negativo e restituisce il codice di errore MMSYSERR_NOSUPPORT.

uMsg

Messaggio personalizzato del driver mixer da inviare al driver mixer. Questo messaggio deve essere superiore o uguale alla costante MXDM_USER.

dwParam1

Parametro associato al messaggio inviato.

dwParam2

Parametro associato al messaggio inviato.

Valore restituito

Restituisce un valore specifico del messaggio del driver mixer personalizzato. I valori di errore possibili includono quanto segue.

Codice restituito Descrizione
MMSYSERR_INVALHANDLE
L'handle del dispositivo specificato non è valido.
MMSYSERR_INVALPARAM
Il parametro uMsg specificato nel messaggio di MXDM_USER non è valido.
MMSYSERR_NOSUPPORT
Il parametro deviceID deve essere un ID dispositivo valido.
MMSYSERR_NOTSUPPORTED
Il dispositivo mixer non ha elaborato il messaggio.

Commenti

I messaggi definiti dall'utente devono essere inviati solo a un driver mixer che supporta i messaggi. L'applicazione deve verificare che il driver mixer sia il driver che supporta il messaggio recuperando le funzionalità mixer e controllando i membri wMid, wPid, vDriverVersion e szPname della struttura MIXERCAPS .

Il DRV_QUERYDEVICEINTERFACE messaggio esegue una query sul nome dell'interfaccia del dispositivo di un dispositivo waveIn, waveOut, midiIn, midiOut o mixer .

Per DRV_QUERYDEVICEINTERFACE, dwParam1 è un puntatore a un buffer allocato dal chiamante in cui la funzione scrive una stringa Unicode con terminazione Null contenente il nome dell'interfaccia del dispositivo. Se il dispositivo non ha interfaccia del dispositivo, la lunghezza della stringa è zero.

Per DRV_QUERYDEVICEINTERFACE, dwParam2 specifica le dimensioni del buffer in byte. Si tratta di un parametro di input per la funzione . Il chiamante deve specificare una dimensione maggiore o uguale alla dimensione del buffer recuperata dal messaggio DRV_QUERYDEVICEINTERFACESIZE .

Il messaggio DRV_QUERYDEVICEINTERFACE è supportato in Windows Me e Windows 2000 e versioni successive. Questo messaggio è valido solo per le funzioni waveInMessage, waveOutMessage, midiInMessage, midiOutMessage e mixerMessage . Il sistema intercetta questo messaggio e restituisce il valore appropriato senza inviare il messaggio al driver di dispositivo. Per informazioni generali sulle funzioni xxxMessage intercettate dal sistema, vedere Messaggi del dispositivo intercettato dal sistema.

Le due costanti di messaggio seguenti vengono usate insieme allo scopo di ottenere i nomi dell'interfaccia del dispositivo:

  • DRV_QUERYDEVICEINTERFACESIZE
  • DRV_QUERYDEVICEINTERFACE
Il primo messaggio ottiene le dimensioni in byte del buffer necessario per contenere la stringa contenente il nome dell'interfaccia del dispositivo. Il secondo messaggio recupera la stringa del nome in un buffer delle dimensioni necessarie.

Per altre informazioni, vedere Recupero di un nome di interfaccia dispositivo.

Il DRV_QUERYDEVICEINTERFACESIZE messaggio esegue una query per le dimensioni del buffer necessarie per contenere il nome dell'interfaccia del dispositivo.

Per DRV_QUERYDEVICEINTERFACESIZE, dwParam1 è un puntatore alle dimensioni del buffer. Questo parametro punta a una variabile ULONG in cui la funzione scrive le dimensioni del buffer necessarie in byte. Le dimensioni includono lo spazio di archiviazione per la stringa del nome che termina null. La dimensione è zero se l'ID dispositivo identifica un dispositivo senza interfaccia dispositivo.

Per DRV_QUERYDEVICEINTERFACESIZE, dwParam2 non è usato. Impostare questo parametro su zero.

Questo messaggio è valido solo per le funzioni waveInMessage, waveOutMessage, midiInMessage, midiOutMessage e mixerMessage . Il sistema intercetta questo messaggio e restituisce il valore appropriato senza inviare il messaggio al driver di dispositivo. Per informazioni generali sulle funzioni xxxMessage intercettate dal sistema, vedere Messaggi del dispositivo intercettato dal sistema.

Le dimensioni del buffer recuperate da questo messaggio sono espresse come conteggio di byte. Specifica le dimensioni del buffer necessarie per contenere la stringa Unicode con terminazione Null che contiene il nome dell'interfaccia del dispositivo. Il chiamante alloca un buffer delle dimensioni specificate e usa il messaggio DRV_QUERYDEVICEINTERFACE per recuperare la stringa del nome dell'interfaccia del dispositivo.

Per altre informazioni, vedere Recupero di un nome di interfaccia dispositivo.

Il DRV_QUERYDEVNODE messaggio esegue una query sul numero di devnode assegnato al dispositivo dal gestore Plug and Play.

Per DRV_QUERYDEVNODE, dwParam1 è un puntatore a una variabile DWORD allocata dal chiamante in cui la funzione scrive il numero devnode. Se al dispositivo non viene assegnato alcun nodo devnode, la funzione imposta questa variabile su zero.

Per DRV_QUERYDEVNODE, dwParam2 non è usato. Impostare questo parametro su zero.

In Windows 2000 e versioni successive il messaggio restituisce sempre MMSYSERR_NOTSUPPORTED. Questo messaggio è valido solo per le funzioni waveInMessage, waveOutMessage, midiInMessage, midiOutMessage e mixerMessage . Il sistema intercetta questo messaggio e restituisce il valore appropriato senza inviare il messaggio al driver di dispositivo. Per informazioni generali sulle funzioni xxxMessage intercettate dal sistema, vedere Messaggi del dispositivo intercettato dal sistema.

Il DRV_QUERYMAPPABLE messaggio esegue una query per verificare se il dispositivo specificato può essere usato da un mapper.

Per DRV_QUERYMAPPABLE, dwParam1 non è usato. Impostare questo parametro su zero.

Per DRV_QUERYMAPPABLE, dwParam2 non è usato. Impostare questo parametro su zero.

Questo messaggio è valido solo per le funzioni waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, mixerMessage e auxOutMessage . Il sistema intercetta questo messaggio e restituisce il valore appropriato senza inviare il messaggio al driver di dispositivo. Per informazioni generali sulle funzioni xxxMessage intercettate dal sistema, vedere Messaggi del dispositivo intercettato dal sistema.

Quando un programma dell'applicazione apre un mapper anziché un dispositivo audio specifico, il sistema inserisce un mapper tra l'applicazione e i dispositivi disponibili. Il mapper seleziona un dispositivo appropriato eseguendo il mapping dei requisiti dell'applicazione a uno dei dispositivi disponibili. Per altre informazioni sui mapper, vedere la documentazione di Microsoft Windows SDK.

Il DRVM_MAPPER_CONSOLEVOICECOM_GET messaggio recupera l'ID dispositivo del dispositivo di comunicazione vocale preferito.

Per DRVM_MAPPER_CONSOLEVOICECOM_GET, dwParam1 è un puntatore all'ID dispositivo. Questo parametro punta a una variabile DWORD in cui la funzione scrive l'ID dispositivo del dispositivo di comunicazione vocale preferito corrente. La funzione scrive il valore (-1) se non è disponibile alcun dispositivo qualificato come dispositivo di comunicazione vocale preferito.

Per DRVM_MAPPER_CONSOLEVOICECOM_GET, dwParam2 è un puntatore ai flag di stato. Questo parametro punta a una variabile DWORD in cui la funzione scrive i flag device-status. È attualmente definito un solo bit di flag: DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.

Questo messaggio è valido solo per le funzioni waveInMessage e waveOutMessage . Quando un chiamante chiama queste due funzioni con il messaggio DRVM_MAPPER_CONSOLEVOICECOM_GET, il chiamante deve specificare l'ID dispositivo come WAVE_MAPPER e quindi eseguire il cast di questo valore al tipo di handle appropriato. Per le funzioni waveInMessage, waveOutMessage, midiInMessage, midiOutMessage o mixerMessage , il chiamante deve eseguire rispettivamente il cast dell'ID dispositivo a un handle di tipo HWAVEIN, HWAVEOUT, HMIDIIN, HMIDIOUT o HMIXER. Si noti che se il chiamante fornisce un handle valido anziché un ID dispositivo per questo parametro, la funzione ha esito negativo e restituisce il codice di errore MMSYSERR_NOSUPPORT.

Il sistema intercetta questo messaggio e restituisce il valore appropriato senza inviare il messaggio al driver di dispositivo. Per informazioni generali sulle funzioni xxxMessage intercettate dal sistema, vedere Messaggi del dispositivo intercettato dal sistema.

Questo messaggio consente di determinare quale dispositivo è preferibile specificamente per le comunicazioni vocali, a differenza del messaggio DRVM_MAPPER_PREFERRED_GET , che determina il dispositivo preferito per tutte le altre funzioni audio.

Ad esempio, il dispositivo waveOut preferito per le comunicazioni vocali potrebbe essere l'auricolare in un visore VR, ma il dispositivo waveOut preferito per tutte le altre funzioni audio potrebbe essere un set di altoparlanti stereo.

Quando il bit del flag DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY è impostato nella posizione DWORD a cui punta dwParam2, le API waveIn e waveOut usano solo il dispositivo di comunicazione vocale preferito corrente e non cercano altri dispositivi disponibili se il dispositivo preferito non è disponibile. Il flag restituito dalla chiamata waveInMessage o waveOutMessage si applica al dispositivo di comunicazione vocale preferito per le API waveIn e waveOut , indipendentemente dal fatto che la chiamata venga effettuata a waveInMessage o waveOutMessage. Per altre informazioni, vedere Preferred Voice-Communications Device ID (ID dispositivo preferito).

Il DRVM_MAPPER_PREFERRED_GET messaggio recupera l'ID dispositivo del dispositivo audio preferito.

Per DRVM_MAPPER_PREFERRED_GET, dwParam1 è un puntatore all'ID dispositivo. Questo parametro punta a una variabile DWORD in cui la funzione scrive l'ID dispositivo del dispositivo preferito corrente. La funzione scrive il valore (-1) se non è disponibile alcun dispositivo qualificato come dispositivo preferito.

Per DRVM_MAPPER_PREFERRED_GET, dwParam2 è un puntatore ai flag di stato. Questo parametro punta a una variabile DWORD in cui la funzione scrive i flag device-status. Attualmente è definito un solo bit di flag (solo per le chiamate waveInMessage e waveOutMessage ): DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.

Questo messaggio è valido solo per le funzioni waveInMessage, waveOutMessage e midiOutMessage . Quando il chiamante chiama queste funzioni con il messaggio DRVM_MAPPER_PREFERRED_GET, il chiamante deve innanzitutto specificare l'ID dispositivo come WAVE_MAPPER (per waveInMessage o waveOutMessage) o MIDI_MAPPER (per midiOutMessage) e quindi eseguire il cast di questo valore al tipo di handle appropriato. Per le funzioni waveInMessage, waveOutMessage o midiOutMessage , il chiamante deve eseguire rispettivamente il cast dell'ID dispositivo in un tipo di handle HWAVEIN, HWAVEOUT o HMIDIOUT. Si noti che se il chiamante fornisce un handle valido anziché un ID dispositivo per questo parametro, la funzione ha esito negativo e restituisce il codice di errore MMSYSERR_NOSUPPORT.

Il sistema intercetta questo messaggio e restituisce il valore appropriato senza inviare il messaggio al driver di dispositivo. Per informazioni generali sulle funzioni xxxMessage intercettate dal sistema, vedere Messaggi del dispositivo intercettato dal sistema.

Questo messaggio consente di determinare quale dispositivo è preferibile per le funzioni audio in generale, a differenza del messaggio DRVM_MAPPER_CONSOLEVOICECOM_GET , che determina quale dispositivo è preferibile specificamente per le comunicazioni vocali.

Quando il bit del flag DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY viene impostato nella posizione DWORD a cui punta dwParam2, le API waveIn e waveOut usano solo il dispositivo preferito corrente e non cercano altri dispositivi disponibili se il dispositivo preferito non è disponibile. Si noti che la funzione midiOutMessage non restituisce questo flag: l'API midiOut usa sempre solo il dispositivo preferito. Il flag restituito dalla chiamata waveInMessage o waveOutMessage si applica al dispositivo preferito sia per le API waveIn che waveOut , indipendentemente dal fatto che la chiamata venga effettuata a waveInMessage o waveOutMessage.

Le funzioni xxxMessage accettano questo valore al posto di un handle di dispositivo valido per consentire a un'applicazione di determinare l'ID dispositivo predefinito senza dover prima aprire un dispositivo. Per altre informazioni, vedere Accesso all'ID dispositivo preferito.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione mmeapi.h (include Windows.h)
Libreria Winmm.lib
DLL Winmm.dll

Vedi anche

Funzioni mixer audio

Mixer audio