propset.c

来自「一个类似windows」· C语言 代码 · 共 735 行 · 第 1/3 页

C
735
字号
        /* 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 + =
减小字号Ctrl + -
显示快捷键?