https://bugs.winehq.org/show_bug.cgi?id=45845
--- Comment #5 from Zebediah Figura z.figura12@gmail.com --- (In reply to Dmitry Timoshkov from comment #2)
One of the problems with baea371c3d4153bc4a718c07f46971d4d39aa9f3 is that it makes MSI APIs return wrong value on exception. Let's look for instance at MsiEvaluateConditionW implementation: it's supposed to return MSICONDITION, however in the case of an exception it returns the exception code instead of MSICONDITION_NONE.
Eh, well, that's not always a guarantee. For example, COM proxies always return an HRESULT-style error code even if the function doesn't return an HRESULT.
I'd be very curious to see how either of those functions are throwing an exception, however.