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).