- return DefWindowProc (hWnd, message, wParam, lParam);
+ /* Temporarily restore the previous user_data */
+ if (ddrawsink->previous_user_data)
+ SetWindowLongPtr ( hWnd, GWLP_USERDATA, ddrawsink->previous_user_data );
+
+ /* Call previous WndProc */
+ ret = CallWindowProc (
+ ddrawsink->previous_wndproc, hWnd, message, wParam, lParam);
+
+ /* Point the user_data back to our ddraw_sink */
+ SetWindowLongPtr ( hWnd, GWLP_USERDATA, (LONG_PTR)ddrawsink );
+ } else {
+ /* if there was no previous custom WndProc, call Window's default one */
+ ret = DefWindowProc (hWnd, message, wParam, lParam);
+ }
+
+ return ret;