https://bugs.winehq.org/show_bug.cgi?id=41926
--- Comment #12 from Dmitry Timoshkov dmitry@baikal.ru --- (In reply to Dmitry Timoshkov from comment #11)
Looks like it uses a SEH to protect from invalid input.
Passing an HDC by reference makes it return DDERR_NOTFOUND instead of E_INVALIDARG for me, that seems like a progress :)
Exchanging first 2 params and passing HDC by value make it work.
The API returns an HDC (GetObjectType() returns 3 == OBJ_DC) in the provided storage, not an iface pointer though. Also, as as side effect the API call invalidates the passed in dd7 interface, so all further calls to it crash here.
Not sure how to interpret the results.