dmime/tests: Remove unused assigments (PVS-Studio).
[wine/multimedia.git] / dlls / dmime / tests / dmime.c
blobf7c018f911743c7ee52bbdc81e8ae08845896e9c
1 /*
2 * Copyright 2012, 2014 Michael Stefaniuc
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #define COBJMACROS
21 #include <stdarg.h>
22 #include <windef.h>
23 #include <wine/test.h>
24 #include <dmusici.h>
26 #define ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0]))
28 static BOOL missing_dmime(void)
30 IDirectMusicSegment8 *dms;
31 HRESULT hr = CoCreateInstance(&CLSID_DirectMusicSegment, NULL, CLSCTX_INPROC_SERVER,
32 &IID_IDirectMusicSegment, (void**)&dms);
34 if (hr == S_OK && dms)
36 IDirectMusicSegment_Release(dms);
37 return FALSE;
39 return TRUE;
42 static void test_COM_audiopath(void)
44 IDirectMusicAudioPath *dmap;
45 IUnknown *unk;
46 IDirectMusicPerformance8 *performance;
47 ULONG refcount;
48 HRESULT hr;
50 hr = CoCreateInstance(&CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC_SERVER,
51 &IID_IDirectMusicPerformance8, (void**)&performance);
52 ok(hr == S_OK || broken(hr == E_NOINTERFACE),
53 "DirectMusicPerformance create failed: %08x\n", hr);
54 if (!performance) {
55 win_skip("IDirectMusicPerformance8 not available\n");
56 return;
58 hr = IDirectMusicPerformance8_InitAudio(performance, NULL, NULL, NULL,
59 DMUS_APATH_SHARED_STEREOPLUSREVERB, 64, DMUS_AUDIOF_ALL, NULL);
60 if (hr == DSERR_NODRIVER) {
61 skip("No audio driver\n");
62 return;
64 ok(hr == S_OK, "DirectMusicPerformance_InitAudio failed: %08x\n", hr);
65 hr = IDirectMusicPerformance8_GetDefaultAudioPath(performance, &dmap);
66 ok(hr == S_OK, "DirectMusicPerformance_GetDefaultAudioPath failed: %08x\n", hr);
68 /* IDirectMusicObject and IPersistStream are not supported */
69 hr = IDirectMusicAudioPath_QueryInterface(dmap, &IID_IDirectMusicObject, (void**)&unk);
70 todo_wine ok(FAILED(hr) && !unk, "Unexpected IDirectMusicObject interface: hr=%08x, iface=%p\n",
71 hr, unk);
72 if (unk) IUnknown_Release(unk);
73 hr = IDirectMusicAudioPath_QueryInterface(dmap, &IID_IPersistStream, (void**)&unk);
74 todo_wine ok(FAILED(hr) && !unk, "Unexpected IPersistStream interface: hr=%08x, iface=%p\n",
75 hr, unk);
76 if (unk) IUnknown_Release(unk);
78 /* Same refcount for all DirectMusicAudioPath interfaces */
79 refcount = IDirectMusicAudioPath_AddRef(dmap);
80 ok(refcount == 3, "refcount == %u, expected 3\n", refcount);
82 hr = IDirectMusicAudioPath_QueryInterface(dmap, &IID_IUnknown, (void**)&unk);
83 ok(hr == S_OK, "QueryInterface for IID_IUnknown failed: %08x\n", hr);
84 refcount = IUnknown_AddRef(unk);
85 ok(refcount == 5, "refcount == %u, expected 5\n", refcount);
86 refcount = IUnknown_Release(unk);
88 while (IDirectMusicAudioPath_Release(dmap) > 1); /* performance has a reference too */
89 IDirectMusicPerformance8_CloseDown(performance);
90 IDirectMusicPerformance8_Release(performance);
93 static void test_COM_audiopathconfig(void)
95 IDirectMusicAudioPath *dmap = (IDirectMusicAudioPath*)0xdeadbeef;
96 IDirectMusicObject *dmo;
97 IPersistStream *ps;
98 IUnknown *unk;
99 ULONG refcount;
100 HRESULT hr;
102 /* COM aggregation */
103 hr = CoCreateInstance(&CLSID_DirectMusicAudioPathConfig, (IUnknown*)&dmap, CLSCTX_INPROC_SERVER,
104 &IID_IUnknown, (void**)&dmap);
105 if (hr == REGDB_E_CLASSNOTREG) {
106 win_skip("DirectMusicAudioPathConfig not registered\n");
107 return;
109 ok(hr == CLASS_E_NOAGGREGATION,
110 "DirectMusicAudioPathConfig create failed: %08x, expected CLASS_E_NOAGGREGATION\n", hr);
111 ok(!dmap, "dmap = %p\n", dmap);
113 /* IDirectMusicAudioPath not supported */
114 hr = CoCreateInstance(&CLSID_DirectMusicAudioPathConfig, NULL, CLSCTX_INPROC_SERVER,
115 &IID_IDirectMusicAudioPath, (void**)&dmap);
116 todo_wine ok(FAILED(hr) && !dmap,
117 "Unexpected IDirectMusicAudioPath interface: hr=%08x, iface=%p\n", hr, dmap);
119 /* IDirectMusicObject and IPersistStream supported */
120 hr = CoCreateInstance(&CLSID_DirectMusicAudioPathConfig, NULL, CLSCTX_INPROC_SERVER,
121 &IID_IPersistStream, (void**)&ps);
122 ok(hr == S_OK, "DirectMusicObject create failed: %08x, expected S_OK\n", hr);
123 IPersistStream_Release(ps);
124 hr = CoCreateInstance(&CLSID_DirectMusicAudioPathConfig, NULL, CLSCTX_INPROC_SERVER,
125 &IID_IDirectMusicObject, (void**)&dmo);
126 ok(hr == S_OK, "DirectMusicObject create failed: %08x, expected S_OK\n", hr);
128 /* Same refcount for all DirectMusicObject interfaces */
129 refcount = IDirectMusicObject_AddRef(dmo);
130 ok(refcount == 2, "refcount == %u, expected 2\n", refcount);
132 hr = IDirectMusicObject_QueryInterface(dmo, &IID_IPersistStream, (void**)&ps);
133 ok(hr == S_OK, "QueryInterface for IID_IPersistStream failed: %08x\n", hr);
134 refcount = IPersistStream_AddRef(ps);
135 ok(refcount == 4, "refcount == %u, expected 4\n", refcount);
136 IPersistStream_Release(ps);
138 hr = IDirectMusicObject_QueryInterface(dmo, &IID_IUnknown, (void**)&unk);
139 ok(hr == S_OK, "QueryInterface for IID_IUnknown failed: %08x\n", hr);
140 refcount = IUnknown_AddRef(unk);
141 ok(refcount == 5, "refcount == %u, expected 5\n", refcount);
142 refcount = IUnknown_Release(unk);
144 /* IDirectMusicAudioPath still not supported */
145 hr = IDirectMusicObject_QueryInterface(dmo, &IID_IDirectMusicAudioPath, (void**)&dmap);
146 todo_wine ok(FAILED(hr) && !dmap,
147 "Unexpected IDirectMusicAudioPath interface: hr=%08x, iface=%p\n", hr, dmap);
149 while (IDirectMusicObject_Release(dmo));
153 static void test_COM_graph(void)
155 IDirectMusicGraph *dmg = (IDirectMusicGraph*)0xdeadbeef;
156 IDirectMusicObject *dmo;
157 IPersistStream *ps;
158 IUnknown *unk;
159 ULONG refcount;
160 HRESULT hr;
162 /* COM aggregation */
163 hr = CoCreateInstance(&CLSID_DirectMusicGraph, (IUnknown*)&dmg, CLSCTX_INPROC_SERVER,
164 &IID_IUnknown, (void**)&dmg);
165 ok(hr == CLASS_E_NOAGGREGATION,
166 "DirectMusicGraph create failed: %08x, expected CLASS_E_NOAGGREGATION\n", hr);
167 ok(!dmg, "dmg = %p\n", dmg);
169 /* Invalid RIID */
170 hr = CoCreateInstance(&CLSID_DirectMusicGraph, NULL, CLSCTX_INPROC_SERVER, &IID_IClassFactory,
171 (void**)&dmg);
172 ok(hr == E_NOINTERFACE, "DirectMusicGraph create failed: %08x, expected E_NOINTERFACE\n", hr);
174 /* Same refcount for all DirectMusicGraph interfaces */
175 hr = CoCreateInstance(&CLSID_DirectMusicGraph, NULL, CLSCTX_INPROC_SERVER,
176 &IID_IDirectMusicGraph, (void**)&dmg);
177 ok(hr == S_OK, "DirectMusicGraph create failed: %08x, expected S_OK\n", hr);
178 refcount = IDirectMusicGraph_AddRef(dmg);
179 ok(refcount == 2, "refcount == %u, expected 2\n", refcount);
181 hr = IDirectMusicGraph_QueryInterface(dmg, &IID_IDirectMusicObject, (void**)&dmo);
182 if (hr == E_NOINTERFACE) {
183 win_skip("DirectMusicGraph without IDirectMusicObject\n");
184 return;
186 ok(hr == S_OK, "QueryInterface for IID_IDirectMusicObject failed: %08x\n", hr);
187 refcount = IDirectMusicObject_AddRef(dmo);
188 ok(refcount == 4, "refcount == %u, expected 4\n", refcount);
189 refcount = IDirectMusicObject_Release(dmo);
191 hr = IDirectMusicGraph_QueryInterface(dmg, &IID_IPersistStream, (void**)&ps);
192 ok(hr == S_OK, "QueryInterface for IID_IPersistStream failed: %08x\n", hr);
193 refcount = IPersistStream_AddRef(ps);
194 ok(refcount == 5, "refcount == %u, expected 5\n", refcount);
195 refcount = IPersistStream_Release(ps);
197 hr = IDirectMusicGraph_QueryInterface(dmg, &IID_IUnknown, (void**)&unk);
198 ok(hr == S_OK, "QueryInterface for IID_IUnknown failed: %08x\n", hr);
199 refcount = IUnknown_AddRef(unk);
200 ok(refcount == 6, "refcount == %u, expected 6\n", refcount);
201 refcount = IUnknown_Release(unk);
203 while (IDirectMusicGraph_Release(dmg));
206 static void test_COM_segment(void)
208 IDirectMusicSegment8 *dms = (IDirectMusicSegment8*)0xdeadbeef;
209 IDirectMusicObject *dmo;
210 IPersistStream *stream;
211 IUnknown *unk;
212 ULONG refcount;
213 HRESULT hr;
215 /* COM aggregation */
216 hr = CoCreateInstance(&CLSID_DirectMusicSegment, (IUnknown*)&dms, CLSCTX_INPROC_SERVER,
217 &IID_IUnknown, (void**)&dms);
218 ok(hr == CLASS_E_NOAGGREGATION,
219 "DirectMusicSegment create failed: %08x, expected CLASS_E_NOAGGREGATION\n", hr);
220 ok(!dms, "dms = %p\n", dms);
222 /* Invalid RIID */
223 hr = CoCreateInstance(&CLSID_DirectMusicSegment, NULL, CLSCTX_INPROC_SERVER,
224 &IID_IDirectSound, (void**)&dms);
225 ok(hr == E_NOINTERFACE,
226 "DirectMusicSegment create failed: %08x, expected E_NOINTERFACE\n", hr);
228 /* Same refcount */
229 hr = CoCreateInstance(&CLSID_DirectMusicSegment, NULL, CLSCTX_INPROC_SERVER,
230 &IID_IDirectMusicSegment8, (void**)&dms);
231 if (hr == E_NOINTERFACE) {
232 win_skip("DirectMusicSegment without IDirectMusicSegment8\n");
233 return;
235 ok(hr == S_OK, "DirectMusicSegment create failed: %08x, expected S_OK\n", hr);
236 refcount = IDirectMusicSegment8_AddRef(dms);
237 ok (refcount == 2, "refcount == %u, expected 2\n", refcount);
238 hr = IDirectMusicSegment8_QueryInterface(dms, &IID_IDirectMusicObject, (void**)&dmo);
239 ok(hr == S_OK, "QueryInterface for IID_IDirectMusicObject failed: %08x\n", hr);
240 IDirectMusicSegment8_AddRef(dms);
241 refcount = IDirectMusicSegment8_Release(dms);
242 ok (refcount == 3, "refcount == %u, expected 3\n", refcount);
243 hr = IDirectMusicSegment8_QueryInterface(dms, &IID_IPersistStream, (void**)&stream);
244 ok(hr == S_OK, "QueryInterface for IID_IPersistStream failed: %08x\n", hr);
245 refcount = IDirectMusicSegment8_Release(dms);
246 ok (refcount == 3, "refcount == %u, expected 3\n", refcount);
247 hr = IDirectMusicSegment8_QueryInterface(dms, &IID_IUnknown, (void**)&unk);
248 ok(hr == S_OK, "QueryInterface for IID_IUnknown failed: %08x\n", hr);
249 refcount = IUnknown_Release(unk);
250 ok (refcount == 3, "refcount == %u, expected 3\n", refcount);
251 refcount = IDirectMusicObject_Release(dmo);
252 ok (refcount == 2, "refcount == %u, expected 2\n", refcount);
253 refcount = IPersistStream_Release(stream);
254 ok (refcount == 1, "refcount == %u, expected 1\n", refcount);
255 refcount = IDirectMusicSegment8_Release(dms);
256 ok (refcount == 0, "refcount == %u, expected 0\n", refcount);
259 static void test_COM_segmentstate(void)
261 IDirectMusicSegmentState8 *dmss8 = (IDirectMusicSegmentState8*)0xdeadbeef;
262 IUnknown *unk;
263 ULONG refcount;
264 HRESULT hr;
266 /* COM aggregation */
267 hr = CoCreateInstance(&CLSID_DirectMusicSegmentState, (IUnknown*)&dmss8, CLSCTX_INPROC_SERVER,
268 &IID_IUnknown, (void**)&dmss8);
269 ok(hr == CLASS_E_NOAGGREGATION,
270 "DirectMusicSegmentState8 create failed: %08x, expected CLASS_E_NOAGGREGATION\n", hr);
271 ok(!dmss8, "dmss8 = %p\n", dmss8);
273 /* Invalid RIID */
274 hr = CoCreateInstance(&CLSID_DirectMusicSegmentState, NULL, CLSCTX_INPROC_SERVER,
275 &IID_IDirectMusicObject, (void**)&dmss8);
276 ok(hr == E_NOINTERFACE,
277 "DirectMusicSegmentState8 create failed: %08x, expected E_NOINTERFACE\n", hr);
279 /* Same refcount for all DirectMusicSegmentState interfaces */
280 hr = CoCreateInstance(&CLSID_DirectMusicSegmentState, NULL, CLSCTX_INPROC_SERVER,
281 &IID_IDirectMusicSegmentState8, (void**)&dmss8);
282 if (hr == E_NOINTERFACE) {
283 win_skip("DirectMusicSegmentState without IDirectMusicSegmentState8\n");
284 return;
286 ok(hr == S_OK, "DirectMusicSegmentState8 create failed: %08x, expected S_OK\n", hr);
287 refcount = IDirectMusicSegmentState8_AddRef(dmss8);
288 ok(refcount == 2, "refcount == %u, expected 2\n", refcount);
290 hr = IDirectMusicSegmentState8_QueryInterface(dmss8, &IID_IUnknown, (void**)&unk);
291 ok(hr == S_OK, "QueryInterface for IID_IUnknown failed: %08x\n", hr);
292 refcount = IUnknown_AddRef(unk);
293 ok(refcount == 4, "refcount == %u, expected 4\n", refcount);
294 refcount = IUnknown_Release(unk);
296 hr = IDirectMusicSegmentState8_QueryInterface(dmss8, &IID_IUnknown, NULL);
297 ok(hr == E_POINTER, "got %08x\n", hr);
299 while (IDirectMusicSegmentState8_Release(dmss8));
302 static void test_COM_track(void)
304 IDirectMusicTrack8 *dmt8;
305 IPersistStream *ps;
306 IUnknown *unk;
307 ULONG refcount;
308 HRESULT hr;
309 #define X(class) &CLSID_ ## class, #class
310 const struct {
311 REFCLSID clsid;
312 const char *name;
313 } class[] = {
314 { X(DirectMusicLyricsTrack) },
315 { X(DirectMusicMarkerTrack) },
316 { X(DirectMusicParamControlTrack) },
317 { X(DirectMusicSegmentTriggerTrack) },
318 { X(DirectMusicSeqTrack) },
319 { X(DirectMusicSysExTrack) },
320 { X(DirectMusicTempoTrack) },
321 { X(DirectMusicTimeSigTrack) },
322 { X(DirectMusicWaveTrack) }
324 #undef X
325 unsigned int i;
327 for (i = 0; i < ARRAY_SIZE(class); i++) {
328 /* COM aggregation */
329 dmt8 = (IDirectMusicTrack8*)0xdeadbeef;
330 hr = CoCreateInstance(class[i].clsid, (IUnknown*)&dmt8, CLSCTX_INPROC_SERVER, &IID_IUnknown,
331 (void**)&dmt8);
332 if (hr == REGDB_E_CLASSNOTREG) {
333 win_skip("%s not registered\n", class[i].name);
334 continue;
336 ok(hr == CLASS_E_NOAGGREGATION,
337 "%s create failed: %08x, expected CLASS_E_NOAGGREGATION\n", class[i].name, hr);
338 ok(!dmt8, "dmt8 = %p\n", dmt8);
340 /* Invalid RIID */
341 hr = CoCreateInstance(class[i].clsid, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectMusicObject,
342 (void**)&dmt8);
343 ok(hr == E_NOINTERFACE, "%s create failed: %08x, expected E_NOINTERFACE\n",
344 class[i].name, hr);
346 /* Same refcount for all DirectMusicTrack interfaces */
347 hr = CoCreateInstance(class[i].clsid, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectMusicTrack8,
348 (void**)&dmt8);
349 if (hr == E_NOINTERFACE && !dmt8) {
350 skip("%s not created with CoCreateInstance()\n", class[i].name);
351 continue;
353 ok(hr == S_OK, "%s create failed: %08x, expected S_OK\n", class[i].name, hr);
354 refcount = IDirectMusicTrack8_AddRef(dmt8);
355 ok(refcount == 2, "refcount == %u, expected 2\n", refcount);
357 hr = IDirectMusicTrack8_QueryInterface(dmt8, &IID_IPersistStream, (void**)&ps);
358 ok(hr == S_OK, "QueryInterface for IID_IPersistStream failed: %08x\n", hr);
359 refcount = IPersistStream_AddRef(ps);
360 ok(refcount == 4, "refcount == %u, expected 4\n", refcount);
361 IPersistStream_Release(ps);
363 hr = IDirectMusicTrack8_QueryInterface(dmt8, &IID_IUnknown, (void**)&unk);
364 ok(hr == S_OK, "QueryInterface for IID_IUnknown failed: %08x\n", hr);
365 refcount = IUnknown_AddRef(unk);
366 ok(refcount == 5, "refcount == %u, expected 5\n", refcount);
367 refcount = IUnknown_Release(unk);
369 while (IDirectMusicTrack8_Release(dmt8));
373 static void test_audiopathconfig(void)
375 IDirectMusicObject *dmo;
376 IPersistStream *ps;
377 CLSID class = { 0 };
378 ULARGE_INTEGER size;
379 HRESULT hr;
381 hr = CoCreateInstance(&CLSID_DirectMusicAudioPathConfig, NULL, CLSCTX_INPROC_SERVER,
382 &IID_IDirectMusicObject, (void**)&dmo);
383 if (hr == REGDB_E_CLASSNOTREG) {
384 win_skip("DirectMusicAudioPathConfig not registered\n");
385 return;
387 ok(hr == S_OK, "DirectMusicAudioPathConfig create failed: %08x, expected S_OK\n", hr);
389 /* IPersistStream */
390 hr = IDirectMusicObject_QueryInterface(dmo, &IID_IPersistStream, (void**)&ps);
391 ok(hr == S_OK, "QueryInterface for IID_IPersistStream failed: %08x\n", hr);
392 hr = IPersistStream_GetClassID(ps, &class);
393 todo_wine ok(hr == S_OK, "IPersistStream_GetClassID failed: %08x\n", hr);
394 todo_wine ok(IsEqualGUID(&class, &CLSID_DirectMusicAudioPathConfig),
395 "Expected class CLSID_DirectMusicAudioPathConfig got %s\n", wine_dbgstr_guid(&class));
397 /* Unimplemented IPersistStream methods */
398 hr = IPersistStream_IsDirty(ps);
399 todo_wine ok(hr == S_FALSE, "IPersistStream_IsDirty failed: %08x\n", hr);
400 hr = IPersistStream_GetSizeMax(ps, &size);
401 ok(hr == E_NOTIMPL, "IPersistStream_GetSizeMax failed: %08x\n", hr);
402 hr = IPersistStream_Save(ps, NULL, TRUE);
403 ok(hr == E_NOTIMPL, "IPersistStream_Save failed: %08x\n", hr);
405 while (IDirectMusicObject_Release(dmo));
408 static void test_graph(void)
410 IDirectMusicGraph *dmg;
411 IPersistStream *ps;
412 CLSID class = { 0 };
413 ULARGE_INTEGER size;
414 HRESULT hr;
416 hr = CoCreateInstance(&CLSID_DirectMusicGraph, NULL, CLSCTX_INPROC_SERVER,
417 &IID_IDirectMusicGraph, (void**)&dmg);
418 ok(hr == S_OK, "DirectMusicGraph create failed: %08x, expected S_OK\n", hr);
420 /* IPersistStream */
421 hr = IDirectMusicGraph_QueryInterface(dmg, &IID_IPersistStream, (void**)&ps);
422 ok(hr == S_OK, "QueryInterface for IID_IPersistStream failed: %08x\n", hr);
423 hr = IPersistStream_GetClassID(ps, &class);
424 todo_wine ok(hr == S_OK, "IPersistStream_GetClassID failed: %08x\n", hr);
425 todo_wine ok(IsEqualGUID(&class, &CLSID_DirectMusicGraph),
426 "Expected class CLSID_DirectMusicGraph got %s\n", wine_dbgstr_guid(&class));
428 /* Unimplemented IPersistStream methods */
429 hr = IPersistStream_IsDirty(ps);
430 todo_wine ok(hr == S_FALSE, "IPersistStream_IsDirty failed: %08x\n", hr);
431 hr = IPersistStream_GetSizeMax(ps, &size);
432 ok(hr == E_NOTIMPL, "IPersistStream_GetSizeMax failed: %08x\n", hr);
433 hr = IPersistStream_Save(ps, NULL, TRUE);
434 ok(hr == E_NOTIMPL, "IPersistStream_Save failed: %08x\n", hr);
436 while (IDirectMusicGraph_Release(dmg));
439 static void test_segment(void)
441 IDirectMusicSegment *dms;
442 IPersistStream *ps;
443 CLSID class = { 0 };
444 ULARGE_INTEGER size;
445 HRESULT hr;
447 hr = CoCreateInstance(&CLSID_DirectMusicSegment, NULL, CLSCTX_INPROC_SERVER,
448 &IID_IDirectMusicSegment, (void**)&dms);
449 ok(hr == S_OK, "DirectMusicSegment create failed: %08x, expected S_OK\n", hr);
451 /* IPersistStream */
452 hr = IDirectMusicSegment_QueryInterface(dms, &IID_IPersistStream, (void**)&ps);
453 ok(hr == S_OK, "QueryInterface for IID_IPersistStream failed: %08x\n", hr);
454 hr = IPersistStream_GetClassID(ps, &class);
455 ok(hr == S_OK, "IPersistStream_GetClassID failed: %08x\n", hr);
456 ok(IsEqualGUID(&class, &CLSID_DirectMusicSegment),
457 "Expected class CLSID_DirectMusicSegment got %s\n", wine_dbgstr_guid(&class));
459 /* Unimplemented IPersistStream methods */
460 hr = IPersistStream_IsDirty(ps);
461 ok(hr == S_FALSE, "IPersistStream_IsDirty failed: %08x\n", hr);
462 hr = IPersistStream_GetSizeMax(ps, &size);
463 ok(hr == E_NOTIMPL, "IPersistStream_GetSizeMax failed: %08x\n", hr);
464 hr = IPersistStream_Save(ps, NULL, TRUE);
465 ok(hr == E_NOTIMPL, "IPersistStream_Save failed: %08x\n", hr);
467 while (IDirectMusicSegment_Release(dms));
470 START_TEST(dmime)
472 CoInitialize(NULL);
474 if (missing_dmime())
476 skip("dmime not available\n");
477 CoUninitialize();
478 return;
480 test_COM_audiopath();
481 test_COM_audiopathconfig();
482 test_COM_graph();
483 test_COM_segment();
484 test_COM_segmentstate();
485 test_COM_track();
486 test_audiopathconfig();
487 test_graph();
488 test_segment();
490 CoUninitialize();