X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/566b7f7bbf7b48072d6f93e6bff90ac9cea78071..9eb5cd3b1fde80564d9c67afea154448a33836a1:/include/wx/msw/private.h diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h index 30aebc2836..c1b5e3e4cf 100644 --- a/include/wx/msw/private.h +++ b/include/wx/msw/private.h @@ -894,38 +894,28 @@ inline void *wxSetWindowUserData(HWND hwnd, void *data) #else // __WIN32__ -#ifdef __VISUALC__ - // strangely enough, VC++ 7.1 gives warnings about 32 -> 64 bit conversions - // in the functions below, even in spite of the explicit casts - #pragma warning(disable:4311) - #pragma warning(disable:4312) -#endif - -inline void *wxGetWindowProc(HWND hwnd) +// note that the casts to LONG_PTR here are required even on 32-bit machines +// for the 64-bit warning mode of later versions of MSVC (C4311/4312) +inline WNDPROC wxGetWindowProc(HWND hwnd) { - return (void *)::GetWindowLong(hwnd, GWL_WNDPROC); + return (WNDPROC)(LONG_PTR)::GetWindowLong(hwnd, GWL_WNDPROC); } inline void *wxGetWindowUserData(HWND hwnd) { - return (void *)::GetWindowLong(hwnd, GWL_USERDATA); + return (void *)(LONG_PTR)::GetWindowLong(hwnd, GWL_USERDATA); } inline WNDPROC wxSetWindowProc(HWND hwnd, WNDPROC func) { - return (WNDPROC)::SetWindowLong(hwnd, GWL_WNDPROC, (LONG)func); + return (WNDPROC)(LONG_PTR)::SetWindowLong(hwnd, GWL_WNDPROC, (LONG_PTR)func); } inline void *wxSetWindowUserData(HWND hwnd, void *data) { - return (void *)::SetWindowLong(hwnd, GWL_USERDATA, (LONG)data); + return (void *)(LONG_PTR)::SetWindowLong(hwnd, GWL_USERDATA, (LONG_PTR)data); } -#ifdef __VISUALC__ - #pragma warning(default:4311) - #pragma warning(default:4312) -#endif - #endif // __WIN64__/__WIN32__ #endif // wxUSE_GUI