Détermination de la prise en charge des formats non standard
Pour déterminer si un appareil prend en charge un format particulier (standard ou non standard), vous pouvez appeler la fonction waveOutOpen avec _ l' _ indicateur de requête format Wave. L’exemple suivant utilise cette technique pour déterminer si un périphérique Wave-audio prend en charge un format spécifié.
// Determines whether the specified waveform-audio output device
// supports a specified waveform-audio format. Returns
// MMSYSERR_NOERROR if the format is supported, WAVEERR_BADFORMAT if
// the format is not supported, and one of the other MMSYSERR_ error
// codes if there are other errors encountered in opening the
// specified waveform-audio device.
MMRESULT IsFormatSupported(LPWAVEFORMATEX pwfx, UINT uDeviceID)
{
return (waveOutOpen(
NULL, // ptr can be NULL for query
uDeviceID, // the device identifier
pwfx, // defines requested format
NULL, // no callback
NULL, // no instance data
WAVE_FORMAT_QUERY)); // query only, do not open device
}
Cette technique pour déterminer la prise en charge des formats non standard s’applique également aux périphériques d’entrée Waveform-Audio. La seule différence est que la fonction waveInOpen est utilisée à la place de waveOutOpen pour interroger la prise en charge du format.
Pour déterminer si un format de données Waveform-Audio particulier est pris en charge par l’un des périphériques audio Wave dans un système, utilisez la technique illustrée dans l’exemple précédent, mais spécifiez la _ constante du mappeur Wave pour le paramètre uDeviceID .