Commit graph

12 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto 14599b0a37
[SHELL32][SHLWAPI] Forward shell32.ShellMessageBoxW directly to shlwapi.ShellMessageBoxWrapW. (#3179)
This makes ShellMessageBoxW use the correct implementation where the
text buffer size is dynamic, instead of having a too small hardcoded
size.

Fixes CORE-17271.
See also PR #3172 by Kyle Katarn, supplemented with some ideas from
Mark Jansen.

However we cannot straightforwardly implement ShellMessageBoxA around
ShellMessageBoxW, by converting some parameters from ANSI to UNICODE,
because there may be some variadic ANSI strings, associated with '%s'
printf-like formatters inside the format string, that would also need
to be converted; however there is no way for us to find these and perform
the conversion ourselves.
Therefore, we re-implement ShellMessageBoxA by doing a copy-paste ANSI
adaptation of the shlwapi.ShellMessageBoxWrapW function.

Note that, on Vista+ onwards, shlwapi implements both ShellMessageBoxA/W,
and shell32 directly forwards these exports to shlwapi, thus avoiding
these workarounds.

[PSDK] Explicily use WINAPIV for the variadic ShellMessageBoxA/W functions.

[INCLUDE/REACTOS] Add ShellMessageBoxWrapW in shlwapi_undoc.h .
2020-09-13 22:44:58 +02:00
Serge Gautherie 703c56beb3
[REACTOS] RegQueryValueExW() wants bytes, not chars (#2876)
Cherry-pick:
a359e02666
0662da18b8
e4e5eda3d9

CORE-9665

Co-authored-by: Victor Martinez <vicmarcal@gmail.com>
2020-06-01 12:06:49 +03:00
Katayama Hirofumi MZ d3a550a6a9
[SHLWAPI] Implement SHIsLowMemoryMachine (#2783)
Implement shlwapi!SHIsLowMemoryMachine function.
2020-05-14 09:47:21 +09:00
Katayama Hirofumi MZ 6bd0c70f15 [SHLWAPI] Sorry, I updated wrong function at 5a440b2 (#2430)
CORE-13950
2020-03-11 10:41:39 +09:00
Katayama Hirofumi MZ 5a440b2d90 [SHLWAPI] Follow-up of #2430
Add a NULL check in SHLockSharedEx function. CORE-13950
2020-03-11 07:36:07 +09:00
Katayama Hirofumi MZ 7fcdf0be03
[SHLWAPI] Implement SHLockSharedEx function (#2430)
- Implement shlwapi!SHLockSharedEx function.
- Modify shlwapi.spec file (some argument conversions from long to ptr).
CORE-13950
2020-03-11 00:03:45 +09:00
Amine Khaldi d3fd5bdd97 [SHLWAPI] Sync with Wine Staging 3.3. CORE-14434 2018-03-04 13:17:11 +01:00
Hermès Bélusca-Maïto eb3987e172
[SHLWAPI] Import wine commit 2c163225730e88 as addendum to the SHCreateWorkerWindowW/A fixes from commit 770bf93. 2018-02-13 22:30:59 +01:00
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
Amine Khaldi b7250325e4 [SHLWAPI] Sync with Wine 3.0. CORE-14225 2018-01-20 13:15:19 +01:00
Amine Khaldi 7d346cbc73 [SHLWAPI] Highlight a difference and mark the module as synced with Wine Staging 2.16. CORE-13762 2017-10-08 12:09:52 +01:00
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
Renamed from reactos/dll/win32/shlwapi/ordinal.c (Browse further)