On Mon Jul 21 02:14:39 2025 +0000, Zhiyi Zhang wrote:
> As mentioned above. There is a manifest for comctl32 v5 on Windows. So I
> think it's better to rename it now.
Is there an embedded manifest in comctl32.dll from system32?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8595#note_110482
On Mon Jul 21 02:14:37 2025 +0000, Zhiyi Zhang wrote:
> The issue happens because comctl32 v6 and v5 were both trying to
> register "SysDateTimePick32" due to the "if (is_comctl32_class(
> name->Buffer )) ... else (!RtlFindActivationContextSectionString(...))".
> Because "SysDateTimePick32" is a comctl32 class, the version is not
> appended to the window class. So, comctl32 v6 still tries to register
> "SysDateTimePick32". Removing the else allows comtl32 v6 to get the
> version from its manifest and uses "6.00.xx!SysDateTimePick32". Comctl32
> v5 has no manifest on Wine, so its behavior is the same. On Windows,
> comctl32 v5 also has a manifest, but the `versioned` property is set to
> `no`. You can find it on Windows 10 at
> C:\Windows\WinSxS\Manifests\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.19041.5915_none_793527b5243cb406.manifest
>
> ```
> ...
> <windowClass versioned="no">SysDateTimePick32</windowClass>
> ...
> ```
Wouldn't you need to reference sxs 5.82 version explicitly using application manifest? So unless application requests specific 5.x version (if that's really the purpose of having this manifest) it doesn't matter if our v5 has manifest or not. I think we don't have to care about that at this point.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8595#note_110481
On Mon Jul 21 02:14:38 2025 +0000, Zhiyi Zhang wrote:
> This is because Wine has a mechanism to load built-in DLLs (related to
> WINEDLLOVERRIDES). For example, all Wine built-in DLLs in the wine
> prefix have a built-in DLL signature. When loading such a DLL from the
> prefix, Wine will redirect it to the one in the build dir or the
> installed DLL dir. Please see find_builtin_dll(). This allows developers
> not to update the wine prefix after every rebuild because the ones in
> the build dir are loaded. This mechanism is also responsible for
> selecting native DLLs in the wine prefix or Wine's builtin DLLs in the
> build dir or installed DLL dir, depending on WINEDLLOVERRIDES or
> EXTRADLLFLAGS = -Wb,--prefer-native.
> Then, a problem with comctl32 is that both comctl32 v6 and v5 have the
> same name, "comctl32.dll". So when loading comctl32 from
> C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef\comctl32.dll,
> it gets redirected to "comctl32.dll" in the build dir, which is comctl32
> v5. So for comctl32 v6 to work, we need to add a special case for
> comctl32 v6 and redirect it to "comctl32_v6.dll". Note that
> "comctl32_v6.dll" only exists in the build dir or installed DLL dir, not
> in the wine prefix.
Having this check in ntdll looks too dirty to me. Will it work if we build v6 variant as --prefer-native?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8595#note_110480
On Sun Jul 20 18:46:01 2025 +0000, Joe Souza wrote:
> WCMD_parameter does not handle tab completion. This code here does.
> The example path in the comment in this MR above does not work with tab
> completion in current code. These changes fix that. Try the example
> path with current code and then with my changes here to see for yourself.
To be completely clear about this, create a directory named "[2025] Tax Documents" (without the quotes). Then, type ```"[2025] Ta<tab>```. Without my changes here, note that this is incorrectly completed to "[2025][2025] Tax Documents" (note the doubled "[2025][2025]"). This is mentioned in the original comment for the merge request above, but perhaps it wasn't clear. Next, create a file named something like "fil]e1.txt" (or a file containing pretty much any of the other delimiter characters), and test tab completion with those. The results will be incorrect with current code. My changes here fix that.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8573#note_110453
This MR adds a very basic implementation of `IPropertyDescription` for system defined properties (i.e, the ones in \<propkey.h\>). This is needed to support the [`Properties`](https://learn.microsoft.com/en-us/uwp/api/windows.devices.enumeration.deviceinformation.properties?view=winrt-26100) method for `IDeviceInformation` in Windows.Devices.Enumeration (!6874).
--
v19: propsys: Implement IPropertyDescription for several known system properties.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6892