ACMDM_FORMAT_DETAILS

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.