Partager via


Création d’une boîte de dialogue permettant de sélectionner un type spécifique de format

[La fonctionnalité associée à cette page, le Gestionnaire de compression audio, est une fonctionnalité héritée. Microsoft recommande vivement que le nouveau code n’utilise pas cette fonctionnalité.]

Vous souhaiterez peut-être qu’une application autorise l’utilisateur à sélectionner un format dans une liste restreinte de formats dans une boîte de dialogue. Les restrictions peuvent limiter le nombre de canaux, le taux d’échantillonnage, la balise de format audio waveform ou le nombre de bits par échantillon. Dans tous ces cas, vous pouvez générer la liste à l’aide de la fonction acmFormatChoose, en définissant la fdwEnum et pwfxEnum membres de la structure ACMFORMATCHOOSE. L’exemple suivant illustre ce processus.

MMRESULT            mmr; 
ACMFORMATCHOOSE     afc; 
WAVEFORMATEX        wfxSelection; 
WAVEFORMATEX        wfxEnum; 
 
// Initialize the ACMFORMATCHOOSE members. 
memset(&afc, 0, sizeof(afc)); 
 
afc.cbStruct    = sizeof(afc); 
afc.fdwStyle    = 0L;               // no special style flags 
afc.hwndOwner   = hwnd;             // hwnd of parent window 
afc.pwfx        = &wfxSelection;    // wfx to receive selection 
afc.cbwfx       = sizeof(wfxSelection); 
afc.pszTitle    = TEXT("16 Bit PCM Selection"); 
 
//  Request that all 16-bit PCM formats be displayed for the user 
//  to select from. 
memset(&wfxEnum, 0, sizeof(wfxEnum)); 
wfxEnum.wFormatTag = WAVE_FORMAT_PCM; 
wfxEnum.wBitsPerSample = 16; 
afc.fdwEnum = ACM_FORMATENUMF_WFORMATTAG | 
    ACM_FORMATENUMF_WBITSPERSAMPLE; 
afc.pwfxEnum = &wfxEnum; 
mmr = acmFormatChoose(&afc); 
if ((MMSYSERR_NOERROR != mmr) && (ACMERR_CANCELED != mmr)) 
{ 
    // There was a fatal error in bringing up the list 
    // dialog box (probably invalid input parameters). 
}