summaryrefslogtreecommitdiff
path: root/dmagick
diff options
context:
space:
mode:
authorMike Wey2012-09-17 12:02:10 +0200
committerMike Wey2012-09-17 12:02:10 +0200
commit788bbf93f61be486063e68ec1f7ce05a779a2db6 (patch)
tree758c85b9783a73d2de2ac4aef287a4e1b75a2c22 /dmagick
parent4ec19c0bacb680c0ba676214655954f8eae54510 (diff)
Make WinProc nothrow.
Diffstat (limited to 'dmagick')
-rw-r--r--dmagick/internal/Windows.d44
1 files changed, 24 insertions, 20 deletions
diff --git a/dmagick/internal/Windows.d b/dmagick/internal/Windows.d
index 3d7628e..13bf3c5 100644
--- a/dmagick/internal/Windows.d
+++ b/dmagick/internal/Windows.d
@@ -110,29 +110,33 @@ class Window
}
}
- extern(Windows) static LRESULT WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
+ extern(Windows) nothrow static LRESULT WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
- switch (message)
+ try
{
- case WM_ERASEBKGND: // don't redraw bg
- return 1;
-
- case WM_PAINT:
- windows[hwnd].draw();
- return 0;
-
- case WM_TIMER:
- windows[hwnd].nextFrame();
- return 0;
-
- case WM_DESTROY:
- windows[hwnd] = null;
- PostQuitMessage(0);
- return 0;
-
- default:
+ switch (message)
+ {
+ case WM_ERASEBKGND: // don't redraw bg
+ return 1;
+
+ case WM_PAINT:
+ windows[hwnd].draw();
+ return 0;
+
+ case WM_TIMER:
+ windows[hwnd].nextFrame();
+ return 0;
+
+ case WM_DESTROY:
+ windows[hwnd] = null;
+ PostQuitMessage(0);
+ return 0;
+
+ default:
+ }
}
-
+ catch(Exception e){}
+
return DefWindowProcA(hwnd, message, wParam, lParam);
}