static void test_CloseDown(void) { HRESULT hr; hr = IDirectMusicPerformance8_CloseDown(idmusicperformance); ok(hr == S_OK, "Failed to call CloseDown (%x)\n", hr); }
static void test_COM_audiopath(void) { IDirectMusicAudioPath *dmap; IUnknown *unk; IDirectMusicPerformance8 *performance; ULONG refcount; HRESULT hr; hr = CoCreateInstance(&CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectMusicPerformance8, (void**)&performance); ok(hr == S_OK || broken(hr == E_NOINTERFACE), "DirectMusicPerformance create failed: %08x\n", hr); if (!performance) { win_skip("IDirectMusicPerformance8 not available\n"); return; } hr = IDirectMusicPerformance8_InitAudio(performance, NULL, NULL, NULL, DMUS_APATH_SHARED_STEREOPLUSREVERB, 64, DMUS_AUDIOF_ALL, NULL); if (hr == DSERR_NODRIVER) { skip("No audio driver\n"); return; } ok(hr == S_OK, "DirectMusicPerformance_InitAudio failed: %08x\n", hr); hr = IDirectMusicPerformance8_GetDefaultAudioPath(performance, &dmap); ok(hr == S_OK, "DirectMusicPerformance_GetDefaultAudioPath failed: %08x\n", hr); /* IDirectMusicObject and IPersistStream are not supported */ hr = IDirectMusicAudioPath_QueryInterface(dmap, &IID_IDirectMusicObject, (void**)&unk); todo_wine ok(FAILED(hr) && !unk, "Unexpected IDirectMusicObject interface: hr=%08x, iface=%p\n", hr, unk); if (unk) IUnknown_Release(unk); hr = IDirectMusicAudioPath_QueryInterface(dmap, &IID_IPersistStream, (void**)&unk); todo_wine ok(FAILED(hr) && !unk, "Unexpected IPersistStream interface: hr=%08x, iface=%p\n", hr, unk); if (unk) IUnknown_Release(unk); /* Same refcount for all DirectMusicAudioPath interfaces */ refcount = IDirectMusicAudioPath_AddRef(dmap); ok(refcount == 3, "refcount == %u, expected 3\n", refcount); hr = IDirectMusicAudioPath_QueryInterface(dmap, &IID_IUnknown, (void**)&unk); ok(hr == S_OK, "QueryInterface for IID_IUnknown failed: %08x\n", hr); ok(unk == (IUnknown*)dmap, "got %p, %p\n", unk, dmap); refcount = IUnknown_AddRef(unk); ok(refcount == 5, "refcount == %u, expected 5\n", refcount); refcount = IUnknown_Release(unk); while (IDirectMusicAudioPath_Release(dmap) > 1); /* performance has a reference too */ IDirectMusicPerformance8_CloseDown(performance); IDirectMusicPerformance8_Release(performance); }