diff --git a/dlls/dmloader/tests/loader.c b/dlls/dmloader/tests/loader.c index 87590339771..3d8dd80b82c 100644 --- a/dlls/dmloader/tests/loader.c +++ b/dlls/dmloader/tests/loader.c @@ -27,17 +27,26 @@ static unsigned char rifffile[8+4+8+16+8+256] = "RIFF\x24\x01\x00\x00WAVE" /* he "fmt \x10\x00\x00\x00\x01\x00\x20\x00\xAC\x44\x00\x00\x10\xB1\x02\x00\x04\x00\x10\x00" /* format segment: PCM, 2 chan, 44100 Hz, 16 bits */ "data\x00\x01\x00\x00"; /* 256 byte data segment (silence) */ +static BOOL missing_dmloader(void) +{ + IDirectMusicLoader *dml; + HRESULT hr = CoCreateInstance(&CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC_SERVER, + &IID_IDirectMusicLoader, (void**)&dml); + + if (hr == S_OK && dml) + { + IDirectMusicLoader_Release(dml); + return FALSE; + } + return TRUE; +} + static void test_release_object(void) { HRESULT hr; IDirectMusicLoader8* loader = NULL; hr = CoCreateInstance(&CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC, &IID_IDirectMusicLoader8, (void**)&loader); - if ( FAILED(hr) ) - { - skip("CoCreateInstance failed.\n"); - return; - } hr = IDirectMusicLoader_ReleaseObject(loader, NULL); ok(hr == E_POINTER, "Expected E_POINTER, received %#x\n", hr); @@ -128,6 +137,13 @@ static void test_simple_playing(void) START_TEST(loader) { CoInitialize(NULL); + + if (missing_dmloader()) + { + skip("dmloader not available\n"); + CoUninitialize(); + return; + } test_release_object(); test_simple_playing(); CoUninitialize();