Wednesday, September 26, 2007 10:45 PM
sandi
In IE7 you cannot use an application to programmatically enumerate IE7 instances in a desktop other than the default desktop
This issue occurs because of a change in behavior in Internet Explorer 7.
In Internet Explorer 6, the ShellWindows object is associated with the following CLSID:
{9BA05972-F6A8-11CF-A442-00A0C90A8F39}
This object is a COM local server that exists for each desktop. When you use the CoCreate function to create a ShellWindows instance, the instance is bound to the server on the desktop where you create the instance. Therefore, the application can enumerate the Internet Explorer 6 windows in all desktops.
In Internet Explorer 7, the HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\ subkey is added together with the RunAs registry entry. And the value of the RunAs registry entry is set to Interactive User. This change in behavior for Internet Explorer 7 causes the ShellWindows instance to be bound to the server on the default desktop even if you create the instance in other desktops.
http://support.microsoft.com/default.aspx/kb/940998
Filed under: Internet Explorer 7