MXDM_GETLINECONTROLS
Sent to an audio mixer device driver to get one or all controls associated with the specified line. This message is normally sent to an audio mixer driver in response to a mixerGetLineControls call.
- The return value is an error code, or zero (MMSYSERR_NOERROR) if the operation is successful. Possible error codes are:
MMSYSERR_NOTENABLED |
The driver failed to load or initialize. |
MIXERR_INVALLINE |
The audio mixer device line reference is invalid. |
MIXERR_INVALCONTROL |
The audio mixer device control reference is invalid. |
- dwParam1
- Specifies a pointer to a MIXERLINECONTROLS structure that references the MIXERCONTROL structures to receive the line controls information being requested.
- dwParam2
- Specifies flags for getting the line controls information. This argument is identical to the fdwControls argument passed to the mixerGetLineControls function. For additional information about the flag settings, see the mixerGetLineControls function listed in the SDK documentation.
An audio mixer driver must support this message. The Mixer Manager will validate the following parameters for the MXDM_GETLINECONTROLS message before calling the driver. Your driver does not need to check for the following conditions:
- dwParam1 will contain a valid pointer to a MIXERLINECONTROLS structure. This structure will be at least large enough to hold the base MIXERLINECONTROLS structure members. This buffer has also been validated to insure it is big enough to hold at least cbStruct bytes of information.
- All members of the MIXERLINECONTROLS structure have been validated to contain proper structure sizes and a valid pointer to one or more MIXERCONTROL structures.
- dwParam2 will be a valid combination of flags.
A mixer device driver must validate the dwControlID, dwLineID and dwControlType members of the MIXERLINECONTROLS structure if they apply to the query type being requested. The driver must also verify that the cControls member is valid for the MIXER_GETLINECONTROLSF_ALL query. The other two query types MIXER_GETLINECONTROLSF_ONEBYID and MIXER_GETLINECONTROLSF_ONEBYTYPE will cause the mixer manager to validate the cControls member to be one.
An application can generate three types of queries for a mixer line control. A driver must use the bitwise AND operator with dwParam2 and the MIXER_GETLINECONTROLSF_QUERYMASK constant to obtain the query type.
- If the result matches the MIXER_GETLINECONTROLSF_ALL constant, the query is a request for all controls associated with the specified line (dwLineID).
- If the result matches the MIXER_GETLINECONTROLSF_ONEBYID constant, the request is to retrieve the control specified in dwControlID.
- If the result matches the MIXER_GETLINECONTROLSF_ONEBYTYPE constant, the query is a request for the first control on the specified line (dwLineID) that matches the type specified in dwControlType..
All mixer drivers must support these queries. If a query other than those previously mentioned is sent, the mixer driver must return MMSYSERR_NOTSUPPORTED.