Microsoft KB Archive/940998

= In Internet Explorer 7, you cannot use an application to programmatically enumerate Internet Explorer 7 instances in a desktop other than the default desktop =

Article ID: 940998

Article Last Modified on 10/31/2007

-

APPLIES TO


 * Windows Internet Explorer 7 for Windows XP
 * Windows Internet Explorer 7 for Windows Server 2003
 * Windows Internet Explorer 7 in Windows Vista

-



Important This article contains information about how to modify the registry. Make sure that you back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:

322756 How to back up and restore the registry in Windows XP and Windows Vista



SYMPTOMS
Consider the following scenario:
 * On a computer that has Windows Internet Explorer 7 installed, you create a new desktop.
 * You use an application to programmatically enumerate the Internet Explorer 7 instances that are opened in this desktop.

In this scenario, the application cannot correctly enumerate these Internet Explorer 7 instances.

Note This problem does not occur in Microsoft Internet Explorer 6.



CAUSE
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  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.



WORKAROUND
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.

Workaround for Windows XP and for Windows Server 2003
To work around this issue in Windows XP or in Windows Server 2003, follow these steps:  Click Start, click Run, type regedit, and then click OK. Locate the following registry subkey, and then click it:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{9BA05972-F6A8-11CF-A442-00A0C90A8F39}

 Delete the AppID registry entry. Exit Registry Editor.

Workaround for Windows Vista
To work around this issue in Windows Vista, follow these steps:  Install the MS07-033 cumulative security update for Internet Explorer (KB933566), or install a later cumulative security update for Internet Explorer. For more information about the MS07-033 cumulative security update, click the following article number to view the article in the Microsoft Knowledge Base:

933566 MS07-033: Cumulative Security Update for Internet Explorer

</li> Install update KB935855.

Notes <ul> This update enables Internet Explorer 7 to run on a desktop other than the default desktop.</li> After you install this update, the FEATURE_MULTI_DESKTOP registry entry will be added under the following registry subkey:

The value of this registry entry is 1.</li> After you install update KB935855, the AppIDFlags registry entry will be added under the following registry subkey:

The value of this registry entry is 1.</li></ul> </li> Restart the computer.</li></ol>

<div class="status_section">

STATUS
This behavior is by design.

<div class="moreinformation_section">

MORE INFORMATION
A desktop is a securable object that has a logical display surface. A desktop may contain user interface items such as windows and menus. For more information, visit the following Microsoft Developer Network Web site:

http://msdn2.microsoft.com/en-us/library/ms682573.aspx

For more information about the AppID registry entry, visit the following Microsoft Developer Network Web site:

http://msdn2.microsoft.com/en-us/library/ms682359.aspx

Keywords: kbtshoot kbprb kbexpertiseadvanced KB940998

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.