Hi Zhyi,
This is another and final stub that should solve bug https://bugs.winehq.org/show_bug.cgi?id=58747
There is one more (puzzling) issue that is now left. When I opened the bugreport some week ago, I just quickly put the entries in uxtheme.spec in the beginning of that file and the program started then. Now I've put them in the (alphabetically) correct place, and now the program crashes with an acces violation.
With trial and error I found that placing the entry just before DrawThemeBackground makes the program start, and just after DrawThemeBackground makes it crash. It seems that DrawThemeBackground can also be imported by ordinal, when I do this the program starts again (no crash). I tested DrawThemeBackground can be imported by ordinal 57, but on windows 7 it's 54, and on windows 11 it's 55... But also a "fake ordinal" like 199 (see below) is enough to make the program start.
Do you have an idea why the program crashes, and what a possible fix could be, given the above behaviour?
Fake ordinal patch, not correct, but enough to start the program...:
diff --git a/dlls/uxtheme/uxtheme.spec b/dlls/uxtheme/uxtheme.spec index 38224a1f0e7..cca8c3e8ea1 100644 --- a/dlls/uxtheme/uxtheme.spec +++ b/dlls/uxtheme/uxtheme.spec @@ -60,7 +60,7 @@ @ stdcall BufferedPaintStopAllAnimations(ptr) @ stdcall BufferedPaintUnInit() @ stdcall CloseThemeData(ptr) -@ stdcall DrawThemeBackground(ptr ptr long long ptr ptr) +199 stdcall DrawThemeBackground(ptr ptr long long ptr ptr) @ stdcall DrawThemeEdge(ptr ptr long long ptr long long ptr) @ stdcall DrawThemeIcon(ptr ptr long long ptr ptr long) @ stdcall DrawThemeParentBackground(ptr ptr ptr)