Writing IE add-on in C#, VB.NET, C++.
Tips for Internet Explorer 6 - IE 11.
IE add-ons tips
On this page you will find some tips and tricks that you may find helpful when programming your IE add-ons.
Interop Assemblies provide the compiler with early-binding information on the host application objects, their properties, and methods. All IE versions are almost 100% backward compatible and you can use interops from IE6 to work with IE7, IE8, IE9, IE10 and IE11. Note, in this case, you can access IE7 features using late binding (see the InvokeMember method in MSDN). Obviously, you cannot expect an add-on developed with, say, IE8 interops to work with IE7 because IE7 does not have some events and properties introduced in IE8.
The Add-in Express loader uses the ShadowCopy-related properties and methods of the AppDomain class. When you run your add-on, IE loads the Add-in Express loader DLL referenced in the registry. The loader does the following:
You can see how the add-on versioning influences the add-on loading. This approach (it is built into .NET, as you can see) allows replacing add-on DLLs when the add-on is loaded. The disadvantage is numerous files located in the cache. As far as we know, Microsoft doesn't provide a solution for this problem. You may think you can remove these files in an add-on’s uninstall custom action. However, this will remove the files from the current profile only.
You can find it in the setup project (that must be already built). Click on your add-on primary output in the setup project and, in the Properties window, expand the KeyOutput property and see the PublicKeyToken property value.
IE add-ons are localizable in the same way as any Windows Forms application. But pay attention to the deployment of localized resources - see Walkthrough: Localizing Windows Forms on MSDN.
If your questions are not answered here, please see C# how to samples for IE.