Commit e4328834 authored by Alistair Leslie-Hughes's avatar Alistair Leslie-Hughes Committed by Alexandre Julliard

xactengine3_7: Return error on invalid notification value.

parent d1c08b17
......@@ -208,6 +208,24 @@ static void test_notifications(void)
hr = IXACT3Engine_Initialize(engine, &params);
ok(hr == S_OK, "Cannot initialize engine, hr %#lx\n", hr);
notification_desc.type = 0;
notification_desc.flags = 0;
notification_desc.pvContext = &prepared_data;
hr = IXACT3Engine_RegisterNotification(engine, &notification_desc);
ok(hr == E_INVALIDARG, "got hr %#lx\n", hr);
hr = IXACT3Engine_UnRegisterNotification(engine, &notification_desc);
ok(hr == S_OK, "got hr %#lx\n", hr);
notification_desc.type = XACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT + 1;
notification_desc.flags = 0;
notification_desc.pvContext = &prepared_data;
hr = IXACT3Engine_RegisterNotification(engine, &notification_desc);
ok(hr == E_INVALIDARG, "got hr %#lx\n", hr);
hr = IXACT3Engine_UnRegisterNotification(engine, &notification_desc);
ok(hr == S_OK, "got hr %#lx\n", hr);
prepared_data.type = XACTNOTIFICATIONTYPE_WAVEBANKPREPARED;
prepared_data.thread_id = GetCurrentThreadId();
notification_desc.type = XACTNOTIFICATIONTYPE_WAVEBANKPREPARED;
......
......@@ -1517,6 +1517,10 @@ static HRESULT WINAPI IXACT3EngineImpl_RegisterNotification(IXACT3Engine *iface,
TRACE("(%p)->(%p)\n", This, pNotificationDesc);
if (pNotificationDesc->type < XACTNOTIFICATIONTYPE_CUEPREPARED ||
pNotificationDesc->type > XACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT)
return E_INVALIDARG;
unwrap_notificationdesc(&fdesc, pNotificationDesc);
This->contexts[pNotificationDesc->type] = pNotificationDesc->pvContext;
fdesc.pvContext = This;
......@@ -1531,6 +1535,10 @@ static HRESULT WINAPI IXACT3EngineImpl_UnRegisterNotification(IXACT3Engine *ifac
TRACE("(%p)->(%p)\n", This, pNotificationDesc);
if (pNotificationDesc->type < XACTNOTIFICATIONTYPE_CUEPREPARED ||
pNotificationDesc->type > XACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT)
return S_OK;
unwrap_notificationdesc(&fdesc, pNotificationDesc);
fdesc.pvContext = This;
return FACTAudioEngine_UnRegisterNotification(This->fact_engine, &fdesc);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment