[SHLWAPI] Import wine commit 2c163225730e88 as addendum to the SHCreateWorkerWindowW/A fixes from commit 770bf93.

This commit is contained in:
Hermès Bélusca-Maïto 2018-02-13 22:05:13 +01:00
parent 37b9ca3fe3
commit eb3987e172
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0

View file

@ -2555,19 +2555,14 @@ HRESULT WINAPI IUnknown_GetSite(LPUNKNOWN lpUnknown, REFIID iid, PVOID *lppSite)
* Success: The window handle of the newly created window.
* Failure: 0.
*/
#ifndef __REACTOS__
HWND WINAPI SHCreateWorkerWindowA(LONG wndProc, HWND hWndParent, DWORD dwExStyle,
DWORD dwStyle, HMENU hMenu, LONG_PTR wnd_extra)
#else
HWND WINAPI SHCreateWorkerWindowA(WNDPROC wndProc, HWND hWndParent, DWORD dwExStyle,
DWORD dwStyle, HMENU hMenu, LONG_PTR wnd_extra)
#endif
{
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 */
@ -2589,12 +2584,7 @@ HWND WINAPI SHCreateWorkerWindowA(WNDPROC wndProc, HWND hWndParent, DWORD dwExSt
if (hWnd)
{
SetWindowLongPtrW(hWnd, 0, wnd_extra);
#ifndef __REACTOS__
if (wndProc) SetWindowLongPtrA(hWnd, GWLP_WNDPROC, wndProc);
#else
if (wndProc) SetWindowLongPtrA(hWnd, GWLP_WNDPROC, (LONG_PTR)wndProc);
#endif
}
return hWnd;
@ -2853,45 +2843,28 @@ DWORD WINAPI WhichPlatform(void)
*
* Unicode version of SHCreateWorkerWindowA.
*/
#ifndef __REACTOS__
HWND WINAPI SHCreateWorkerWindowW(LONG wndProc, HWND hWndParent, DWORD dwExStyle,
DWORD dwStyle, HMENU hMenu, LONG msg_result)
#else
HWND WINAPI SHCreateWorkerWindowW(WNDPROC wndProc, HWND hWndParent, DWORD dwExStyle,
DWORD dwStyle, HMENU hMenu, LONG_PTR wnd_extra)
#endif
{
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",
#ifndef __REACTOS__
wndProc, hWndParent, dwExStyle, dwStyle, hMenu, msg_result);
#else
TRACE("(%p, %p, 0x%08x, 0x%08x, %p, 0x%08lx)\n",
wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
#endif
/* If our OS is natively ANSI, use the ANSI version */
if (GetVersion() & 0x80000000) /* not NT */
{
TRACE("fallback to ANSI, ver 0x%08x\n", GetVersion());
#ifndef __REACTOS__
return SHCreateWorkerWindowA(wndProc, hWndParent, dwExStyle, dwStyle, hMenu, msg_result);
#else
return SHCreateWorkerWindowA(wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
#endif
}
/* Create Window class */
wc.style = 0;
wc.lpfnWndProc = DefWindowProcW;
wc.cbClsExtra = 0;
#ifndef __REACTOS__
wc.cbWndExtra = 4;
#else
wc.cbWndExtra = sizeof(LONG_PTR);
#endif
wc.hInstance = shlwapi_hInstance;
wc.hIcon = NULL;
wc.hCursor = LoadCursorW(NULL, (LPWSTR)IDC_ARROW);
@ -2905,14 +2878,8 @@ HWND WINAPI SHCreateWorkerWindowW(WNDPROC wndProc, HWND hWndParent, DWORD dwExSt
hWndParent, hMenu, shlwapi_hInstance, 0);
if (hWnd)
{
#ifndef __REACTOS__
SetWindowLongPtrW(hWnd, DWLP_MSGRESULT, msg_result);
if (wndProc) SetWindowLongPtrW(hWnd, GWLP_WNDPROC, wndProc);
#else
SetWindowLongPtrW(hWnd, 0, wnd_extra);
if (wndProc) SetWindowLongPtrW(hWnd, GWLP_WNDPROC, (LONG_PTR)wndProc);
#endif
}
return hWnd;