📄 propset.c
字号:
/* direct sound capture doesn't have an IKsPropertySet */ rc = IClassFactory_CreateInstance(pcf, NULL, &IID_IKsPropertySet, (void **)(&pps)); ok(rc==E_NOINTERFACE, "CreateInstance(IID_IKsPropertySet) should have " "returned E_NOINTERFACE,returned: %s\n",DXGetErrorString8(rc)); } /* and the direct sound capture 8 version */ if (pDirectSoundCaptureCreate8) { rc = (fProc)(&CLSID_DirectSoundCapture8, &IID_IClassFactory, (void **)(&pcf)); ok(pcf!=0, "DllGetClassObject(CLSID_DirectSoundCapture8, " "IID_IClassFactory) failed: %s\n",DXGetErrorString8(rc)); if (pcf==0) goto error; /* direct sound capture 8 doesn't have an IKsPropertySet */ rc = IClassFactory_CreateInstance(pcf, NULL, &IID_IKsPropertySet, (void **)(&pps)); ok(rc==E_NOINTERFACE, "CreateInstance(IID_IKsPropertySet) should have " "returned E_NOINTERFACE, returned: %s\n",DXGetErrorString8(rc)); } /* try direct sound full duplex next */ if (pDirectSoundFullDuplexCreate) { rc = (fProc)(&CLSID_DirectSoundFullDuplex, &IID_IClassFactory, (void **)(&pcf)); ok(pcf!=0, "DllGetClassObject(CLSID_DirectSoundFullDuplex, " "IID_IClassFactory) failed: %s\n",DXGetErrorString8(rc)); if (pcf==0) goto error; /* direct sound full duplex doesn't have an IKsPropertySet */ rc = IClassFactory_CreateInstance(pcf, NULL, &IID_IKsPropertySet, (void **)(&pps)); ok(rc==E_NOINTERFACE, "CreateInstance(IID_IKsPropertySet) should have " "returned NOINTERFACE, returned: %s\n",DXGetErrorString8(rc)); } /* try direct sound private last */ rc = (fProc)(&CLSID_DirectSoundPrivate, &IID_IClassFactory, (void **)(&pcf)); /* some early versions of Direct Sound do not have this */ if (pcf==0) goto error; /* direct sound private does have an IKsPropertySet */ rc = IClassFactory_CreateInstance(pcf, NULL, &IID_IKsPropertySet, (void **)(&pps)); ok(rc==DS_OK, "CreateInstance(IID_IKsPropertySet) failed: %s\n", DXGetErrorString8(rc)); if (rc!=DS_OK) goto error; /* test generic DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION */ rc = IKsPropertySet_QuerySupport(pps, &DSPROPSETID_DirectSoundDevice, DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION, &support); ok(rc==DS_OK||rc==E_INVALIDARG, "QuerySupport(DSPROPSETID_DirectSoundDevice, " "DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION) 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: " "support = 0x%lx\n",support); ok(!(support & KSPROPERTY_SUPPORT_SET), "Shouldn't be able to set DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION: " "support = 0x%lx\n",support); /* test DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_1 */ rc = IKsPropertySet_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 = IKsPropertySet_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 = IKsPropertySet_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 = IKsPropertySet_QuerySupport(pps, &DSPROPSETID_DirectSoundDevice, DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING, &support); ok(rc==DS_OK, "QuerySupport(DSPROPSETID_DirectSoundDevice, " "DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING) failed: %s\n", DXGetErrorString8(rc)); if (rc!=DS_OK) goto error; ok(support & KSPROPERTY_SUPPORT_GET, "Couldn't get DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING: " "support = 0x%lx\n",support); ok(!(support & KSPROPERTY_SUPPORT_SET), "Shouldn't be able to set " "DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING: support = " "0x%lx\n",support); /* test DSPROPERTY_DIRECTSOUNDDEVICE_WAVEDEVICEMAPPING_A */ rc = IKsPropertySet_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 = IKsPropertySet_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 = IKsPropertySet_QuerySupport(pps, &DSPROPSETID_DirectSoundDevice, DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE, &support); ok(rc==DS_OK, "QuerySupport(DSPROPSETID_DirectSoundDevice, " "DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE) failed: %s\n", DXGetErrorString8(rc)); if (rc!=DS_OK) goto error; ok(support & KSPROPERTY_SUPPORT_GET, "Couldn't get DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE: " "support = 0x%lx\n",support); ok(!(support & KSPROPERTY_SUPPORT_SET),"Shouldn't be able to set " "DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE: support = 0x%lx\n",support); if (support & KSPROPERTY_SUPPORT_GET) { DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_DATA data; ULONG bytes; data.Callback = callback; data.Context = 0; rc = IKsPropertySet_Get(pps, &DSPROPSETID_DirectSoundDevice, DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE, NULL, 0, &data, sizeof(data), &bytes); ok(rc==DS_OK, "Couldn't enumerate: 0x%lx\n",rc); } /* test DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 */ trace("*** Testing DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1 ***\n"); rc = IKsPropertySet_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 = IKsPropertySet_Get(pps, &DSPROPSETID_DirectSoundDevice, DSPROPERTY_DIRECTSOUNDDEVICE_ENUMERATE_1, NULL, 0, &data, sizeof(data), &bytes);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -