Hi Zhiyi, it seems it's all more complicated then I thought. The tests failed and it seems i put the wrong function names at those ordinals.
The thread below at Autohotkey suggests that the ordinals belong to some undocumented functions ShouldAppsUseDarkMode, AllowDarkModeForWindow and SetPreferredAppMode, apparently they can only be imported by ordinal.
So should I now only test that they can be imported by ordinal (something like
proc = GetProcAddress(uxtheme, MAKEINTRESOURCEA(func[i].ordinal));
ok(proc, "getting function by ordinal failed"); )?
)
autohotkey thread: https://www.autohotkey.com/boards/viewtopic.php?t=94661&start=20
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4043#note_48238
--
v5: uiautomationcore: Use EVENT_OBJECT_DESTROY to remove HWNDs from the COM API focus change HWND map.
uiautomationcore: Use EVENT_OBJECT_FOCUS to advise HWND providers of focus change events in the COM API.
uiautomationcore: Query EVENT_OBJECT_FOCUS HWND for a serverside provider if there is a registered focus change event handler.
uiautomationcore/tests: Add tests for IUIAutomationFocusChangedEventHandler event advisement behavior.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4024
I marked this a draft because it may be a somewhat orthogonal step, but IRRC @giomasce suggested it.
While a deref's data type can be computed from the variable's data type
as long as the deref is still represented as a path (as we did with
hlsl_deref_get_type()), we need the deref.data_type field for when the
deref is represented as an offset.
While we could get rid of this deref.data_type in the future, if we manage to transform
the HLSL IR instructions directly to VSIR withot requiring lowering the
derefs to their offset representation, this would take a while.
So, this patch makes the deref.data_type field available during the
whole lifetime of the deref. Which makes deref.data_type easier to
understand (since it can be used anytime now) and we no longer have
to call hlsl_deref_get_type().
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/343
Resolves https://bugs.winehq.org/show_bug.cgi?id=9127 . (Some of the named programs in that issue may require additional currently-missing functionality, I didn't check; but if so, that's separate issues.)
Tested with
- winetest on Windows 7
- winetest on Windows 10
- winetest in Wine, of course
- microkiri https://bugs.winehq.org/show_bug.cgi?id=9127#c102
- Wagamama High Spec Trial Edition https://wagahigh.com/download_trial.php#normal (ダウンロード means download)
- Ninki Seiyuu no Tsukurikata Trial https://archive.org/details/sayou_trial
(WMV files in microkiri and Wagamama don't work, but that's separate issues. Also, they need the LC_ALL=ja_JP env, or they throw various goofy errors.)
--
v9: Revert "ntdll: Support relocating the main exe."
quartz/tests: Add tests for CLSID_CMpegVideoCodec.
quartz/tests: Add tests for new CLSID_MPEG1Splitter functionality.
winegstreamer: Improve and clean up some debug logs.
winegstreamer: Implement a little more of IAMStreamSelect in CLSID_MPEG1Splitter.
winegstreamer: Implement CLSID_CMpegVideoCodec.
winegstreamer: Add program stream and video output support to CLSID_MPEG1Splitter.
winegstreamer: Add WG_MAJOR_TYPE_VIDEO_MPEG1 media type.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938
```
+ void *proc;
+ int i;
+ HMODULE uxtheme = GetModuleHandleA("uxtheme.dll");
+ static const struct
+ {
+ const char *name;
+ int ordinal;
+ }
+ func[] =
+ {
+ {"DrawThemeBackgroundEx", 47},
+ {"IsThemeDialogTextureEnabled", 132},
+ {"IsThemePartDefined", 133},
+ {"SetThemeAppProperties", 135}
+ };
```
Let's put the static const test data first.
And let's sort the declarations, like this.
```
+ HMODULE uxtheme;
+ void *proc;
+ int i;
+
+ uxtheme= GetModuleHandleA("uxtheme.dll");
```
```
+ for (i = 0; i < ARRAY_SIZE(func); i++)
+ {
+ proc = GetProcAddress(uxtheme, MAKEINTRESOURCEA(func->ordinal));
+ ok(proc == GetProcAddress(uxtheme, func->name), "Expected %s at ordinal %u\n", func->name, func->ordinal);
+ }
```
You're not using i at all so you're just testing the first function.
```ok(proc == GetProcAddress(uxtheme, func->name), "Expected %s at ordinal %u\n", func->name, func->ordinal);```
"Expected %s at ordinal %u\n" -> "Expected %s at ordinal %d.\n"
You can remove the ordinal tests for DrawThemeBackgroundEx() in test_DrawThemeBackgroundEx().
Thank you for working on this by the way.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4043#note_48211