Hermes Belusca-Maito : shlwapi: Make SHCreateWorkerWindowA/ W 64-bit compatible.
Alexandre Julliard
julliard at winehq.org
Tue Feb 13 13:57:55 CST 2018
Module: wine
Branch: master
Commit: 2c163225730e880a1506cb8c02b296cee47c6c89
URL: https://source.winehq.org/git/wine.git/?a=commit;h=2c163225730e880a1506cb8c02b296cee47c6c89
Author: Hermes Belusca-Maito <hermes.belusca at sfr.fr>
Date: Mon Feb 12 23:33:58 2018 +0100
shlwapi: Make SHCreateWorkerWindowA/W 64-bit compatible.
Signed-off-by: Hermes Belusca-Maito <hermes.belusca at sfr.fr>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/shlwapi/ordinal.c | 24 +++++++++++-------------
dlls/shlwapi/shlwapi.spec | 4 ++--
2 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/dlls/shlwapi/ordinal.c b/dlls/shlwapi/ordinal.c
index 334607e..903df91 100644
--- a/dlls/shlwapi/ordinal.c
+++ b/dlls/shlwapi/ordinal.c
@@ -2575,14 +2575,14 @@ HRESULT WINAPI IUnknown_GetSite(LPUNKNOWN lpUnknown, REFIID iid, PVOID *lppSite)
* Success: The window handle of the newly created window.
* Failure: 0.
*/
-HWND WINAPI SHCreateWorkerWindowA(LONG wndProc, HWND hWndParent, DWORD dwExStyle,
+HWND WINAPI SHCreateWorkerWindowA(WNDPROC wndProc, HWND hWndParent, DWORD dwExStyle,
DWORD dwStyle, HMENU hMenu, LONG_PTR wnd_extra)
{
static const char szClass[] = "WorkerA";
WNDCLASSA wc;
HWND hWnd;
- TRACE("(0x%08x, %p, 0x%08x, 0x%08x, %p, 0x%08lx)\n",
+ TRACE("(%p, %p, 0x%08x, 0x%08x, %p, 0x%08lx)\n",
wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
/* Create Window class */
@@ -2604,8 +2604,7 @@ HWND WINAPI SHCreateWorkerWindowA(LONG wndProc, HWND hWndParent, DWORD dwExStyle
if (hWnd)
{
SetWindowLongPtrW(hWnd, 0, wnd_extra);
-
- if (wndProc) SetWindowLongPtrA(hWnd, GWLP_WNDPROC, wndProc);
+ if (wndProc) SetWindowLongPtrA(hWnd, GWLP_WNDPROC, (LONG_PTR)wndProc);
}
return hWnd;
@@ -2864,28 +2863,28 @@ DWORD WINAPI WhichPlatform(void)
*
* Unicode version of SHCreateWorkerWindowA.
*/
-HWND WINAPI SHCreateWorkerWindowW(LONG wndProc, HWND hWndParent, DWORD dwExStyle,
- DWORD dwStyle, HMENU hMenu, LONG msg_result)
+HWND WINAPI SHCreateWorkerWindowW(WNDPROC wndProc, HWND hWndParent, DWORD dwExStyle,
+ DWORD dwStyle, HMENU hMenu, LONG_PTR wnd_extra)
{
static const WCHAR szClass[] = { 'W', 'o', 'r', 'k', 'e', 'r', 'W', 0 };
WNDCLASSW wc;
HWND hWnd;
- TRACE("(0x%08x, %p, 0x%08x, 0x%08x, %p, 0x%08x)\n",
- wndProc, hWndParent, dwExStyle, dwStyle, hMenu, msg_result);
+ TRACE("(%p, %p, 0x%08x, 0x%08x, %p, 0x%08lx)\n",
+ wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
/* If our OS is natively ANSI, use the ANSI version */
if (GetVersion() & 0x80000000) /* not NT */
{
TRACE("fallback to ANSI, ver 0x%08x\n", GetVersion());
- return SHCreateWorkerWindowA(wndProc, hWndParent, dwExStyle, dwStyle, hMenu, msg_result);
+ return SHCreateWorkerWindowA(wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
}
/* Create Window class */
wc.style = 0;
wc.lpfnWndProc = DefWindowProcW;
wc.cbClsExtra = 0;
- wc.cbWndExtra = 4;
+ wc.cbWndExtra = sizeof(LONG_PTR);
wc.hInstance = shlwapi_hInstance;
wc.hIcon = NULL;
wc.hCursor = LoadCursorW(NULL, (LPWSTR)IDC_ARROW);
@@ -2899,9 +2898,8 @@ HWND WINAPI SHCreateWorkerWindowW(LONG wndProc, HWND hWndParent, DWORD dwExStyle
hWndParent, hMenu, shlwapi_hInstance, 0);
if (hWnd)
{
- SetWindowLongPtrW(hWnd, DWLP_MSGRESULT, msg_result);
-
- if (wndProc) SetWindowLongPtrW(hWnd, GWLP_WNDPROC, wndProc);
+ SetWindowLongPtrW(hWnd, 0, wnd_extra);
+ if (wndProc) SetWindowLongPtrW(hWnd, GWLP_WNDPROC, (LONG_PTR)wndProc);
}
return hWnd;
diff --git a/dlls/shlwapi/shlwapi.spec b/dlls/shlwapi/shlwapi.spec
index 6b6ead2..134bb47 100644
--- a/dlls/shlwapi/shlwapi.spec
+++ b/dlls/shlwapi/shlwapi.spec
@@ -254,7 +254,7 @@
254 stub -noname StopWatchExW
255 stub -noname EventTraceHandler
256 stdcall -ordinal IUnknown_GetSite(ptr ptr ptr)
-257 stdcall -noname SHCreateWorkerWindowA(long ptr long long ptr long)
+257 stdcall -noname SHCreateWorkerWindowA(ptr ptr long long ptr long)
258 stub -noname SHRegisterWaitForSingleObject
259 stub -noname SHUnregisterWait
260 stdcall -noname SHQueueUserWorkItem(long long long long long long long)
@@ -275,7 +275,7 @@
275 stub -noname RegisterGlobalHotkeyA
276 stdcall -ordinal WhichPlatform()
277 stub -noname SHDialogBox
-278 stdcall -noname SHCreateWorkerWindowW(long long long long long long)
+278 stdcall -noname SHCreateWorkerWindowW(ptr ptr long long ptr long)
279 stdcall -noname SHInvokeDefaultCommand(ptr ptr ptr)
280 stdcall -ordinal SHRegGetIntW(ptr wstr long)
281 stdcall -noname SHPackDispParamsV(ptr ptr long ptr)
More information about the wine-cvs
mailing list