See also ACMDM_FORMAT_SUGGEST, ACMDM_FORMATTAG_DETAILS, ACMDRVFORMATSUGGEST
lParam1 = (LPARAM) pacmFD // see below lParam2 = (LPARAM) fFormatDetails // see below
Sent to an Audio Compression Manager (ACM) driver to request details about a format for a specific format tag. This message is usually sent to an ACM driver in response to an acmFormatDetails or acmFormatEnum call.
ACMERR_NOTPOSSIBLE | The ACMFORMATDETAILS structure and query operation specify information that is not understood by the driver. |
MMSYSERR_NOTENABLED | The driver failed to load or initialize. |
MMSYSERR_NOTSUPPORTED | The driver does not support the specified query operation. |
lParam1
Address of the ACMFORMATDETAILS structure that should be filled in with the format details for the specified format tag. The cbStruct member of the ACMFORMATDETAILS structure will contain the desired size, in bytes, of the details that the driver should return for the format.
lParam2
Flags for getting the format details for the specified format tag. This parameter is identical to the fdwDetails parameter passed to acmFormatDetails.
ACM_FORMATDETAILSF_FORMAT | Indicates that a WAVEFORMATEX structure pointed to by the pwfx member of the ACMFORMATDETAILS structure was given and the remaining details should be returned. The dwFormatTag member of the ACMFORMATDETAILS will be initialized to the same format tag as the pwfx member specifies. This query type can be used to get a string description of an arbitrary format structure. |
ACM_FORMATDETAILSF_INDEX | Indicates that a format index for the format tag was given in the dwFormatIndex member of the ACMFORMATDETAILS structure. The format details must be returned in the structure specified by lParam1. The index ranges from zero to one less than the cStandardFormats member returned in the ACMFORMATTAGDETAILS structure for a format tag. |
An ACM driver must support this message. Note that the following parameters for the ACMDM_FORMAT_DETAILS message will be validated before calling the driver:
The driver does not need to check for these conditions.
To enable the driver to successfully query for the format of the specified format tag, the cbStruct member of the ACMFORMATDETAILS structure should be set to the actual size, in bytes, of the details being returned. This size cannot exceed the requested size. Note that the smallest possible size is the size of the base ACMFORMATDETAILS structure.
If an ACM driver returns a zero-length string for a format name, the ACM will create a format string for the format. The format string will specify the kHz, bit-depth, and channel setting (mono or stereo). This is strongly recommended if the driver will be used internationally, because it allows the ACM to automatically accommodate international differences. However, if you want to specify these values yourself, use the nSamplesPerSec, wBitsPerSample, and nChannels members of a WAVEFORMATEX structure to specify the kHz, bit-depth, and channel setting, respectively. If the wBitsPerSample member is zero and the driver returns a zero length string, the ACM will not include the bit depth in the string description.