diff --git a/modules/highgui/include/opencv2/highgui/highgui_c.h b/modules/highgui/include/opencv2/highgui/highgui_c.h index 7ae83f5d47..0d49ca5c3f 100644 --- a/modules/highgui/include/opencv2/highgui/highgui_c.h +++ b/modules/highgui/include/opencv2/highgui/highgui_c.h @@ -43,11 +43,6 @@ #define __OPENCV_HIGHGUI_H__ #include "opencv2/core/core_c.h" -#if defined WIN32 || defined _WIN32 - #include - #undef min - #undef max -#endif #ifdef __cplusplus extern "C" { @@ -462,9 +457,10 @@ CVAPI(void) cvReleaseVideoWriter( CvVideoWriter** writer ); #if defined WIN32 || defined _WIN32 -typedef int (CV_CDECL * CvWin32WindowCallback)(HWND, UINT, WPARAM, LPARAM, int*); -CVAPI(void) cvSetPreprocessFuncWin32( CvWin32WindowCallback on_preprocess ); -CVAPI(void) cvSetPostprocessFuncWin32( CvWin32WindowCallback on_postprocess ); +CVAPI(void) cvSetPreprocessFuncWin32_(const void* callback); +CVAPI(void) cvSetPostprocessFuncWin32_(const void* callback); +#define cvSetPreprocessFuncWin32(callback) cvSetPreprocessFuncWin32_((const void*)(callback)) +#define cvSetPostprocessFuncWin32(callback) cvSetPostprocessFuncWin32_((const void*)(callback)) #endif diff --git a/modules/highgui/src/precomp.hpp b/modules/highgui/src/precomp.hpp index 50b41fd534..da53711339 100644 --- a/modules/highgui/src/precomp.hpp +++ b/modules/highgui/src/precomp.hpp @@ -60,6 +60,12 @@ #include "cvconfig.h" #if defined WIN32 || defined _WIN32 + +#define WIN32_LEAN_AND_MEAN +#include +#undef min +#undef max + void FillBitmapInfo( BITMAPINFO* bmi, int width, int height, int bpp, int origin ); #endif diff --git a/modules/highgui/src/window_w32.cpp b/modules/highgui/src/window_w32.cpp index 04cdde15ab..2ac5e7eaaf 100644 --- a/modules/highgui/src/window_w32.cpp +++ b/modules/highgui/src/window_w32.cpp @@ -1671,23 +1671,18 @@ CV_IMPL const char* cvGetWindowName( void* window_handle ) } +typedef int (CV_CDECL * CvWin32WindowCallback)(HWND, UINT, WPARAM, LPARAM, int*); CV_IMPL void -cvSetPreprocessFuncWin32(int (__cdecl *on_preprocess)(HWND, UINT, WPARAM, LPARAM, int*)) +cvSetPreprocessFuncWin32_(const void* callback) { - if(on_preprocess) - hg_on_preprocess = on_preprocess; - else - assert(on_preprocess); + hg_on_preprocess = (CvWin32WindowCallback)callback; } CV_IMPL void -cvSetPostprocessFuncWin32(int (__cdecl *on_postprocess)(HWND, UINT, WPARAM, LPARAM, int*)) +cvSetPostprocessFuncWin32_(const void* callback) { - if(on_postprocess) - hg_on_postprocess = on_postprocess; - else - assert(on_postprocess); + hg_on_postprocess = (CvWin32WindowCallback)callback; } #endif //WIN32