From daf16f6069ef910376efdf9e7d69fb119413cdd6 Mon Sep 17 00:00:00 2001 From: David Capello Date: Sat, 29 Oct 2011 12:32:18 -0300 Subject: [PATCH] Minor changes in drop_files.cpp to avoid cast problems. --- src/drop_files.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/drop_files.cpp b/src/drop_files.cpp index c07d41414..1bb8392fa 100644 --- a/src/drop_files.cpp +++ b/src/drop_files.cpp @@ -36,13 +36,19 @@ #ifdef ALLEGRO_WINDOWS -static WNDPROC base_wnd_proc = NULL; +#ifdef STRICT + typedef WNDPROC wndproc_t; +#else + typedef FARPROC wndproc_t; +#endif + +static wndproc_t base_wnd_proc = NULL; static std::vector* dropped_files; static Mutex* dropped_files_mutex = NULL; static void subclass_hwnd(); static void unsubclass_hwnd(); -static LRESULT ase_wnd_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); +static LRESULT CALLBACK ase_wnd_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); void install_drop_files() { @@ -98,7 +104,7 @@ static void subclass_hwnd() GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_ACCEPTFILES); // set the GWL_WNDPROC to globalWndProc - base_wnd_proc = (WNDPROC)SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)ase_wnd_proc); + base_wnd_proc = (wndproc_t)SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)ase_wnd_proc); } static void unsubclass_hwnd() @@ -110,7 +116,7 @@ static void unsubclass_hwnd() base_wnd_proc = NULL; } -static LRESULT ase_wnd_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) +static LRESULT CALLBACK ase_wnd_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { switch (msg) { @@ -136,7 +142,7 @@ static LRESULT ase_wnd_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) break; } - return (*base_wnd_proc)(hwnd, msg, wparam, lparam); + return ::CallWindowProc(base_wnd_proc, hwnd, msg, wparam, lparam); } #else