[Bug 29014] Internet Explorer 7 and 8 crash on startup due to unimplemented function apphelp.dll.ApphelpCheckShellObject

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Nov 7 17:02:05 CST 2011


http://bugs.winehq.org/show_bug.cgi?id=29014

--- Comment #4 from Anastasius Focht <focht at gmx.net> 2011-11-07 17:02:05 CST ---
Hello Austin,

the signature in spec file needs correction, last parameter is ptr type.
It might be useful to log out parameters passed into stub to know which object
is being checked (REFCLSID -> debugstr_guid() etc.)

Returning "FALSE" by default might not be a good idea.

MSDN: http://msdn.microsoft.com/en-us/library/bb432180.aspx

--- quote ---
Return value

FALSE if the object should be blocked from instantiating; TRUE otherwise.
Remarks

This is a helper function for Explorer and Internet Explorer that allows those
applications to detect bad extension objects and either block them from running
or fix them.

If the database indicates that a shim should be used to fix the extension and
bShimIfNecessary is TRUE, this function loads Shimeng.dll and applies the fix.
...
--- quote ---

Basically you tell IE to block every shell extension.
As long as Wine doesn't do shimming it should behave as if the API is not
present meaning that all extensions are allowed to be instantiated - even the
bad guys.

Example "FALSE":

"7b8a2d94-0ac9-11d1-896c-00c04fb6bfc4" = CLSID_SecurityManager

--- snip ---
WINEDEBUG=+tid,+seh,+relay,+apphelp wine 'C:\Program Files\\Internet
Explorer\\iexplore'
...
0029:Call KERNEL32.LoadLibraryA(77fc9340 "appHelp.dll") ret=77f71734
...
0029:Ret  KERNEL32.LoadLibraryA() retval=7ddb0000 ret=77f71734 
...
0029:Call KERNEL32.GetProcAddress(7ddb0000,77fc96aa "ApphelpCheckShellObject")
0029:Ret  KERNEL32.GetProcAddress() retval=7ddbb7a4 ret=77f7166a
0029:Call apphelp.ApphelpCheckShellObject(777693f0,00000001,016acc38)
ret=77f69412
0029:fixme:apphelp:ApphelpCheckShellObject stub:
{7b8a2d94-0ac9-11d1-896c-00c04fb6bfc4}, 1, 0x16acc38)
0029:Ret  apphelp.ApphelpCheckShellObject() retval=00000000 ret=77f69412 
...
<object never instanciated>
--- snip ---

Example "TRUE":

--- snip ---
WINEDEBUG=+tid,+seh,+relay,+apphelp wine 'C:\Program Files\\Internet
Explorer\\iexplore'
...
0033:Call KERNEL32.LoadLibraryA(77fc9340 "appHelp.dll") ret=77f71734
...
0033:Ret  KERNEL32.LoadLibraryA() retval=7dda0000 ret=77f71734
0033:Call KERNEL32.GetProcAddress(7dda0000,77fc96aa "ApphelpCheckShellObject")
ret=77f7166a
0033:Ret  KERNEL32.GetProcAddress() retval=7ddb07a4 ret=77f7166a
0033:Call apphelp.ApphelpCheckShellObject(777693f0,00000001,016acc38)
ret=77f69412
0033:fixme:apphelp:ApphelpCheckShellObject stub:
{7b8a2d94-0ac9-11d1-896c-00c04fb6bfc4}, 1, 0x16acc38)
0033:Ret  apphelp.ApphelpCheckShellObject() retval=00000001 ret=77f69412
0033:Call ole32.CoCreateInstance(777693f0,00000000,00000001,77769400,016acc74)
ret=77f6942c 
...
0033:Call advapi32.RegOpenKeyExW(80000000,016aca0e
L"CLSID\\{7B8A2D94-0AC9-11D1-896C-00C04FB6BFC4}",00000000,00020019,016aca68)
ret=7e5a6eeb
...
0033:Call advapi32.RegOpenKeyExW(80000001,6141a588
L"Software\\Microsoft\\Windows\\CurrentVersion\\Internet
Settings\\ZoneMap\\",00000000,00020019,001ede68) ret=61413393 
...
0033:Ret  ole32.CoCreateInstance() retval=00000000 ret=77f6942c 
...
--- snip ---

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list