From 8e41c231772e570d2af6ef887dc87f5a0adb4e7c Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 9 Aug 2001 14:04:46 +0000 Subject: [PATCH] Fixed compile errors and added call to SDL_SetModuleHandle() in WinMain() --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40150 --- include/SDL_main.h | 4 ++-- src/main/win32/SDL_main.c | 17 +++++++++++++---- src/video/wincommon/SDL_sysevents.c | 10 +++++----- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/include/SDL_main.h b/include/SDL_main.h index f1eb13100..2783d45ea 100644 --- a/include/SDL_main.h +++ b/include/SDL_main.h @@ -64,9 +64,9 @@ extern "C" { #endif /* This should be called from your WinMain() function, if any */ -extern DECLSPEC void SDL_SetModuleHandle(HMODULE hInst); +extern DECLSPEC void SDL_SetModuleHandle(void *hInst); /* This can also be called, but is no longer necessary */ -extern DECLSPEC int SDL_RegisterApp(char *name, Uint32 style, HMODULE hInst); +extern DECLSPEC int SDL_RegisterApp(char *name, Uint32 style, void *hInst); #ifdef __cplusplus } diff --git a/src/main/win32/SDL_main.c b/src/main/win32/SDL_main.c index 3685861ef..8625e3827 100644 --- a/src/main/win32/SDL_main.c +++ b/src/main/win32/SDL_main.c @@ -199,16 +199,25 @@ int console_main(int argc, char *argv[]) atexit(SDL_Quit); #ifndef DISABLE_VIDEO +#if 0 /* Create and register our class * - DJM: If we do this here, the user nevers gets a chance to - putenv(SDL_WINDOWID). This is already called later by - the (DIB|DX5)_CreateWindow function, so it should be - safe to comment it out here. + DJM: If we do this here, the user nevers gets a chance to + putenv(SDL_WINDOWID). This is already called later by + the (DIB|DX5)_CreateWindow function, so it should be + safe to comment it out here. if ( SDL_RegisterApp(appname, CS_BYTEALIGNCLIENT, GetModuleHandle(NULL)) < 0 ) { ShowError("WinMain() error", SDL_GetError()); exit(1); }*/ +#else + /* Sam: + We still need to pass in the application handle so that + DirectInput will initialize properly when SDL_RegisterApp() + is called later in the video initialization. + */ + SDL_SetModuleHandle(GetModuleHandle(NULL)); +#endif /* 0 */ #endif /* !DISABLE_VIDEO */ /* Run the application main() code */ diff --git a/src/video/wincommon/SDL_sysevents.c b/src/video/wincommon/SDL_sysevents.c index ea0a458cc..b0763a210 100644 --- a/src/video/wincommon/SDL_sysevents.c +++ b/src/video/wincommon/SDL_sysevents.c @@ -504,13 +504,13 @@ LONG CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) } /* Allow the application handle to be stored and retrieved later */ -static HMODULE SDL_handle = NULL; +static void *SDL_handle = NULL; -void SDL_SetModuleHandle(HMODULE handle) +void SDL_SetModuleHandle(void *handle) { SDL_handle = handle; } -HMODULE SDL_GetModuleHandle(void) +void *SDL_GetModuleHandle(void) { void *handle; @@ -531,7 +531,7 @@ HMODULE SDL_GetModuleHandle(void) const char *SDL_windowid = NULL; /* Register the class for this application -- exported for winmain.c */ -int SDL_RegisterApp(char *name, Uint32 style, HMODULE hInst) +int SDL_RegisterApp(char *name, Uint32 style, void *hInst) { static int initialized = 0; WNDCLASS class; @@ -571,7 +571,7 @@ int SDL_RegisterApp(char *name, Uint32 style, HMODULE hInst) class.lpszClassName = name; #endif /* _WIN32_WCE */ class.hbrBackground = NULL; - class.hInstance = hInst ? hInst : GetModuleHandle(0); + class.hInstance = hInst; class.style = style; #ifdef HAVE_OPENGL class.style |= CS_OWNDC;