reactos/sdk
Hermès Bélusca-Maïto 770bf93be3
[SHLWAPI] Improvements for SHCreateWorkerWindowW/A() prototypes + fix x64-bit compatibility. Sent upstream.
[SHLWAPI] Refactor the SHCreateWorkerWindowW() prototype to match its ANSI SHCreateWorkerWindowA() counterpart.

The last parameter is really to be understood as an extra window data, and not a "message result" (as it would be the case for dialog window procedure).
That is why I also remove the mention of "DWLP_MSGRESULT" in the SetWindowLongPtrW() call.
SHCreateWorkerWindowA() had it OK but SHCreateWorkerWindowW() did not.

------------------

[SHLWAPI] Make SHCreateWorkerWindowA() and SHCreateWorkerWindowW() x64-compatible.

The first parameter of these functions is a pointer to a window procedure, having a definite prototype, so employ a correct typedef WNDPROC,
which ensures both correct pointer size and parameter type enforcement.
This also ensures that we use instead a correct pointer size, since otherwise LONG remains 32-bits for Windows compatibility on x64 platforms.
The wndProc parameter is thus casted to LONG_PTR to comply with the SetWindowLongPtrA/W calls.

In SHCreateWorkerWindowW(), the last "wnd_extra" parameter should also be LONG_PTR to be able to pass 64-bit data pointer on x64 platforms.
Therefore fix also setting the wc.cbWndExtra size. One should note that the ANSI SHCreateWorkerWindowA() function had everything OK already.
2018-02-13 00:13:47 +01:00
..
cmake [GDIPLUS] Add it to winsxs. 2018-01-27 02:45:50 +02:00
include [SHLWAPI] Improvements for SHCreateWorkerWindowW/A() prototypes + fix x64-bit compatibility. Sent upstream. 2018-02-13 00:13:47 +01:00
lib [CONUTILS] Relax the enforcement of using FORMAT_MESSAGE_MAX_WIDTH_MASK in the ConMsg* and ConResMsg* functions. 2018-02-11 18:10:08 +01:00
tools [XML2SDB] Parse Flags. 2018-01-27 15:12:24 +01:00