Nikolay Sivov (@nsivov) commented about dlls/mfplat/main.c:
hr = IMFSchemeHandler_BeginCreateObject(handler, url, flags, props, cancel_cookie ? &inner_cookie : NULL, (IMFAsyncCallback *)&resolver->url_callback, (IUnknown *)result);
- if (SUCCEEDED(hr) && inner_cookie)
resolver_create_cancel_object((IUnknown *)handler, OBJECT_FROM_URL, inner_cookie, cancel_cookie);
- if (inner_cookie)
- {
if (SUCCEEDED(hr))
resolver_create_cancel_object((IUnknown *)handler, OBJECT_FROM_URL, inner_cookie, cancel_cookie);
IUnknown_Release(inner_cookie);
- }
Does this mean that failed BeginCreateObject() call still returns valid object? I think that's unexpected in general.