MMRESULT
MmeGetLineInfo(
+ IN UINT DeviceId,
IN UINT Message,
IN DWORD_PTR PrivateHandle,
IN DWORD_PTR Parameter1,
//SND_TRACE(L"Getting mixer info %u\n", Message);
+ if ( PrivateHandle == 0 )
+ {
+ Result = GetSoundDevice(MIXER_DEVICE_TYPE, DeviceId, &SoundDevice);
+
+ if ( ! MMSUCCESS(Result) )
+ return TranslateInternalMmResult(Result);
+
+ Result = GetSoundDeviceFunctionTable(SoundDevice, &FunctionTable);
+ if ( ! MMSUCCESS(Result) )
+ return TranslateInternalMmResult(Result);
+
+ Result = FunctionTable->QueryMixerInfo(NULL, DeviceId, Message, (LPVOID)Parameter1, Parameter2);
+ return Result;
+ }
+
VALIDATE_MMSYS_PARAMETER( PrivateHandle );
SoundDeviceInstance = (PSOUND_DEVICE_INSTANCE) PrivateHandle;
if ( ! FunctionTable->QueryMixerInfo )
return MMSYSERR_NOTSUPPORTED;
- Result = FunctionTable->QueryMixerInfo(SoundDeviceInstance, Message, (LPVOID)Parameter1, Parameter2);
+ Result = FunctionTable->QueryMixerInfo(SoundDeviceInstance, DeviceId, Message, (LPVOID)Parameter1, Parameter2);
return Result;
}
(LPWAVEOPENDESC) Parameter1, /* unused */
Parameter2,
(DWORD*) PrivateHandle);
-
+ VALIDATE_MMSYS_PARAMETER(*(DWORD_PTR*)PrivateHandle);
break;
}
case MXDM_GETCONTROLDETAILS :
{
- Result = MmeGetLineInfo(Message,
+ Result = MmeGetLineInfo(DeviceId,
+ Message,
PrivateHandle,
Parameter1,
Parameter2);
case MXDM_SETCONTROLDETAILS :
{
- Result = MmeGetLineInfo(Message,
+ Result = MmeGetLineInfo(DeviceId,
+ Message,
PrivateHandle,
Parameter1,
Parameter2);
case MXDM_GETLINECONTROLS :
{
- Result = MmeGetLineInfo(Message,
+ Result = MmeGetLineInfo(DeviceId,
+ Message,
PrivateHandle,
Parameter1,
Parameter2);
case MXDM_GETLINEINFO :
{
- Result = MmeGetLineInfo(Message,
+ Result = MmeGetLineInfo(DeviceId,
+ Message,
PrivateHandle,
Parameter1,
Parameter2);