mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-04 20:57:25 +00:00
dmime/tests: Test that IDirectMusicPerformance_Stop clears messages.
This commit is contained in:
parent
ddd877d1c7
commit
fe171ec86b
|
@ -3294,6 +3294,55 @@ static void test_notification_pmsg(void)
|
||||||
ok(hr == S_FALSE, "got %#lx\n", hr);
|
ok(hr == S_FALSE, "got %#lx\n", hr);
|
||||||
|
|
||||||
|
|
||||||
|
/* Stop finishes segment immediately and skips notification messages */
|
||||||
|
|
||||||
|
hr = IDirectMusicPerformance_AddNotificationType(performance, &GUID_NOTIFICATION_SEGMENT);
|
||||||
|
ok(hr == S_OK, "got %#lx\n", hr);
|
||||||
|
hr = IDirectMusicPerformance_PlaySegment(performance, segment, 0, 0, &state);
|
||||||
|
ok(hr == S_OK, "got %#lx\n", hr);
|
||||||
|
hr = IDirectMusicPerformance_GetTime(performance, NULL, &music_time);
|
||||||
|
ok(hr == S_OK, "got %#lx\n", hr);
|
||||||
|
|
||||||
|
ret = test_tool_wait_message(tool, 50, (DMUS_PMSG **)¬if);
|
||||||
|
ok(!ret, "got %#lx\n", ret);
|
||||||
|
check_dmus_notification_pmsg(notif, music_time, DMUS_PMSGF_TOOL_IMMEDIATE, &GUID_NOTIFICATION_SEGMENT,
|
||||||
|
DMUS_NOTIFICATION_SEGSTART, state);
|
||||||
|
hr = IDirectMusicPerformance_FreePMsg(performance, (DMUS_PMSG *)notif);
|
||||||
|
ok(hr == S_OK, "got %#lx\n", hr);
|
||||||
|
|
||||||
|
hr = IDirectMusicPerformance_Stop(performance, NULL, NULL, 0, DMUS_SEGF_DEFAULT);
|
||||||
|
ok(hr == S_OK, "got %#lx\n", hr);
|
||||||
|
hr = IDirectMusicPerformance_RemoveNotificationType(performance, &GUID_NOTIFICATION_SEGMENT);
|
||||||
|
ok(hr == S_OK, "got %#lx\n", hr);
|
||||||
|
|
||||||
|
ret = test_tool_wait_message(tool, 50, &msg);
|
||||||
|
ok(!ret, "got %#lx\n", ret);
|
||||||
|
ok(msg->dwType == DMUS_PMSGT_DIRTY, "got %#lx\n", msg->dwType);
|
||||||
|
hr = IDirectMusicPerformance_FreePMsg(performance, msg);
|
||||||
|
ok(hr == S_OK, "got %#lx\n", hr);
|
||||||
|
|
||||||
|
ret = test_tool_wait_message(tool, 50, (DMUS_PMSG **)¬if);
|
||||||
|
todo_wine ok(!ret, "got %#lx\n", ret);
|
||||||
|
if (!ret)
|
||||||
|
{
|
||||||
|
check_dmus_notification_pmsg(notif, music_time, DMUS_PMSGF_TOOL_IMMEDIATE, &GUID_NOTIFICATION_SEGMENT,
|
||||||
|
DMUS_NOTIFICATION_SEGABORT, state);
|
||||||
|
hr = IDirectMusicPerformance_FreePMsg(performance, (DMUS_PMSG *)notif);
|
||||||
|
ok(hr == S_OK, "got %#lx\n", hr);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = test_tool_wait_message(tool, 500, &msg);
|
||||||
|
ok(!ret, "got %#lx\n", ret);
|
||||||
|
ok(msg->dwType == DMUS_PMSGT_DIRTY, "got dwType %#lx\n", msg->dwType);
|
||||||
|
hr = IDirectMusicPerformance_FreePMsg(performance, msg);
|
||||||
|
ok(hr == S_OK, "got %#lx\n", hr);
|
||||||
|
|
||||||
|
ret = test_tool_wait_message(tool, 100, &msg);
|
||||||
|
ok(ret == WAIT_TIMEOUT, "got %#lx\n", ret);
|
||||||
|
|
||||||
|
IDirectMusicSegmentState_Release(state);
|
||||||
|
|
||||||
|
|
||||||
/* CloseDown removes all notifications and notification messages */
|
/* CloseDown removes all notifications and notification messages */
|
||||||
|
|
||||||
hr = IDirectMusicPerformance_AddNotificationType(performance, &GUID_NOTIFICATION_SEGMENT);
|
hr = IDirectMusicPerformance_AddNotificationType(performance, &GUID_NOTIFICATION_SEGMENT);
|
||||||
|
|
Loading…
Reference in a new issue