This message requests an ACM driver to choose a preferred destination format for a conversion with a specified source format.
MMSYSERR_NOERROR indicates success. Otherwise, the driver returns one of the MMSYSERR error values declared in the Mmsystem.h header file or one of the ACMERR error values declared in the Msacm.h header file. The following are possible error values:
The ACM (Waveapi.dll) sends this message by calling the ACM driver’s ACM_IOControl entry point through the DeviceIoControl function. The ACM sends this message when an application calls the acmFormatSuggest function.
All ACM drivers that provide stream conversions must support this message.
ACMDRVFORMATSUGGEST contains pointers to two WAVEFORMATEX structures. One of these structures describes the client-specified source format. The other structure is used by the driver to return a suggested destination format. The client might specify values for some of the destination structure members in order to restrict the possible suggestions.
Given the specified source format and destination restrictions, if any, the driver determines if it can provide a conversion from the specified source format to a particular destination format. If it can, it returns a description of that format in the destination WAVEFORMATEX structure.
Before calling the driver’s ACM_IOControl function, the ACM should verify the following conditions: