+ fixes #0002287: Entry Point Not Found IsWow64Process

This commit is contained in:
wmayer 2015-10-07 10:24:35 +02:00
parent b68ae65f56
commit 4909d628f5
2 changed files with 11 additions and 4 deletions

View File

@ -401,7 +401,16 @@ UINT Gui::GUIApplicationNativeEventAware::GetRawInputBuffer(PRAWINPUT pData, PUI
return ::GetRawInputBuffer(pData, pcbSize, cbSizeHeader);
#else
BOOL bIsWow64 = FALSE;
::IsWow64Process(GetCurrentProcess(), &bIsWow64);
// 0002287: Entry Point Not Found IsWow64Process for Windows 2000
//::IsWow64Process(GetCurrentProcess(), &bIsWow64);
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
GetModuleHandle("kernel32"), "IsWow64Process");
if (NULL != fnIsWow64Process) {
fnIsWow64Process(GetCurrentProcess(), &bIsWow64);
}
if (!bIsWow64 || pData==NULL) {
return ::GetRawInputBuffer(pData, pcbSize, cbSizeHeader);
} else {

View File

@ -309,9 +309,6 @@ static QString getOperatingSystem()
#endif
}
#if defined(Q_OS_WIN32) || defined(Q_OS_WIN64)
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
#endif
static int getWordSizeOfOS()
{
#if defined(Q_OS_WIN64)
@ -323,6 +320,7 @@ static int getWordSizeOfOS()
// default bIsWow64 to FALSE for 32-bit process on 32-bit windows
BOOL bIsWow64 = FALSE; // must default to FALSE
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
GetModuleHandle("kernel32"), "IsWow64Process");