[PATCH] rundll32: Only call LoadLibrary16 on x86.
Esme Povirk
esme at codeweavers.com
Tue Jul 6 16:31:47 CDT 2021
These are imported by ordinal, so on other architectures we end
up calling whatever ends up on that ordinal, which is currently
Beep on x86_64.
Signed-off-by: Esme Povirk <esme at codeweavers.com>
---
programs/rundll32/rundll32.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/programs/rundll32/rundll32.c b/programs/rundll32/rundll32.c
index eb7713518a9..71703284c99 100644
--- a/programs/rundll32/rundll32.c
+++ b/programs/rundll32/rundll32.c
@@ -83,8 +83,10 @@ static void call_entry_point( void *func, HWND hwnd, HINSTANCE inst, void *cmdli
}
#endif
+#ifdef __i386__
static HINSTANCE16 (WINAPI *pLoadLibrary16)(LPCSTR libname);
static FARPROC16 (WINAPI *pGetProcAddress16)(HMODULE16 hModule, LPCSTR name);
+#endif
static void (WINAPI *pRunDLL_CallEntry16)( FARPROC proc, HWND hwnd, HINSTANCE inst,
LPCSTR cmdline, INT cmdshow );
@@ -112,6 +114,7 @@ static ATOM register_class(void)
return RegisterClassExW(&wcex);
}
+#ifdef __i386__
static HINSTANCE16 load_dll16( LPCWSTR dll )
{
HINSTANCE16 ret = 0;
@@ -143,6 +146,17 @@ static FARPROC16 get_entry_point16( HINSTANCE16 inst, LPCWSTR entry )
}
return ret;
}
+#else
+static HINSTANCE16 load_dll16( LPCWSTR dll )
+{
+ return 0;
+}
+
+static FARPROC16 get_entry_point16( HINSTANCE16 inst, LPCWSTR entry )
+{
+ return 0;
+}
+#endif
static void *get_entry_point32( HMODULE module, LPCWSTR entry, BOOL *unicode )
{
--
2.30.2
More information about the wine-devel
mailing list