diff --git a/meshconsole/MeshConsole.vcxproj b/meshconsole/MeshConsole.vcxproj
index 630ca50..74ea017 100644
--- a/meshconsole/MeshConsole.vcxproj
+++ b/meshconsole/MeshConsole.vcxproj
@@ -357,7 +357,7 @@
Async
- SetupAPI.lib;Crypt32.lib;Ncrypt.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;..\openssl\libstatic\libcrypto32MTd.lib;..\openssl\libstatic\libssl32MTd.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Crypt32.lib;Ncrypt.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;..\openssl\libstatic\libcrypto32MTd.lib;..\openssl\libstatic\libssl32MTd.lib;%(AdditionalDependencies)
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
@@ -381,7 +381,7 @@
Async
- SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
@@ -405,7 +405,7 @@
Async
- SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
@@ -429,7 +429,7 @@
Async
- SetupAPI.lib;Crypt32.lib;Ncrypt.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;..\openssl\libstatic\libcrypto32MT.lib;..\openssl\libstatic\libssl32MT.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Crypt32.lib;Ncrypt.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;..\openssl\libstatic\libcrypto32MT.lib;..\openssl\libstatic\libssl32MT.lib;%(AdditionalDependencies)
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
@@ -456,7 +456,7 @@
Async
- SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
@@ -483,7 +483,7 @@
Async
- SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
/ignore:4099 %(AdditionalOptions)
$(OutDir)$(TargetName)$(TargetExt)
@@ -510,7 +510,7 @@
Async
- SetupAPI.lib;Crypt32.lib;Ncrypt.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;..\openssl\libstatic\libcrypto64MTd.lib;..\openssl\libstatic\libssl64MTd.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Crypt32.lib;Ncrypt.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;..\openssl\libstatic\libcrypto64MTd.lib;..\openssl\libstatic\libssl64MTd.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
@@ -534,7 +534,7 @@
Async
- SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
@@ -558,7 +558,7 @@
Async
- SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
@@ -582,7 +582,7 @@
Async
- SetupAPI.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;Crypt32.lib;Ncrypt.lib;ws2_32.lib;..\openssl\libstatic\libcrypto64MT.lib;..\openssl\libstatic\libssl64MT.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;Crypt32.lib;Ncrypt.lib;ws2_32.lib;..\openssl\libstatic\libcrypto64MT.lib;..\openssl\libstatic\libssl64MT.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
@@ -609,7 +609,7 @@
Async
- SetupAPI.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;Bcrypt.lib;Crypt32.lib;ws2_32.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;Bcrypt.lib;Crypt32.lib;ws2_32.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
@@ -636,7 +636,7 @@
Async
- SetupAPI.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;Bcrypt.lib;Crypt32.lib;ws2_32.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;Bcrypt.lib;Crypt32.lib;ws2_32.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName)$(TargetExt)
/ignore:4099 %(AdditionalOptions)
diff --git a/meshcore/KVM/Windows/input.c b/meshcore/KVM/Windows/input.c
index 4ac8ec1..7e1e811 100644
--- a/meshcore/KVM/Windows/input.c
+++ b/meshcore/KVM/Windows/input.c
@@ -478,9 +478,10 @@ int g_TouchLoadLibraryState = 0;
int TouchInit()
{
+ // These functions only exist on Windows 8 and above, so it's ok that the SYSTEM32 flag requires Win 7 SP2
_InitializeTouchInjection init = NULL;
if (g_TouchLoadLibraryState > 0) return g_TouchLoadLibraryState;
- g_TouchLoadLibrary = LoadLibraryExA((LPCSTR)"User32.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
+ g_TouchLoadLibrary = LoadLibraryExA((LPCSTR)"User32.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
if (g_TouchLoadLibrary == NULL) { g_TouchLoadLibraryState = 2; return 2; }
init = (_InitializeTouchInjection)GetProcAddress(g_TouchLoadLibrary, "InitializeTouchInjection");
g_TouchInjectionCall = (_InjectTouchInput)GetProcAddress(g_TouchLoadLibrary, "InjectTouchInput");
diff --git a/meshcore/KVM/Windows/kvm.c b/meshcore/KVM/Windows/kvm.c
index 9e642f7..25ed76c 100644
--- a/meshcore/KVM/Windows/kvm.c
+++ b/meshcore/KVM/Windows/kvm.c
@@ -29,6 +29,7 @@ limitations under the License.
#include "microstack/ILibAsyncSocket.h"
#include "microstack/ILibProcessPipe.h"
#include "microstack/ILibRemoteLogging.h"
+#include
#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(_MINCORE)
#define _CRTDBG_MAP_ALLOC
@@ -155,69 +156,12 @@ void kvm_setupSasPermissions()
// Emulate the CTRL-ALT-DEL (Should work on WinXP, not on Vista & Win7)
DWORD WINAPI kvm_ctrlaltdel(LPVOID Param)
{
- OSVERSIONINFO osv;
-
UNREFERENCED_PARAMETER( Param );
-
KVMDEBUG("kvm_ctrlaltdel", (int)Param);
-
- osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- if (!GetVersionEx(&osv)) return 0;
-
- if (osv.dwMajorVersion < 6)
- {
- // Perform old method (WinXP)
- HWND hwnd = NULL;
- HWINSTA ws;
- HDESK hdesk = NULL;
-
- ws = OpenWindowStation("winsta0", FALSE,
- WINSTA_ACCESSCLIPBOARD |
- WINSTA_ACCESSGLOBALATOMS |
- WINSTA_CREATEDESKTOP |
- WINSTA_ENUMDESKTOPS |
- WINSTA_ENUMERATE |
- WINSTA_EXITWINDOWS |
- WINSTA_READATTRIBUTES |
- WINSTA_READSCREEN |
- WINSTA_WRITEATTRIBUTES);
- if (ws != NULL)
- {
- SetProcessWindowStation(ws);
- CloseWindowStation(ws);
- }
-
- hdesk = OpenDesktop("Winlogon", 0, FALSE,
- DESKTOP_CREATEMENU |
- DESKTOP_CREATEWINDOW |
- DESKTOP_ENUMERATE |
- DESKTOP_HOOKCONTROL |
- DESKTOP_JOURNALPLAYBACK |
- DESKTOP_JOURNALRECORD |
- DESKTOP_READOBJECTS |
- DESKTOP_SWITCHDESKTOP |
- DESKTOP_WRITEOBJECTS);
- if (hdesk != NULL && SetThreadDesktop(hdesk) == TRUE)
-
- hwnd = FindWindow("SAS window class", "SAS window");
- if (hwnd == NULL) hwnd = HWND_BROADCAST;
- SendMessage(hwnd, WM_HOTKEY, 0, MAKELONG(MOD_ALT | MOD_CONTROL, VK_DELETE));
- if (hdesk != NULL) CloseDesktop(hdesk);
- }
- else
- {
- // Perform new method (Vista & Win7)
- typedef VOID (WINAPI *SendSas)(BOOL asUser);
- SendSas sas;
- HMODULE sm = NULL;
- if ((sm = LoadLibraryExA((LPCSTR)"sas.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32)) != NULL)
- {
- sas = (SendSas)GetProcAddress(sm, "SendSAS");
- kvm_setupSasPermissions();
- if (sas != NULL) sas(FALSE);
- FreeLibrary(sm);
- }
- }
+
+ // Perform new method (Vista & Win7)
+ kvm_setupSasPermissions();
+ SendSAS(FALSE);
return 0;
}
diff --git a/meshcore/agentcore.c b/meshcore/agentcore.c
index cea201f..3ae9b84 100644
--- a/meshcore/agentcore.c
+++ b/meshcore/agentcore.c
@@ -3979,6 +3979,7 @@ MeshAgentHostContainer* MeshAgent_Create(MeshCommand_AuthInfo_CapabilitiesMask c
#ifdef WIN32
SYSTEM_POWER_STATUS stats;
+ // This is only supported on Windows 8.1 / Windows Server 2012 R2 and above
if ((retVal->shCore = (void*)LoadLibraryExA((LPCSTR)"Shcore.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32)) != NULL)
{
if ((retVal->dpiAwareness = (void*)GetProcAddress((HMODULE)retVal->shCore, (LPCSTR)"SetProcessDpiAwareness")) == NULL)
@@ -3995,7 +3996,7 @@ MeshAgentHostContainer* MeshAgent_Create(MeshCommand_AuthInfo_CapabilitiesMask c
retVal->capabilities = capabilities | MeshCommand_AuthInfo_CapabilitiesMask_CONSOLE | MeshCommand_AuthInfo_CapabilitiesMask_JAVASCRIPT | MeshCommand_AuthInfo_CapabilitiesMask_COMPRESSION;
#ifdef WIN32
-
+ // This is only supported on Windows 8 and above
HMODULE wsCORE = LoadLibraryExA((LPCSTR)"Ws2_32.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
GetHostNameWFunc ghnw = NULL;
if (wsCORE != NULL)
diff --git a/meshservice/MeshService.vcxproj b/meshservice/MeshService.vcxproj
index 2923e3b..20b9f51 100644
--- a/meshservice/MeshService.vcxproj
+++ b/meshservice/MeshService.vcxproj
@@ -206,7 +206,7 @@
Async
- SetupAPI.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Crypt32.lib;Ncrypt.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Winhttp.lib;..\openssl\libstatic\libcrypto32MTd.lib;..\openssl\libstatic\libssl32MTd.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Crypt32.lib;Ncrypt.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Winhttp.lib;..\openssl\libstatic\libcrypto32MTd.lib;..\openssl\libstatic\libssl32MTd.lib;%(AdditionalDependencies)
true
Console
MachineX86
@@ -251,7 +251,7 @@
Async
- SetupAPI.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Bcrypt.lib;Crypt32.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Winhttp.lib;..\openssl\libstatic\libcrypto32MTd.lib;..\openssl\libstatic\libssl32MTd.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;DbgHelp.lib;Gdiplus.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Bcrypt.lib;Crypt32.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Winhttp.lib;..\openssl\libstatic\libcrypto32MTd.lib;..\openssl\libstatic\libssl32MTd.lib;%(AdditionalDependencies)
true
Console
MachineX86
@@ -299,7 +299,7 @@
Async
- SetupAPI.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Crypt32.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;Ncrypt.lib;..\openssl\libstatic\libcrypto64MTd.lib;..\openssl\libstatic\libssl64MTd.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Crypt32.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;Ncrypt.lib;..\openssl\libstatic\libcrypto64MTd.lib;..\openssl\libstatic\libssl64MTd.lib;%(AdditionalDependencies)
true
Console
MachineX64
@@ -342,7 +342,7 @@
Async
- SetupAPI.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Bcrypt.lib;Crypt32.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;Ncrypt.lib;..\openssl\libstatic\libcrypto64MTd.lib;..\openssl\libstatic\libssl64MTd.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Bcrypt.lib;Crypt32.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;Ncrypt.lib;..\openssl\libstatic\libcrypto64MTd.lib;..\openssl\libstatic\libssl64MTd.lib;%(AdditionalDependencies)
true
Console
MachineX64
@@ -385,7 +385,7 @@
Size
- SetupAPI.lib;Crypt32.lib;Ncrypt.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;..\openssl\libstatic\libcrypto32MT.lib;..\openssl\libstatic\libssl32MT.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Crypt32.lib;Ncrypt.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;..\openssl\libstatic\libcrypto32MT.lib;..\openssl\libstatic\libssl32MT.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName)$(TargetExt)
true
Console
@@ -427,7 +427,7 @@
Async
- SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;..\openssl\libstatic\libcrypto32MT.lib;..\openssl\libstatic\libssl32MT.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;Bcrypt.lib;Crypt32.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;..\openssl\libstatic\libcrypto32MT.lib;..\openssl\libstatic\libssl32MT.lib;%(AdditionalDependencies)
$(OutDir)$(TargetName)$(TargetExt)
true
Console
@@ -471,7 +471,7 @@
Async
- SetupAPI.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Crypt32.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;Ncrypt.lib;..\openssl\libstatic\libcrypto64MT.lib;..\openssl\libstatic\libssl64MT.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Crypt32.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;Ncrypt.lib;..\openssl\libstatic\libcrypto64MT.lib;..\openssl\libstatic\libssl64MT.lib;%(AdditionalDependencies)
true
Console
true
@@ -516,7 +516,7 @@
Async
- SetupAPI.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Bcrypt.lib;Crypt32.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;Ncrypt.lib;..\openssl\libstatic\libcrypto64MT.lib;..\openssl\libstatic\libssl64MT.lib;%(AdditionalDependencies)
+ Sas.lib;SetupAPI.lib;DbgHelp.lib;Iphlpapi.lib;ws2_32.lib;Setupapi.lib;Psapi.lib;Bcrypt.lib;Crypt32.lib;Wintrust.lib;Version.lib;Wtsapi32.lib;Gdiplus.lib;Winhttp.lib;Ncrypt.lib;..\openssl\libstatic\libcrypto64MT.lib;..\openssl\libstatic\libssl64MT.lib;%(AdditionalDependencies)
true
Console
true
diff --git a/meshservice/ServiceMain.c b/meshservice/ServiceMain.c
index 561dd26..5bd5c20 100644
--- a/meshservice/ServiceMain.c
+++ b/meshservice/ServiceMain.c
@@ -574,6 +574,7 @@ int wmain(int argc, char* wargv[])
gRemoteMouseRenderDefault = 1;
}
+ // This is only supported on Windows 8 / Windows Server 2012 R2 and newer
HMODULE shCORE = LoadLibraryExA((LPCSTR)"Shcore.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
DpiAwarenessFunc dpiAwareness = NULL;
if (shCORE != NULL)
@@ -611,6 +612,7 @@ int wmain(int argc, char* wargv[])
gRemoteMouseRenderDefault = 1;
}
+ // This is only supported on Windows 8 / Windows Server 2012 R2 and newer
HMODULE shCORE = LoadLibraryExA((LPCSTR)"Shcore.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
DpiAwarenessFunc dpiAwareness = NULL;
if (shCORE != NULL)
@@ -917,6 +919,7 @@ int wmain(int argc, char* wargv[])
}
else
{
+ // This is only supported on Windows 8 / Windows Server 2012 R2 and newer
FreeConsole();
HMODULE shCORE = LoadLibraryExA((LPCSTR)"Shcore.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
DpiAwarenessFunc dpiAwareness = NULL;
diff --git a/microscript/ILibDuktape_ScriptContainer.c b/microscript/ILibDuktape_ScriptContainer.c
index 028d73f..acda0ae 100644
--- a/microscript/ILibDuktape_ScriptContainer.c
+++ b/microscript/ILibDuktape_ScriptContainer.c
@@ -1577,8 +1577,7 @@ duk_ret_t ILibDuktape_ScriptContainer_OS_arch(duk_context *ctx)
}
else
{
- HMODULE hm = LoadLibraryExA("Kernel32.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
- void *func = (void*)GetProcAddress(hm, "IsWow64Process");
+ void *func = (void*)GetProcAddress(GetModuleHandleA("kernel32"), "IsWow64Process");
BOOL isWow = FALSE;
if (func != NULL)
@@ -1608,7 +1607,6 @@ duk_ret_t ILibDuktape_ScriptContainer_OS_arch(duk_context *ctx)
// We are 32 bit App running on 32 bit Windows
duk_push_string(ctx, "ia32");
}
- FreeLibrary(hm);
}
return(1);
#else