Visual C++ team has discovered that after installing the current release of Internet Explorer (Internet Explorer 8), some VC++ wizards do not function correctly. The products affected are Visual Studio 2005 and Visual Studio 2008. Following are the affected wizards:
- Add Function
- Add Variable
- Smart Device – New Project Creation
- Smart Device – Add Class
Invoking any of the above wizards in VS2005 or VS2008 will pop up a script error if IE8 is installed on the machine. We have a workaround for those who have encountered this error.
Please follow the following steps:
- Open regedit (on a 64-bit OS, open the 32-bit regedit)
- Under “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones”, create a new key called 1000 (if it isn't already there)
- Under 1000, create a DWORD entry with:
o Name = 1207
o Type = REG_DWORD
o Data = 0x000000
For the workaround to work on VS2005 however, the VS2005 SP1 (and VS2005 SP1 Update for Windows Vista) has to be installed.
Following is a brief explanation of the problem and the workaround:
The VC++ Wizards Engine implements the IInternetSecurityManager interface. In this implementation it allows or disallows specific actions under certain policies that Internet Explorer queries it about. In IE8 a custom Security Manager now also gets queried about the URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION policy which IE previously did not delegate to custom security managers when the engine wasn’t running in the iexplore.exe process. The IE engine then fails this action because we don’t have a policy entry for it in the custom zone for VC++ Wizards. We are still investigating whether this change in IE8 is by design and will possibly be addressing it by a fix in either the Wizard or IE components depending on the outcome.
The above workaround lets the policy 1207 (URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION) to be allowed in zone 1000 (custom zone of VC++ Wizards engine). This allows the wizard code to work as intended.
We apologize for the inconvenience this issue may have caused you.
Visual C++ Team
The Internet Explorer team has released a security update to IE as mentioned in the IE blog:
This update also fixes the problem that caused some Visual Studio wizards to pop up a script error. After applying this update, the earlier workaround in the registry is no longer required, and the wizards should work fine.
@foxbat121: I guess Microsoft needs to know which help pages do not work.
I use MSDN for VS 2008 SP1 and didn't stumble about one yet.
- Add Function
- Add Variable
VS2008 SP1 (Version 9.0.30729.1 SP)
Windows XP SP3
IE Version 8.0.6001.18702
Hello Torsten Koehler,
Could you please verify that you have applied the registry fix correctly. Someone else had earlier reported using incorrect number in the registry (the correct entry is 1207).
Also, could you please let us know if you are using a 32bit or a 64bit OS?
The absolute pathetic speed of the Visual Studio Dialogs and their very unstable nature have kept me from upgrading from V6.0 for years now and I can tell of of dozens and dozens of programmers who still use V6.0 for this very reason. I can make your dialogs break in many different ways that never happen under V6.0, even something simple as moving an enum declaration around the class can cause them to fail.
The biggest single upgrade you could do to these dialogs is to revert them back to CDialog classes and return some stability and speed back to Visual Studio.
No joy here either...
I had the problem with IE7, so I figured I'd update to IE8, and maybe the workaround would work -- but no go -- same error messages on:
I had the same error when adding properties or methods using the ATL wizard.
I had XP sp3, Visual Studio 2008 90 day trial and IE8. The registry fix did not help at all.
Uninstalling IE8 made the wizard working (it does not complain about the error anymore).
I applied the patch, restarted my computer, cleaned up my projects, but that's still doesn't work when I try to create a dialog in the class wizard (that doesn't work when I try to add a variable to a dialog neither).
XP Pro SP3, VS 2008 SP1, IE8
Nic Wilson - I do concur. Well said.
The patch fixed the problem for me.
The posters commenting on VC6 having the most robust tools are right. I have been working on a ported project from VC6 for a year and a half now, specifically so that I can mix managed and unmanaged code and get access to a bunch of C# that we have. But the wizards and dialogs - they often hang my build so most of the time I just don't bother. I don't know why this has gone backwards.... it is like young C# coders _need_ those wizards, and the old (and no doubt we are older) C++ codgers will just do it by hand. Frustrating.
I noticed that some people are seeing this problem despite the registry workaround. I would request everyone seeing the problem to log bugs through Microsoft Connect with proper details:
- OS Version with SP details
- VS Version with SP details
- 32/64 bit
- Specific wizards that are failing
- Any registry setting which might prevent reading from HKCU (Current User) and therefore mandate reading the policies from HKLM (Local Machine)
Any such information will be useful. We will try to get back to you as soon as possible.
I have tried the method you gived above, but it doesn't work
create "Smart Device" project,
my ie version: ie7
And I intalled Microsoft Windows SDK for vista, does that matter?
Ich kann das nicht glauben!
Welche Entwicklungsumgebung wird bei MS eingesetzt?
VS2008 kann es nicht sein, sonst hätte man dieses Problem nicht in die Welt gesetzt!
Euer Registry-Tip hatte nix gebracht, deshalb habe ich eine Systemwiederherstellung durchgeführt, mit dem Erfolg das der IE7 nicht mehr nutzbar ist. ( Eine Menüleiste fehlt, die mit dem EXTRA-Button, ...)
Schon lustig das diese bei MS-Produkten nicht funktioniert!
Naja, VS2008 funzt wieder und auf den IE kann ich verzichten!
@toosten: did you try to understand the problem?
IE8 has tighter security settings. The VS devs could not know that at the time they developed the wizards. But nevertheless they have been forsighted enough to have a security zone of their own which they can configure without lowering the general IE security.
The registry setting worked flawlessly for me and when I look at the few comments it seems to work for most people.
Are you sure you entered the settings correctly?
If yes, why not answer Raman's questions: which OS, CPU architecture and which wizard.