You can find the result with below simple code :
#include <windows.h> #include <iostream>
#include <gdiplusenums.h> #include <gdiplustypes.h>
#include <gdiplusgpstubs.h> #include <gdiplusmetaheader.h>
#include <gdipluspixelformats.h> #include <gdipluscolor.h> #include <gdipluscolormatrix.h> #include <gdiplusimaging.h> struct IDirectDrawSurface7; #include <gdiplusflat.h>
#pragma comment(lib,"gdiplus")
typedef GpStatus (*pfnGdipEnumerateMetafileSrcRectDestRectI)( GpGraphics* graphics, GDIPCONST GpMetafile* metafile, GDIPCONST Rect* destRect, GDIPCONST Rect* srcRect, Unit srcUnit, EnumerateMetafileProc callback, VOID* callbackData, GDIPCONST GpImageAttributes* imageAttributes );
int main() {
pfnGdipEnumerateMetafileSrcRectDestRectI pfunc = (pfnGdipEnumerateMetafileSrcRectDestRectI)GetProcAddress(GetModuleHandleA("gdiplus"), "GdipEnumerateMetafileSrcRectDestRectI"); __try {
pfunc(0, 0, 0, 0, UnitDisplay, 0, 0, 0); printf("ok\n"); } __except (EXCEPTION_EXECUTE_HANDLER) { printf("Executing SEH __except block\r\n"); } system("pause");
return 0; }
I have tested in win7, win10 and the program goes to the exception handler in both environments.
Thanks.