Piotr Caban (@piotr) commented about dlls/vccorlib140/tests/vccorlib.c:
static void *(__cdecl *pAllocateException)(size_t); static void *(__cdecl *pAllocateExceptionWithWeakRef)(ptrdiff_t, size_t); static void (__cdecl *pFreeException)(void *); +static void (__cdecl *p_platform_Exception_default_ctor)(void *, HRESULT); +static void (__cdecl *p_platform_Exception_hstring_ctor)(void *, HRESULT, HSTRING); +static void (__cdecl *p_platform_COMException_default_ctor)(void *, HRESULT); +static void (__cdecl *p_platform_COMException_hstring_ctor)(void *, HRESULT, HSTRING); +#define WINRT_EXCEPTION(name, ...) \ + static void (__cdecl *p_platform_##name##Exception_default_ctor)(void *); \ + static void (__cdecl *p_platform_##name##Exception_hstring_ctor)(void *, HSTRING); constructors are returning this pointer (it's more important in the implementation).
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9209#note_119701