How about removing AddRef call from throw_exception helper?
C++/CX code that manually throws exceptions is still compiled with a call to `AddRef` before `_CxxThrowException`. This just seems to be the code generated by MSVC for throwing exceptions in `C++/CX`, rather than something specific to the `__abi_WinRTraise*` functions. So even if we don't remove the AddRef call here, exceptions thrown from C++/CX code would still leak, I think. The [test code here](https://gitlab.winehq.org/wine/wine/-/snippets/31) suggests that not only there is a `__FINALLY` terminating handler that does call Release, but also that `__CxxFrameHandler(4)` calls `Release` before it dispatches the object to a matching `catch`. We could probably replace `IUnknown_Release` with `IUnknown_AddRef` in `copy_exception` to get the same results. That way, with the additional `Release` in `_C_specific_handler`, the exception should be correctly freed. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9209#note_120402