Prepare for CLSID_QueryAssociations.
JIRA issue: CORE-20467
- Add dll/win32/shell32/evalcmd/
elements.cpp.
- Implement AssocCreateElement
function in elements.cpp.
- Modify shell32.spec.
- Fix shlwapi!AssocCreate by using
AssocCreateElement.
- Add SKGetValueW and
SKSetValueW prototypes into
<shlwapi_undoc.h>.
- Add AssocCreateElement
prototype into <shlwapi_undoc.h>.
- Add some CLSIDs into
<shlguid_undoc.h>.
- Add some resource strings into
shlwapi.
- Add AssocGetPerceivedType
prototype into <shlwapi.h>.
- Add AssocCreateElement
testcase into shell32_apitest.
JIRA issue: CORE-20617
@learn-more found #9157 breaks the build as follows:
> error C2220: the following warning is treated as an error
> warning C4163: 'strncmp': not available as an intrinsic function
> warning C4163: 'strncpy': not available as an intrinsic function
_MSC_VER=1932 was not the version that the intrinsic functions
(strncmp, strncpy, wcsncmp, wcsncpy) added.
Using Compiler Explorer could detect the correct version:
_MSC_VER=1950.
To be used by NT6 apis in kernel32
This is not great. It works, but it puts stuff into the lib that shouldn't be in there. We need it, because the includes need the generated files.
Maybe a dependency could solve that.
This function has an important role
for new ShellExecute implementation.
JIRA issue: CORE-19278
- Add evalcmd static library into
dll/win32/shell32/evalcmd.
- Implement
SHEvaluateSystemCommandTemplate
in evalcmd.
- Link evalcmd to shell32 and shlwapi.
- Modify shell32.spec and shlwapi.spec.
- Add prototype to <shellapi.h>.
- Add
SHEvaluateSystemCommandTemplate
testcase.
- Define PathIsAbsolute inline
function in <shlwapi_undoc.h>
and use it.
- Move CertEnumSystemStoreLocation to reactos/store.c
- Add emulation layer for unixlib calls
- Implement enumeration of root certificate store in the registry
TODO:
- Implement remaining unixlib functionality using mbedtls or similar
Previously this was mixed with vcruntime, with some objects being shared. But this is messy. Instead use a separate library and link ucrtbase to this as well. This also matches more closely how native libraries are organized, where vcstartup is merged into the CRT import libraries, while vcruntime is merged into the static CRT libraries.
CORE-20657, CORE-13525
Fix an issue in `SetupGetBinaryField()` that made the GUI installer unable to read INF files properly.
For this reason, all the binary values in the registry on a fresh ReactOS installation were all set to `0x00`.
The reason was that the custom HEX parser in Wine's `SetupGetBinaryField()` is broken.
As a solution, we can replace it with a call to C's standard `wcstoul()` function.
(Note that Wine fixed this problem in wine-11, still with a hand-made hex-value parser...)
This replaces implementations that no longer exist in Wine-10.0's shlwapi
Also forward some exports to kernelbase_ros. This is to prevent them from being reimported from shell32, which forwards them here.
It is not exactly what Windows does (which exports the import stubs), but it should be good enough for now.