https://bugs.winehq.org/show_bug.cgi?id=41398
--- Comment #16 from Andrew Smart svor1988@gmail.com --- Thank you very much Bruno and Erich! You made the path very clear to me.
I just downloaded wine-2.0-rc2 (the zip) and built it. I renamed the native shlwapi and forwarded UrlCombineW to it.
Looks like the native UrlCombineW does the same thing. As proof I did this right I put a question mark "return-?" in the trace: 0051:trace:shell:UrlCombineW (base L"http://nydus.battle.net/S2/enUS/client/regions?build=enUS&targetRegion=0...", Relative L"http:///service/s2/regionsxml/regions.xml", Combine size 0, flags 24000000) 0051:trace:shell:UrlCombineW return-? len=42, (null) 0051:trace:shell:UrlCombineW (base L"http://nydus.battle.net/S2/enUS/client/regions?build=enUS&targetRegion=0...", Relative L"http:///service/s2/regionsxml/regions.xml", Combine size 42, flags 24000000) 0051:trace:shell:UrlCombineW return-? len=41, L"http:///service/s2/regionsxml/regions.xml"
So, I guess the issue is elsewhere.
Further proof: HRESULT WINAPI UrlCombineW(LPCWSTR pszBase, LPCWSTR pszRelative, LPWSTR pszCombined, LPDWORD pcchCombined, DWORD dwFlags) { //...
TRACE("(base %s, Relative %s, Combine size %d, flags %08x)\n", debugstr_w(pszBase),debugstr_w(pszRelative), pcchCombined?*pcchCombined:0,dwFlags); ret = SHLWAPI_NATIVE_UrlCombineW(pszBase, pszRelative, pszCombined, pcchCombined, dwFlags); TRACE("return-? len=%d, %s\n", *pcchCombined, debugstr_w(pszCombined)); return ret;
When using the native DLL, at first I got: 000b:trace:seh:raise_exception code=80000100 flags=1 addr=0x7bc5eb4c ip=7bc5eb4c tid=000b wine: Call from 0x7bc5eb4c to unimplemented function ntdll.dll.EtwUnregisterTraceGuids, aborting
So I had to define ntdll.EtwUnregisterTraceGuids, which is the same thing as ADVAPI32.UnregisterTraceGuids (and the ADVAPI32 one forwards to the ntdll one).
I'll tinker some more and see what I can find out.