http://bugs.winehq.org/show_bug.cgi?id=28663
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |shell32 Summary|Adobe Reader X help fails |Adobe Reader X online help |to load |fails to load due to | |IQueryAssociations::GetStri | |ng not properly handling | |URL protocols
--- Comment #3 from Anastasius Focht focht@gmx.net 2012-01-09 16:35:14 CST --- Hello,
confirming, still present.
The problem seems related how protocol associations are currently handled using IQueryAssociations (Wine registry).
--- snip --- ... 0024:CALL ahclient.InitializeAdobeHelpClient(0032f718,0032f6f6,00000002,00000002,0032f718,00000100) ret=00b95261 0024:RET ahclient.InitializeAdobeHelpClient() retval=00000000 ret=00b95261 0024:CALL ahclient.DisplayAdobeHelpClientPage(<unknown, check return>) ret=00b9528e 0024:trace:wininet:InternetOpenA ("HIL", 0x00000001, (null), (null), 0x00000000) 0024:trace:wininet:InternetOpenW (L"HIL", 1, (null), (null), 0) 0024:trace:wininet:InternetOpenW access type : INTERNET_OPEN_TYPE_DIRECT 0024:trace:wininet:InternetOpenW flags : 0024:trace:wininet:InternetOpenW returning 0x162118 0024:trace:wininet:InternetOpenUrlA 0024:trace:wininet:InternetOpenUrlW (0x1, L"http://help.adobe.com/en_US/reader/X/using/AH_HOME.html", (null), 00000000, 80000000, 00000000) 0024:trace:wininet:InternetOpenUrlW flags : INTERNET_FLAG_RELOAD 0024:trace:wininet:WININET_AddRef 0x162118 -> refcount = 2 0024:trace:wininet:get_handle_object handle 1 -> 0x162118 0024:trace:wininet:INTERNET_InternetOpenUrlW (0x162118, L"http://help.adobe.com/en_US/reader/X/using/AH_HOME.html", (null), 00000000, 80000000, 00000000) 0024:trace:wininet:InternetCrackUrlW (L"http://help.adobe.com/en_US/reader/X/using/AH_HOME.html" 55 0 0x32e950) ... 0024:trace:wininet:CommitUrlCacheEntryW (L"http://help.adobe.com/en_US/reader/using/AH_HOME.html", L"C:\users\focht\Local Settings\Temporary Internet Files\Content.IE5\SSCR6K86\AH_HOME[4]", ..., ..., 1, 0x165bb0, 225, (null), (null)) 0024:trace:wininet:CommitUrlCacheEntryInternal (L"http://help.adobe.com/en_US/reader/using/AH_HOME.html", L"C:\users\focht\Local Settings\Temporary Internet Files\Content.IE5\SSCR6K86\AH_HOME[4]", ..., ..., 1, 0x164d00, 0, (null), (null)) ... 0024:trace:shell:AssocQueryStringW (0x0,2,L"http",L"open",0x32f09c,0x32f094) 0024:trace:shell:AssocCreate ({a07034fd-6caa-4954-ac3f-97a27216f98a},{c46ca590-3c3f-11d2-bee6-0000f805ca57},0x32edc4) 0024:trace:shell:HCR_RegOpenClassIDKey CLSID{c46ca590-3c3f-11d2-bee6-0000f805ca57} 0024:trace:shell:HCR_GetClassNameA -- () 0024:trace:shell:HCR_RegOpenClassIDKey CLSID{a07034fd-6caa-4954-ac3f-97a27216f98a} 0024:trace:shell:HCR_GetClassNameA -- (Query file associations) 0024:trace:shell:SHCoCreateInstance ((nil),{a07034fd-6caa-4954-ac3f-97a27216f98a} (Query file associations),unk:(nil),{c46ca590-3c3f-11d2-bee6-0000f805ca57} (unknown),0x32edc4) 0024:trace:shell:HCR_RegOpenClassIDKey CLSID{a07034fd-6caa-4954-ac3f-97a27216f98a} 0024:trace:shell:HCR_GetClassNameA -- (Query file associations) 0024:trace:shell:DllGetClassObject CLSID:{a07034fd-6caa-4954-ac3f-97a27216f98a} (Query file associations),IID:{00000001-0000-0000-c000-000000000046} (IID_IClassFactory) 0024:trace:shell:DllGetClassObject index[8] 0024:trace:shell:IDefClF_fnConstructor (0x160b48)(null) 0024:trace:shell:IDefClF_fnQueryInterface (0x160b48)->({00000001-0000-0000-c000-000000000046} (IID_IClassFactory)) 0024:trace:shell:IDefClF_fnRelease (0x160b48)->(count=2) 0024:trace:shell:DllGetClassObject -- pointer to class factory: 0x160b48 0024:trace:shell:HCR_RegOpenClassIDKey CLSID{c46ca590-3c3f-11d2-bee6-0000f805ca57} 0024:trace:shell:HCR_GetClassNameA -- () 0024:trace:shell:IDefClF_fnCreateInstance 0x160b48->((nil),{c46ca590-3c3f-11d2-bee6-0000f805ca57} (unknown),0x32edc4) 0024:trace:shell:SHAlloc 16 bytes at 0x160b68 0024:trace:shell:IQueryAssociations_fnQueryInterface (0x160b68,{c46ca590-3c3f-11d2-bee6-0000f805ca57},0x32edc4) 0024:trace:shell:IQueryAssociations_fnAddRef (0x160b68)->(ref before=0) 0024:trace:shell:IQueryAssociations_fnQueryInterface Returning IQueryAssociations (0x160b68) 0024:trace:shell:QueryAssociations_Constructor returning 0x160b68 0024:trace:shell:IDefClF_fnRelease (0x160b48)->(count=1) 0024:trace:shell:IDefClF_fnRelease -- destroying IClassFactory(0x160b48) 0024:trace:shell:SHCoCreateInstance -- instance: 0x160b68 0024:trace:shell:IQueryAssociations_fnInit (0x160b68)->(0,L"http",(nil),(nil)) 0024:trace:shell:IQueryAssociations_fnGetString (0x160b68,0x 0,0x 2,L"open",0x32f09c,0x32f094) 0024:trace:shell:IQueryAssociations_fnRelease (0x160b68)->(ref before=1) 0024:trace:shell:IQueryAssociations_fnRelease Destroying IQueryAssociations (0x160b68) ... 0024:RET ahclient.DisplayAdobeHelpClientPage() retval=00000002 ret=00b9528e --- snip ---
Debugging session:
--- snip --- Wine-dbg>bt Backtrace: =>0 0x6c81e365 ASSOC_GetValue+0x81(hkey=0x134, pszText=0x33e96c) [/home/focht/projects/wine/wine-git/dlls/shell32/assoc.c:215] in shell32 (0x0033e930) 1 0x6c81e478 ASSOC_GetCommand+0x2e(This=0x15c2c0, pszExtra="open", ppszCommand=0x33e9d0) [/home/focht/projects/wine/wine-git/dlls/shell32/assoc.c:245] in shell32 (0x0033e9a0) 2 0x6c81e859 ASSOC_GetExecutable+0x5b(This=0x15c2c0, pszExtra="open", path="k", pathlen=0x104, len=0x33ecb8) [/home/focht/projects/wine/wine-git/dlls/shell32/assoc.c:319] in shell32 (0x0033e9f0) 3 0x6c81ecd8 IQueryAssociations_fnGetString+0x23d(iface=0x15c2c0, cfFlags=0, str=ASSOCSTR_EXECUTABLE, pszExtra="open", pszOut="????t", pcchOut=0x33f054) [/home/focht/projects/wine/wine-git/dlls/shell32/assoc.c:432] in shell32 (0x0033ed50) 4 0x685c20a7 AssocQueryStringW+0x16a(cfFlags=0, str=ASSOCSTR_EXECUTABLE, pszAssoc="http", pszExtra="open", pszOut="????t", pcchOut=0x33f054) [/home/focht/projects/wine/wine-git/dlls/shlwapi/assoc.c:197] in shlwapi (0x0033eda0) 5 0x02f635b0 in ahclient (+0x135af) (0x0033f26c) 6 0x02f55a15 in ahclient (+0x5a14) (0x0033f678) 7 0x00b9528e in acrord32 (+0x42528d) (0x0033f6b0) --- snip ---
http://source.winehq.org/git/wine.git/blob/f948478f28b8a7c6beb364745b143361c...
IQueryAssociations_fnInit() opens "http" under HKEY_CLASSES_ROOT. ASSOC_GetCommand() -> ASSOC_GetValue() tries to read the "file type" value for "http" from default key. This obviously fails because the default value is empty (also for other protocols). Not sure what data is supposed to be here.
The current ASSOC_GetCommand() registry handling looks strange as if not really suitable/prepared to handle protocol style associations.
With that code the only way to get the correct shell command is setting default key to "http" but this looks wrong.
Registry export for "http":
--- snip --- [HKEY_CLASSES_ROOT\http] "URL Protocol"=""
[HKEY_CLASSES_ROOT\http\shell]
[HKEY_CLASSES_ROOT\http\shell\open]
[HKEY_CLASSES_ROOT\http\shell\open\command] @=""C:\windows\system32\winebrowser.exe" -nohome"
[HKEY_CLASSES_ROOT\http\shell\open\ddeexec] @=""%1",,-1,0,,,," "NoActivateHandler"=""
[HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application] @="IExplore"
[HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Topic] @="WWW_OpenURL" --- snip ---
$ sha1sum AdbeRdr1001_en_US.exe e71d9871ea3e6168570e0677a50495c40f9213b2 AdbeRdr1001_en_US.exe
$ wine --version wine-1.3.36-223-gc7cc9a1
Regards