GetModuleHandle replacement git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@5870 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-libraries/winstorecompat/Makefile.am b/mingw-w64-libraries/winstorecompat/Makefile.am index 769b087..91956d3 100644 --- a/mingw-w64-libraries/winstorecompat/Makefile.am +++ b/mingw-w64-libraries/winstorecompat/Makefile.am
@@ -6,6 +6,7 @@ libwinstorecompat_a_SOURCES = \ src/_wassert.c \ + src/GetModuleHandle.c \ src/CreateEventW.c \ src/CreateMutexW.c \ src/CreateSemaphoreW.c \
diff --git a/mingw-w64-libraries/winstorecompat/Makefile.in b/mingw-w64-libraries/winstorecompat/Makefile.in index 6782f1f..fc08801 100644 --- a/mingw-w64-libraries/winstorecompat/Makefile.in +++ b/mingw-w64-libraries/winstorecompat/Makefile.in
@@ -97,8 +97,8 @@ libwinstorecompat_a_LIBADD = am__dirstamp = $(am__leading_dot)dirstamp am_libwinstorecompat_a_OBJECTS = src/_wassert.$(OBJEXT) \ - src/CreateEventW.$(OBJEXT) src/CreateMutexW.$(OBJEXT) \ - src/CreateSemaphoreW.$(OBJEXT) \ + src/GetModuleHandle.$(OBJEXT) src/CreateEventW.$(OBJEXT) \ + src/CreateMutexW.$(OBJEXT) src/CreateSemaphoreW.$(OBJEXT) \ src/InitializeCriticalSection.$(OBJEXT) \ src/GetFileAttributes.$(OBJEXT) \ src/WaitForSingleObject.$(OBJEXT) src/LoadLibraryW.$(OBJEXT) \ @@ -238,6 +238,7 @@ lib_LIBRARIES = libwinstorecompat.a libwinstorecompat_a_SOURCES = \ src/_wassert.c \ + src/GetModuleHandle.c \ src/CreateEventW.c \ src/CreateMutexW.c \ src/CreateSemaphoreW.c \ @@ -343,6 +344,8 @@ @: > src/$(DEPDIR)/$(am__dirstamp) src/_wassert.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) +src/GetModuleHandle.$(OBJEXT): src/$(am__dirstamp) \ + src/$(DEPDIR)/$(am__dirstamp) src/CreateEventW.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/CreateMutexW.$(OBJEXT): src/$(am__dirstamp) \ @@ -408,6 +411,7 @@ -rm -f src/GetACP.$(OBJEXT) -rm -f src/GetFileAttributes.$(OBJEXT) -rm -f src/GetFileSize.$(OBJEXT) + -rm -f src/GetModuleHandle.$(OBJEXT) -rm -f src/GetTickCount.$(OBJEXT) -rm -f src/InitializeCriticalSection.$(OBJEXT) -rm -f src/IsDBCSLeadByteEx.$(OBJEXT) @@ -439,6 +443,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/GetACP.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/GetFileAttributes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/GetFileSize.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/GetModuleHandle.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/GetTickCount.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/InitializeCriticalSection.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/IsDBCSLeadByteEx.Po@am__quote@
diff --git a/mingw-w64-libraries/winstorecompat/src/GetModuleHandle.c b/mingw-w64-libraries/winstorecompat/src/GetModuleHandle.c new file mode 100644 index 0000000..05b8b0b --- /dev/null +++ b/mingw-w64-libraries/winstorecompat/src/GetModuleHandle.c
@@ -0,0 +1,60 @@ +/* + Copyright (c) 2013 mingw-w64 project + + Contributing authors: Rafaël Carré + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#define GetModuleHandleA __GetModuleHandleA +#define GetModuleHandleW __GetModuleHandleW +#include <windows.h> +#include <stdio.h> +#undef GetModuleHandleA +#undef GetModuleHandleW + +HMODULE WINAPI GetModuleHandleA(LPCSTR lpModuleName); +HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName); + +HMODULE WINAPI GetModuleHandleA(LPCSTR lpModuleName) +{ + wchar_t msg[512]; + + _snwprintf(msg, 511, L"GetModuleHandleA (%S) call suppressed", lpModuleName); + msg[511] = '\0'; + + OutputDebugStringW(msg); + + return NULL; +} + +HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName) +{ + wchar_t msg[512]; + + _snwprintf(msg, 511, L"GetModuleHandleW (%ws) call suppressed", lpModuleName); + msg[511] = '\0'; + + OutputDebugStringW(msg); + + return NULL; +} + +HMODULE (WINAPI *__MINGW_IMP_SYMBOL(GetModuleHandleA))(LPCSTR) asm("__imp__GetModuleHandleA@4") = GetModuleHandleA; +HMODULE (WINAPI *__MINGW_IMP_SYMBOL(GetModuleHandleW))(LPCWSTR) asm("__imp__GetModuleHandleW@4") = GetModuleHandleW;