This clears up much of the todo list for mspatcha. GetFilePatchSignature* and NormalizeFileForPatchSignature have now been implemented in these changes.
These changes bring better support for things like the Adobe Acrobat installer without the need for things like the winetricks mspatcha.dll native dll override. Still needed is support for interleaved streams in the LZXD decompression logic, however this is a great start to better supporting software installers that use the Windows interface for creating and applying patches to files.
This is the beginning of the fixes required for bug 12501: https://bugs.winehq.org/show_bug.cgi?id=12501
--
v39: mspatcha: Handle PE format errors properly
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870
--
v4: msvfw32: Use the debugstr_fourcc function instead of reimplementing it.
mscms: Use the debugstr_fourcc function instead of reimplementing it.
mciavi32: Use the debugstr_fourcc function instead of reimplementing it.
ddraw: Use the debugstr_fourcc function instead of reimplementing it.
comctl32: Use the debugstr_fourcc function instead of reimplementing it.
include: Introduce wine_dbgstr_fourcc and debugstr_fourcc.
winecoreaudio: Rename wine_dbgstr_fourcc to coreaudio_dbgstr_fourcc.
mfplat: Rename debugstr_fourcc to mf_debugstr_fourcc.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3994
This should implement error page navigation similar to native, which is unfortunately mostly undocumented.
Briefly, native uses a local resource in some DLL (the exact one varies by Windows version and locale, so it's not reliable to test) which has a bunch of html error pages for various errors (404 is a different resource than 405, etc). In Windows XP this is in `shdoclc.dll` (which is where I placed it as well, because we already use it in Wine), in Windows 10 it's somewhere in `system32\en-US\ieframe.dll` (or something like that), for US locale at least.
To keep it simple for now, this only adds one error page called `ERROR.HTM` though, which is generic and displays the error code (given via a query). That said, it should still probably be localized somehow, but I've no idea how to localize html resources…
The error page is navigated with URL of the form `res://C:\windows\system32\.../NAME.HTM#original_url`, and some of the notifications are special cased to return the original_url from the fragment (on native as well, tests included).
--
v2: ieframe: Implement DocObjectService_IsErrorUrl.
ieframe: Send the original URL for error pages in FireDocumentComplete
ieframe: Send the original URL for error pages in FireNavigationComplete2
ieframe: Use the original URL for error pages' address bar.
ieframe: Navigate to a basic error page on failed navigation.
ieframe: Implement IEHTMLWindow2_get_document.
shdoclc: Add a basic generic html page for navigation errors.
mshtml: Implement SuperNavigate undocumented flag 2.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4016
Zhiyi Zhang (@zhiyi) commented about dlls/uxtheme/tests/system.c:
>
> +static void test_ShouldSystemUseDarkMode(void)
> +{
> + DWORD light_theme, light_theme_size = sizeof(light_theme), last_error;
> + BOOL result;
> + LSTATUS ls;
> +
> + pShouldSystemUseDarkMode = (void *)GetProcAddress(GetModuleHandleA("uxtheme.dll"),
> + MAKEINTRESOURCEA(138));
> + if (!pShouldSystemUseDarkMode)
> + {
> + win_skip("ShouldSystemUseDarkMode() is unavailable.\n");
> + return;
> + }
> +
> + ls = RegGetValueW(HKEY_CURRENT_USER,
I think ShouldSystemUseDarkMode() should use SystemUsesLightTheme registry key instead of AppsUseLightTheme. However, Wine currently doesn't set SystemUsesLightTheme. Let's set SystemUsesLightTheme in winecfg/theme.c on_theme_changed() as well. And change the "WinRT app theme" to "WinRT theme". The winecfg changes should be in a separate commit.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3959#note_47848
This series:
- fixes a couple of issues in mach-o modules support
(getting information from system modules in wow setups,
machine information...)
- stops hiding information in some fields between dbghelp
and winedbg (using an extensible solution, where more
information can be shared in the future)
- display elf/mach-o in winedbg (previously mach-o was
reported as elf)
- display PE native vs builtin module information in winedbg
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3975