I have a pre-vista Internet Explorer toolbar which communicated via COM to another process to assist my users with web browsing. Both the toolbar and the com server are written in VB6.

Under Vista, with protected mode, I thought that I could make my COM server a broker process and everything would be fine. I added the registry keys alluded to in Understanding and Working in Protected Mode Internet Explorer.

Now, my toolbar will start the out of process com server, but Internet Explorer crashes. How do I fix this

If I turn protected mode off, everything works great.

Please help!

Thanks in advance


Re: Internet Explorer Extension Development Problem crashing IE with IE extension and Broker Process


Hi Matt,

My guess is that you have to change the architecture of your VB6 addon to remove any dependency on writing and reading to registry keys to store state information about your addon, and use maybe a profile file stored in a low integrity location...

Finding Low Integrity Write Locations

In Windows Vista, securable objects automatically inherit the lower integrity level between the process that created them and their container. As a result, files or registry keys have a low integrity when created in Protected Mode. This means that a low integrity process can obtain write access to the objects it creates. However, a low integrity process cannot gain write access to medium or high integrity folders or files in the user's profile.

Be aware that your toolbar may be trying to write state information about the toolbar's size and location on IE7's toolbar when it is loaded or unloaded.

From VB6 you should be able to run IE7 with the toolbar from the VB6 debug environment to determine when the browser is crashing and why. There is also a FeaturesControl switch for IE7 to log errors in the system error logs.


Re: Internet Explorer Extension Development Problem crashing IE with IE extension and Broker Process


Thanks for the response Rob, I will try the error logging in IE to see where the problem arises (My development machine is in Windows XP).

However, I don't think this is the problem. It appears that the crash occurs *any* time that I try to access the COM server. In one instance, it doesn't save any information to the registry, just tells the broker process to launch and show a GUI. That's all. The COM server application is launched and shows the GUI, but IE crashes Sad

To illustrate, here is the code for this function:

Code Snippet
Set objCOMserver = New myCOMapp.ClsCOMapp
Set objCOMserver = Nothing

That's all this function does, so there is no protected area writing.

Thanks again for the help,