xactengine3_7: Return error on invalid notification value.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
This commit is contained in:
parent
d1c08b1714
commit
e43288348d
2 changed files with 26 additions and 0 deletions
|
@ -208,6 +208,24 @@ static void test_notifications(void)
|
|||
hr = IXACT3Engine_Initialize(engine, ¶ms);
|
||||
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, ¬ification_desc);
|
||||
ok(hr == E_INVALIDARG, "got hr %#lx\n", hr);
|
||||
|
||||
hr = IXACT3Engine_UnRegisterNotification(engine, ¬ification_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, ¬ification_desc);
|
||||
ok(hr == E_INVALIDARG, "got hr %#lx\n", hr);
|
||||
|
||||
hr = IXACT3Engine_UnRegisterNotification(engine, ¬ification_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);
|
||||
|
|
Loading…
Add table
Reference in a new issue