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 .