Generar un cuadro de diálogo para seleccionar un tipo de formato específico
Es posible que desee que una aplicación permita al usuario seleccionar un formato de una lista restringida de formatos en un cuadro de diálogo. Las restricciones pueden limitar el número de canales, la frecuencia de muestreo, la etiqueta de formato de audio de forma de onda o el número de bits por muestra. En todos estos casos, puede generar la lista mediante la función acmFormatChoose , estableciendo los miembros fdwEnum y pwfxEnum de la estructura ACMFORMATCHOOSE . El ejemplo siguiente ilustra este proceso.
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).
}