From 42c8b289932def4d921023c9fa85a2dc0ccb044f Mon Sep 17 00:00:00 2001 From: sezero Date: Wed, 8 Aug 2018 08:55:02 +0300 Subject: [PATCH] Windows (VC6) build fixes, 03/##: HMONITOR type hack for h3 and h5. --- glide3x/h3/minihwc/dxdrvr.c | 11 ++++++++--- glide3x/h3/minihwc/minihwc.c | 5 ++++- glide3x/h3/minihwc/win_mode.c | 4 ++++ glide3x/h5/minihwc/dxdrvr.c | 28 ++++++++++++++++------------ glide3x/h5/minihwc/minihwc.c | 8 ++++---- glide3x/h5/minihwc/win_mode.c | 4 ++++ 6 files changed, 40 insertions(+), 20 deletions(-) diff --git a/glide3x/h3/minihwc/dxdrvr.c b/glide3x/h3/minihwc/dxdrvr.c index 1f1f4c2..5f1d89c 100644 --- a/glide3x/h3/minihwc/dxdrvr.c +++ b/glide3x/h3/minihwc/dxdrvr.c @@ -100,9 +100,14 @@ static char *bufTypeNames[] = { #endif #if defined( __WIN32__) && defined(HWC_ACCESS_DDRAW) -#define WIN32_LEAN_AND_MEAN -#include -#include +#define WIN32_LEAN_AND_MEAN +#include + +#if (WINVER < 0x0500) && !defined(HMONITOR_DECLARED) /* <--- HACK */ +DECLARE_HANDLE(HMONITOR); +#define HMONITOR_DECLARED +#endif +#include #define NUM_BUFS 6 diff --git a/glide3x/h3/minihwc/minihwc.c b/glide3x/h3/minihwc/minihwc.c index 9decb0e..9ce9a42 100644 --- a/glide3x/h3/minihwc/minihwc.c +++ b/glide3x/h3/minihwc/minihwc.c @@ -666,7 +666,10 @@ static FxBool resolutionSupported[HWC_MAX_BOARDS][0xF]; #ifdef HWC_EXT_INIT static hwcBoardInfo *curBI; -typedef void *HMONITOR; +#if (WINVER < 0x0500) && !defined(HMONITOR_DECLARED) /* <--- HACK */ +DECLARE_HANDLE(HMONITOR); +#define HMONITOR_DECLARED +#endif typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM); typedef WINUSERAPI BOOL WINAPI EnumDisplayMonitors_func( HDC hdc, diff --git a/glide3x/h3/minihwc/win_mode.c b/glide3x/h3/minihwc/win_mode.c index b6fea67..0a5a668 100644 --- a/glide3x/h3/minihwc/win_mode.c +++ b/glide3x/h3/minihwc/win_mode.c @@ -67,6 +67,10 @@ _parseFilename(char *name) static int _set_exclusive_relaxed; static int _set_vidmode_relaxed; +#if (WINVER < 0x0500) && !defined(HMONITOR_DECLARED) /* <--- HACK */ +DECLARE_HANDLE(HMONITOR); +#define HMONITOR_DECLARED +#endif typedef struct _enumInfoStruct { GUID guid; HMONITOR hmon; diff --git a/glide3x/h5/minihwc/dxdrvr.c b/glide3x/h5/minihwc/dxdrvr.c index a86eb5e..f2c8dfc 100644 --- a/glide3x/h5/minihwc/dxdrvr.c +++ b/glide3x/h5/minihwc/dxdrvr.c @@ -109,8 +109,13 @@ static char *bufTypeNames[] = { #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif -#include -#include +#include + +#if (WINVER < 0x0500) && !defined(HMONITOR_DECLARED) /* <--- HACK */ +DECLARE_HANDLE(HMONITOR); +#define HMONITOR_DECLARED +#endif +#include #define NUM_BUFS 6 @@ -249,17 +254,16 @@ _dxDDrawToGlideDesc(hwcBufferDesc *pDesc) } /* _dxDDrawToGlideDesc */ -/* XXXTACOHACK -- The required header file isn't shipping yet - decls will be removed at some +/* XXXTACOHACK -- The required header file isn't shipping yet - decls will be removed at some future time */ -typedef void *HMONITOR; -typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXA)(GUID FAR *, LPSTR, LPSTR, LPVOID, HMONITOR); -extern HRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEXA lpCallback, - LPVOID lpContext, DWORD dwFlags); -typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXA)( LPDDENUMCALLBACKEXA lpCallback, - LPVOID lpContext, - DWORD dwFlags); -#define DDENUM_ATTACHEDSECONDARYDEVICES 0x00000001L -/* XXXTACOHACK -- The required header file isn't shipping yet - decls will be removed at some +typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXA)(GUID FAR *, LPSTR, LPSTR, LPVOID, HMONITOR); +extern HRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEXA lpCallback, + LPVOID lpContext, DWORD dwFlags); +typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXA)( LPDDENUMCALLBACKEXA lpCallback, + LPVOID lpContext, + DWORD dwFlags); +#define DDENUM_ATTACHEDSECONDARYDEVICES 0x00000001L +/* XXXTACOHACK -- The required header file isn't shipping yet - decls will be removed at some future time */ static GUID fooGuid; diff --git a/glide3x/h5/minihwc/minihwc.c b/glide3x/h5/minihwc/minihwc.c index 9b1e4b4..ef1edf1 100644 --- a/glide3x/h5/minihwc/minihwc.c +++ b/glide3x/h5/minihwc/minihwc.c @@ -1090,10 +1090,10 @@ initSlave(hwcBoardInfo *bInfo, FxU32 chipNum); //static hwcBoardInfo *curBI = NULL; #ifdef HWC_EXT_INIT -//#ifndef HMONITOR_DECLARED // AJB- Make def compatible w/ vc6 headers -//typedef void *HMONITOR; -//#define HMONITOR_DECLARED -//#endif +#if (WINVER < 0x0500) && !defined(HMONITOR_DECLARED) /* <--- HACK */ +DECLARE_HANDLE(HMONITOR); +#define HMONITOR_DECLARED +#endif typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM); typedef WINUSERAPI BOOL WINAPI EnumDisplayMonitors_func( HDC hdc, diff --git a/glide3x/h5/minihwc/win_mode.c b/glide3x/h5/minihwc/win_mode.c index a90969b..3bd52fc 100644 --- a/glide3x/h5/minihwc/win_mode.c +++ b/glide3x/h5/minihwc/win_mode.c @@ -69,6 +69,10 @@ static int _set_exclusive_relaxed; static int _set_vidmode_relaxed; static FxBool _set_multirendering; +#if (WINVER < 0x0500) && !defined(HMONITOR_DECLARED) /* <--- HACK */ +DECLARE_HANDLE(HMONITOR); +#define HMONITOR_DECLARED +#endif typedef struct _enumInfoStruct { GUID guid; HMONITOR hmon;