See also ACMDM_STREAM_CLOSE, ACMDM_STREAM_CONVERT, ACMDM_STREAM_PREPARE, ACMDM_STREAM_RESET, ACMDM_STREAM_SIZE, ACMDM_STREAM_UNPREPARE, ACMDRVOPENDESC, ACMDRVSTREAMHEADER, ACMDRVSTREAMINSTANCE, ACMDRVSTREAMSIZE
lParam1 = (LPARAM) pacmDSI // see below lParam2 = reserved // should be ignored
Sent to an Audio Compression Manager (ACM) driver to either open a conversion stream or query the stream for support. This message is usually sent to an ACM driver in response to an acmStreamOpen call.
ACMERR_NOTPOSSIBLE | The ACMDRVSTREAMINSTANCE structure defines a conversion stream request that cannot be satisfied by the driver. |
MMSYSERR_NOMEM | Unable to allocate resources to create the conversion stream. |
MMSYSERR_NOTENABLED | The driver failed to load or initialize. |
lParam1
Address of the ACMDRVSTREAMINSTANCE structure that the caller is trying to create or query for support.
An ACM driver must support this message if it supports conversion operations. Note that the following parameters for the ACMDM_STREAM_OPEN message will be validated before calling the driver:
The driver does not need to check for these conditions.
If the ACM_STREAMOPENF_QUERY flag is specified in the fdwOpen member of the ACMDRVSTREAMINSTANCE structure, the driver should only return whether the conversion stream can be opened by the driver; but the conversion stream will not be opened. The driver should not allocate any instance data in conjunction with this flag.
If the ACM_STREAMOPENF_NONREALTIME flag is not specified in the fdwOpen member of the ACMDRVSTREAMINSTANCE structure, the driver should only succeed the message if the conversion can be done in real time. The definition of real time is highly dependent on your interpretation, though good judgment should be used here. If the driver's conversion is computationally expensive, the driver should not succeed a real-time conversion stream open request. An example of a real-time conversion client is the wave mapper, where data is converted as it is being played or recorded.