Private property sets do not exist in early versions of Direct Sound
so skip tests if not supported. Add tests for A, W and 1 variations of data.
This commit is contained in:
parent
ea7fa3c7db
commit
1a843b93b6
@ -64,6 +64,94 @@ static HRESULT (WINAPI *pDirectSoundFullDuplexCreate)(LPCGUID,LPCGUID,
|
|||||||
BOOL CALLBACK callback(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA data,
|
BOOL CALLBACK callback(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA data,
|
||||||
LPVOID context)
|
LPVOID context)
|
||||||
{
|
{
|
||||||
|
trace(" found device:\n");
|
||||||
|
trace(" Type: %s\n",
|
||||||
|
data->Type == DIRECTSOUNDDEVICE_TYPE_EMULATED ? "Emulated" :
|
||||||
|
data->Type == DIRECTSOUNDDEVICE_TYPE_VXD ? "VxD" :
|
||||||
|
data->Type == DIRECTSOUNDDEVICE_TYPE_WDM ? "WDM" : "Unknown");
|
||||||
|
trace(" DataFlow: %s\n",
|
||||||
|
data->DataFlow == DIRECTSOUNDDEVICE_DATAFLOW_RENDER ? "Render" :
|
||||||
|
data->DataFlow == DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE ?
|
||||||
|
"Capture" : "Unknown");
|
||||||
|
trace(" DeviceId: {%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n",
|
||||||
|
data->DeviceId.Data1,data->DeviceId.Data2,data->DeviceId.Data3,
|
||||||
|
data->DeviceId.Data4[0],data->DeviceId.Data4[1],
|
||||||
|
data->DeviceId.Data4[2],data->DeviceId.Data4[3],
|
||||||
|
data->DeviceId.Data4[4],data->DeviceId.Data4[5],
|
||||||
|
data->DeviceId.Data4[6],data->DeviceId.Data4[7]);
|
||||||
|
trace(" Description: %s\n", data->Description);
|
||||||
|
trace(" Module: %s\n", data->Module);
|
||||||
|
trace(" Interface: %s\n", data->Interface);
|
||||||
|
trace(" WaveDeviceId: %ld\n", data->WaveDeviceId);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL CALLBACK callback1(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1_DATA data,
|
||||||
|
LPVOID context)
|
||||||
|
{
|
||||||
|
char descriptionA[0x100];
|
||||||
|
char moduleA[MAX_PATH];
|
||||||
|
|
||||||
|
trace(" found device:\n");
|
||||||
|
trace(" Type: %s\n",
|
||||||
|
data->Type == DIRECTSOUNDDEVICE_TYPE_EMULATED ? "Emulated" :
|
||||||
|
data->Type == DIRECTSOUNDDEVICE_TYPE_VXD ? "VxD" :
|
||||||
|
data->Type == DIRECTSOUNDDEVICE_TYPE_WDM ? "WDM" : "Unknown");
|
||||||
|
trace(" DataFlow: %s\n",
|
||||||
|
data->DataFlow == DIRECTSOUNDDEVICE_DATAFLOW_RENDER ? "Render" :
|
||||||
|
data->DataFlow == DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE ?
|
||||||
|
"Capture" : "Unknown");
|
||||||
|
trace(" DeviceId: {%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n",
|
||||||
|
data->DeviceId.Data1,data->DeviceId.Data2,data->DeviceId.Data3,
|
||||||
|
data->DeviceId.Data4[0],data->DeviceId.Data4[1],
|
||||||
|
data->DeviceId.Data4[2],data->DeviceId.Data4[3],
|
||||||
|
data->DeviceId.Data4[4],data->DeviceId.Data4[5],
|
||||||
|
data->DeviceId.Data4[6],data->DeviceId.Data4[7]);
|
||||||
|
trace(" DescriptionA: %s\n", data->DescriptionA);
|
||||||
|
WideCharToMultiByte(CP_ACP, 0, data->DescriptionW, -1, descriptionA, sizeof(descriptionA), NULL, NULL);
|
||||||
|
trace(" DescriptionW: %s\n", descriptionA);
|
||||||
|
trace(" ModuleA: %s\n", data->ModuleA);
|
||||||
|
WideCharToMultiByte(CP_ACP, 0, data->ModuleW, -1, moduleA, sizeof(moduleA), NULL, NULL);
|
||||||
|
trace(" ModuleW: %s\n", moduleA);
|
||||||
|
trace(" WaveDeviceId: %ld\n", data->WaveDeviceId);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL CALLBACK callbackA(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A_DATA data,
|
||||||
|
LPVOID context)
|
||||||
|
{
|
||||||
|
trace(" found device:\n");
|
||||||
|
trace(" Type: %s\n",
|
||||||
|
data->Type == DIRECTSOUNDDEVICE_TYPE_EMULATED ? "Emulated" :
|
||||||
|
data->Type == DIRECTSOUNDDEVICE_TYPE_VXD ? "VxD" :
|
||||||
|
data->Type == DIRECTSOUNDDEVICE_TYPE_WDM ? "WDM" : "Unknown");
|
||||||
|
trace(" DataFlow: %s\n",
|
||||||
|
data->DataFlow == DIRECTSOUNDDEVICE_DATAFLOW_RENDER ? "Render" :
|
||||||
|
data->DataFlow == DIRECTSOUNDDEVICE_DATAFLOW_CAPTURE ?
|
||||||
|
"Capture" : "Unknown");
|
||||||
|
trace(" DeviceId: {%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}\n",
|
||||||
|
data->DeviceId.Data1,data->DeviceId.Data2,data->DeviceId.Data3,
|
||||||
|
data->DeviceId.Data4[0],data->DeviceId.Data4[1],
|
||||||
|
data->DeviceId.Data4[2],data->DeviceId.Data4[3],
|
||||||
|
data->DeviceId.Data4[4],data->DeviceId.Data4[5],
|
||||||
|
data->DeviceId.Data4[6],data->DeviceId.Data4[7]);
|
||||||
|
trace(" Description: %s\n", data->Description);
|
||||||
|
trace(" Module: %s\n", data->Module);
|
||||||
|
trace(" Interface: %s\n", data->Interface);
|
||||||
|
trace(" WaveDeviceId: %ld\n", data->WaveDeviceId);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL CALLBACK callbackW(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W_DATA data,
|
||||||
|
LPVOID context)
|
||||||
|
{
|
||||||
|
char descriptionA[0x100];
|
||||||
|
char moduleA[MAX_PATH];
|
||||||
|
char interfaceA[MAX_PATH];
|
||||||
|
|
||||||
trace("found device:\n");
|
trace("found device:\n");
|
||||||
trace("\tType: %s\n",
|
trace("\tType: %s\n",
|
||||||
data->Type == DIRECTSOUNDDEVICE_TYPE_EMULATED ? "Emulated" :
|
data->Type == DIRECTSOUNDDEVICE_TYPE_EMULATED ? "Emulated" :
|
||||||
@ -79,9 +167,12 @@ BOOL CALLBACK callback(PDSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATA data,
|
|||||||
data->DeviceId.Data4[2],data->DeviceId.Data4[3],
|
data->DeviceId.Data4[2],data->DeviceId.Data4[3],
|
||||||
data->DeviceId.Data4[4],data->DeviceId.Data4[5],
|
data->DeviceId.Data4[4],data->DeviceId.Data4[5],
|
||||||
data->DeviceId.Data4[6],data->DeviceId.Data4[7]);
|
data->DeviceId.Data4[6],data->DeviceId.Data4[7]);
|
||||||
trace("\tDescription: %s\n", data->Description);
|
WideCharToMultiByte(CP_ACP, 0, data->Description, -1, descriptionA, sizeof(descriptionA), NULL, NULL);
|
||||||
trace("\tModule: %s\n", data->Module);
|
WideCharToMultiByte(CP_ACP, 0, data->Module, -1, moduleA, sizeof(moduleA), NULL, NULL);
|
||||||
trace("\tInterface: %s\n", data->Interface);
|
WideCharToMultiByte(CP_ACP, 0, data->Interface, -1, interfaceA, sizeof(interfaceA), NULL, NULL);
|
||||||
|
trace("\tDescription: %s\n", descriptionA);
|
||||||
|
trace("\tModule: %s\n", moduleA);
|
||||||
|
trace("\tInterface: %s\n", interfaceA);
|
||||||
trace("\tWaveDeviceId: %ld\n", data->WaveDeviceId);
|
trace("\tWaveDeviceId: %ld\n", data->WaveDeviceId);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -104,6 +195,7 @@ static void propset_private_tests()
|
|||||||
fProc = (MYPROC)GetProcAddress(hDsound, "DllGetClassObject");
|
fProc = (MYPROC)GetProcAddress(hDsound, "DllGetClassObject");
|
||||||
|
|
||||||
/* try direct sound first */
|
/* try direct sound first */
|
||||||
|
/* DSOUND: Error: Invalid interface buffer */
|
||||||
rc = (fProc)(&CLSID_DirectSound, &IID_IClassFactory, (void **)0);
|
rc = (fProc)(&CLSID_DirectSound, &IID_IClassFactory, (void **)0);
|
||||||
ok(rc==DSERR_INVALIDPARAM,"DllGetClassObject(CLSID_DirectSound, "
|
ok(rc==DSERR_INVALIDPARAM,"DllGetClassObject(CLSID_DirectSound, "
|
||||||
"IID_IClassFactory) should have returned DSERR_INVALIDPARAM, "
|
"IID_IClassFactory) should have returned DSERR_INVALIDPARAM, "
|
||||||
@ -116,6 +208,7 @@ static void propset_private_tests()
|
|||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
/* direct sound doesn't have an IKsPropertySet */
|
/* direct sound doesn't have an IKsPropertySet */
|
||||||
|
/* DSOUND: Error: Invalid interface buffer */
|
||||||
rc = pcf->lpVtbl->CreateInstance(pcf, NULL, &IID_IKsPropertySet,
|
rc = pcf->lpVtbl->CreateInstance(pcf, NULL, &IID_IKsPropertySet,
|
||||||
(void **)0);
|
(void **)0);
|
||||||
ok(rc==DSERR_INVALIDPARAM, "CreateInstance(IID_IKsPropertySet) should have "
|
ok(rc==DSERR_INVALIDPARAM, "CreateInstance(IID_IKsPropertySet) should have "
|
||||||
@ -192,8 +285,8 @@ static void propset_private_tests()
|
|||||||
/* try direct sound private last */
|
/* try direct sound private last */
|
||||||
rc = (fProc)(&CLSID_DirectSoundPrivate, &IID_IClassFactory,
|
rc = (fProc)(&CLSID_DirectSoundPrivate, &IID_IClassFactory,
|
||||||
(void **)(&pcf));
|
(void **)(&pcf));
|
||||||
ok(pcf!=0, "DllGetClassObject(CLSID_DirectSoundPrivate, "
|
|
||||||
"IID_IClassFactory) failed: %s\n",DXGetErrorString8(rc));
|
/* some early versions of Direct Sound do not have this */
|
||||||
if (pcf==0)
|
if (pcf==0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
@ -205,10 +298,12 @@ static void propset_private_tests()
|
|||||||
if (rc!=DS_OK)
|
if (rc!=DS_OK)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
/* test generic DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION */
|
||||||
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION,
|
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION,
|
||||||
&support);
|
&support);
|
||||||
ok(rc==DS_OK||rc==E_INVALIDARG, "QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
ok(rc==DS_OK||rc==E_INVALIDARG,
|
||||||
|
"QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
||||||
"DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION) failed: %s\n",
|
"DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION) failed: %s\n",
|
||||||
DXGetErrorString8(rc));
|
DXGetErrorString8(rc));
|
||||||
if (rc!=DS_OK) {
|
if (rc!=DS_OK) {
|
||||||
@ -224,6 +319,70 @@ static void propset_private_tests()
|
|||||||
"Shouldn't be able to set DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION: "
|
"Shouldn't be able to set DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION: "
|
||||||
"support = 0x%lx\n",support);
|
"support = 0x%lx\n",support);
|
||||||
|
|
||||||
|
/* test DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 */
|
||||||
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1,
|
||||||
|
&support);
|
||||||
|
ok(rc==DS_OK||rc==E_INVALIDARG,
|
||||||
|
"QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1) failed: %s\n",
|
||||||
|
DXGetErrorString8(rc));
|
||||||
|
if (rc!=DS_OK) {
|
||||||
|
if (rc==E_INVALIDARG)
|
||||||
|
trace(" Not Supported\n");
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
ok(support & KSPROPERTY_SUPPORT_GET,
|
||||||
|
"Couldn't get DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
ok(!(support & KSPROPERTY_SUPPORT_SET),
|
||||||
|
"Shouldn't be able to set DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
|
||||||
|
/* test DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A */
|
||||||
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A,
|
||||||
|
&support);
|
||||||
|
ok(rc==DS_OK||rc==E_INVALIDARG,
|
||||||
|
"QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A) failed: %s\n",
|
||||||
|
DXGetErrorString8(rc));
|
||||||
|
if (rc!=DS_OK) {
|
||||||
|
if (rc==E_INVALIDARG)
|
||||||
|
trace(" Not Supported\n");
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
ok(support & KSPROPERTY_SUPPORT_GET,
|
||||||
|
"Couldn't get DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
ok(!(support & KSPROPERTY_SUPPORT_SET),
|
||||||
|
"Shouldn't be able to set DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_A: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
|
||||||
|
/* test DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W */
|
||||||
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W,
|
||||||
|
&support);
|
||||||
|
ok(rc==DS_OK||rc==E_INVALIDARG,
|
||||||
|
"QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W) failed: %s\n",
|
||||||
|
DXGetErrorString8(rc));
|
||||||
|
if (rc!=DS_OK) {
|
||||||
|
if (rc==E_INVALIDARG)
|
||||||
|
trace(" Not Supported\n");
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
ok(support & KSPROPERTY_SUPPORT_GET,
|
||||||
|
"Couldn't get DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
ok(!(support & KSPROPERTY_SUPPORT_SET),
|
||||||
|
"Shouldn't be able to set DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_W: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
|
||||||
|
/* test generic DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING */
|
||||||
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING, &support);
|
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING, &support);
|
||||||
ok(rc==DS_OK, "QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
ok(rc==DS_OK, "QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
||||||
@ -239,6 +398,40 @@ static void propset_private_tests()
|
|||||||
"DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING: support = "
|
"DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING: support = "
|
||||||
"0x%lx\n",support);
|
"0x%lx\n",support);
|
||||||
|
|
||||||
|
/* test DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A */
|
||||||
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A, &support);
|
||||||
|
ok(rc==DS_OK, "QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A) failed: %s\n",
|
||||||
|
DXGetErrorString8(rc));
|
||||||
|
if (rc!=DS_OK)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
ok(support & KSPROPERTY_SUPPORT_GET,
|
||||||
|
"Couldn't get DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
ok(!(support & KSPROPERTY_SUPPORT_SET), "Shouldn't be able to set "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A: support = "
|
||||||
|
"0x%lx\n",support);
|
||||||
|
|
||||||
|
/* test DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W */
|
||||||
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W, &support);
|
||||||
|
ok(rc==DS_OK, "QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W) failed: %s\n",
|
||||||
|
DXGetErrorString8(rc));
|
||||||
|
if (rc!=DS_OK)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
ok(support & KSPROPERTY_SUPPORT_GET,
|
||||||
|
"Couldn't get DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
ok(!(support & KSPROPERTY_SUPPORT_SET), "Shouldn't be able to set "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_W: support = "
|
||||||
|
"0x%lx\n",support);
|
||||||
|
|
||||||
|
/* test generic DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE */
|
||||||
|
trace("*** Testing DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE ***\n");
|
||||||
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE,
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE,
|
||||||
&support);
|
&support);
|
||||||
@ -267,6 +460,96 @@ static void propset_private_tests()
|
|||||||
ok(rc==DS_OK, "Couldn't enumerate: 0x%lx\n",rc);
|
ok(rc==DS_OK, "Couldn't enumerate: 0x%lx\n",rc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* test DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 */
|
||||||
|
trace("*** Testing DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 ***\n");
|
||||||
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1,
|
||||||
|
&support);
|
||||||
|
ok(rc==DS_OK, "QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1) failed: %s\n",
|
||||||
|
DXGetErrorString8(rc));
|
||||||
|
if (rc!=DS_OK)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
ok(support & KSPROPERTY_SUPPORT_GET,
|
||||||
|
"Couldn't get DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
ok(!(support & KSPROPERTY_SUPPORT_SET),"Shouldn't be able to set "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1: support = 0x%lx\n",support);
|
||||||
|
|
||||||
|
if (support & KSPROPERTY_SUPPORT_GET) {
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1_DATA data;
|
||||||
|
ULONG bytes;
|
||||||
|
|
||||||
|
data.Callback = callback1;
|
||||||
|
data.Context = 0;
|
||||||
|
|
||||||
|
rc = pps->lpVtbl->Get(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1,
|
||||||
|
NULL, 0, &data, sizeof(data), &bytes);
|
||||||
|
ok(rc==DS_OK, "Couldn't enumerate: 0x%lx\n",rc);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* test DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A */
|
||||||
|
trace("*** Testing DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A ***\n");
|
||||||
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A,
|
||||||
|
&support);
|
||||||
|
ok(rc==DS_OK, "QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A) failed: %s\n",
|
||||||
|
DXGetErrorString8(rc));
|
||||||
|
if (rc!=DS_OK)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
ok(support & KSPROPERTY_SUPPORT_GET,
|
||||||
|
"Couldn't get DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
ok(!(support & KSPROPERTY_SUPPORT_SET),"Shouldn't be able to set "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A: support = 0x%lx\n",support);
|
||||||
|
|
||||||
|
if (support & KSPROPERTY_SUPPORT_GET) {
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A_DATA data;
|
||||||
|
ULONG bytes;
|
||||||
|
|
||||||
|
data.Callback = callbackA;
|
||||||
|
data.Context = 0;
|
||||||
|
|
||||||
|
rc = pps->lpVtbl->Get(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_A,
|
||||||
|
NULL, 0, &data, sizeof(data), &bytes);
|
||||||
|
ok(rc==DS_OK, "Couldn't enumerate: 0x%lx\n",rc);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* test DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W */
|
||||||
|
trace("*** Testing DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W ***\n");
|
||||||
|
rc = pps->lpVtbl->QuerySupport(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W,
|
||||||
|
&support);
|
||||||
|
ok(rc==DS_OK, "QuerySupport(DSPROPSETID_DirectSoundDevice, "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W) failed: %s\n",
|
||||||
|
DXGetErrorString8(rc));
|
||||||
|
if (rc!=DS_OK)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
ok(support & KSPROPERTY_SUPPORT_GET,
|
||||||
|
"Couldn't get DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W: "
|
||||||
|
"support = 0x%lx\n",support);
|
||||||
|
ok(!(support & KSPROPERTY_SUPPORT_SET),"Shouldn't be able to set "
|
||||||
|
"DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W: support = 0x%lx\n",support);
|
||||||
|
|
||||||
|
if (support & KSPROPERTY_SUPPORT_GET) {
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W_DATA data;
|
||||||
|
ULONG bytes;
|
||||||
|
|
||||||
|
data.Callback = callbackW;
|
||||||
|
data.Context = 0;
|
||||||
|
|
||||||
|
rc = pps->lpVtbl->Get(pps, &DSPROPSETID_DirectSoundDevice,
|
||||||
|
DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_W,
|
||||||
|
NULL, 0, &data, sizeof(data), &bytes);
|
||||||
|
ok(rc==DS_OK, "Couldn't enumerate: 0x%lx\n",rc);
|
||||||
|
}
|
||||||
|
|
||||||
error:
|
error:
|
||||||
FreeLibrary(hDsound);
|
FreeLibrary(hDsound);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user