Jesus 'n Jim
A mainly PC (some Mac) site w/Software, Computer Repair Info, How-To's on Using Computers
Technical Support 1-360-521-2060 (my business line cell)

Removing ActiveX/OLE controls

 

disclaimer

I will not be held responsible if you trash a computer using this information. Messing with ActiveX/OLE controls or with the registry is dangerous and is definitely not recommended by microsoft or me. If you continue with this information, it is at your own risk. This information is not perfect, and I am trying to refine it the best I can!

overview

this document shows you how to remove COM+/COM/DCOM/ActiveX/OLE controls on your machine. this is typically needed on a failed uninstall or an uninstall which didn't remove files. if it didn't remove files, surely it didn't unregister COM+ controls either!

note that you can register/unregister as many times as you want.

ActiveX/OLE controls can be tracked down after their installation by their GUIDs and ProgIDs and Typelibs. ActiveX/OLE controls typically have 3 different flavors of extensions: .ocx, .exe, and .dll.

regsvr32.exe /u filepath will unregister filepath activex control. There will probably be remnants left in the registry. The process is not perfect.

regsvr32.exe filepath will register filepath activex control. Lots of entries will be made all over the registry.

If you installed AOL, reinstall your OS. that is your only recourse. it replaces the normal TCP/IP stack with its own and there is no other way around it. I've tried.

takeclass

If you are the programmer type, the best thing you can do is take a (very expensive) programming class on ActiveX/OLE controls. There is a $50-60 Microsoft Press book with that title that you are supposed to buy along with it. You will dig into the registry and learn about GuidGen, typelibs, ProgIDs, HResults, IDL, COM, DCOM, and the like till the cows come home. Now it is called COM+. You will probably be using Visual Basic to write the ActiveX controls, since that is the simplest way to do it.

useful registry keys

  • Internet Explorer Extensions: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions
  • Internet Explorer plugins: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Plugins
  • Internet Explorer Toolbars: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Toolbar
  • starting here are your ProgID's: HKEY_CLASSES_ROOT\AboutDlg.SCMSplashScreen
  • where a lot of software stuff is stored. you can use this to "reset" applications: HKEY_CURRENT_USER\Software
  • where a lot of software stuff is stored. you can use this to "reset" applications: HKEY_LOCAL_MACHINE\SOFTWARE
  • :
  • :
  • :
  • :
  • :
  • :

If the files are still there but failed uninstallation

  1. kill the processes in question. nothing related to it must be running or loaded.
    1. if there are shell extensions, these are usually removed by a certain registry key. on my XP machine, this is at
  2. If you are on XP or older, you can do this: bring up windows explorer, and do Tools|Folder Options|View tab. Make sure the following is checked: "Display the contents of system folders", "display the full path in the address bar", "show hidden files and folders", and uncheck: "hide extensions for known file types" (you may want to set these back after you are done)
  3. start a cmd shell (or command.com if you are on 9x/me).
  4. cd to the place where the activex control is. the files in question usually have the file extension .ocx, .exe, or .dll
  5. from the command-line, if you want to unregister all the files in a directory that failed uninstallation, for %x in (*.ocx *.dll *.exe) do regsvr32 /u "%x" or if you can't remember that, simply find every .ocx, .exe, and .dll file in the directory subtree and do a regsvr32 /u myfile.ocx on it.
  6. do the previous step for all subdirectories. you will need to cd into that directory or cd .. to go down one directory.
  7. check to see if your activeX control is listed in the IE addons: registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions. browse through the list contents and see. if it is listed, delete the GUID key (keys look like a folder).
  8. you can now delete the entire directory subtree.
  9. Wouldn't hurt to reboot.

if the files are gone but there's a mess left in the registry (usually is).

note: this can really mess up your registry if you don't have a clue what you are doing, and maybe even if you do have a clue what you are doing! I generally find all the related ActiveX controls in a program, but this has proved self-defeating in some cases, because some of them led me to some system activeX controls, and I knew I should stop there.

you should get a good feel for the layout of the land first. know what belongs and what's been installed by other programs, at least get some idea. you can usually get an idea what an activeX control is for by checking out its ProgID, and InProcServer32 entry, because the filepath and filename give a clue as to what application it belongs to. also, the entry right at the GUID will give its title.

hope you have an uninterrupted day to spend.

  1. start Notepad without wordwrap mode
  2. start regedt32 (for nt/2000/2003/xp/Vista) or regedit (if on w9x/me)
  3. find a starting place. could be the IE addons: IE addons: registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions. could be you wish to remove remnants of mcafee and Microsoft OneCare so you can install kaspersky. in that case, in the registry editor, do Edit|Find and search for all entries of mcafee (F3 finds next item). you will be at this for a long time. even though they have been uninstalled, you will also find large blocks of uninstall entries for these programs. If you know that it has been uninstalled (it is not in add/remove programs), you can remove these entries.
  4. if it's just a program and it's listed in the task manager, do an end task on it.
  5. find the GUID in question. paste it into Notepad. you can do this by hitting F2, control-C, Esc. paste into Notepad with control-V. take note of the ProgID and paste that into Notepad. also paste any filepath into Notepad. If there are any other GUIDs listed within that key, paste them into Notepad. later on you will search in the registry and filesystem for every instance of those files and list them in Notepad. Be careful what you dig into! some entries cannot be removed without causing problems because they are numbered! also, stay away from the networking entries - those are hairy and can get you into trouble fast.
  6. if it is a ProgID as the main key, take note of the progid, the GUID under CLASSID. later on you will search for every instance of that progid and GUID and list the key in Notepad (Edit|Copy Key Name).
  7. Services: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services is where you find services. If there is a service left over from OneCare or Mcafee that was unstalled and the file is no longer there, you can safely remove the entry using regedt32. don't bother to remove LEGACY_ entries from HKLM\System\CurrentControlSet. they can't be removed. I do not recommend this advice, but before you remove a service, make sure it is not running. there is usually a -remove or some other remove command argument for the service you should be following, which is different for every program. if it's a service, stop it and set it for manual instead of automatic. (don't mess with system services!)
  8. now that you have listed all the registry entries, start unregistering controls using regsvr32 /u file.
  9. now that the controls are unregistered, start deleting GUIDs and ProgID's and other entries you found.
  10. Wouldn't hurt to reboot.
GUID
Globally Unique Identifier. Example: {BB8AE808-F003-4C7F-B56B-8C80EEAFFE23} (usually listed in HKeyClassesRoot somewhere below the file associations, but also in many other places! you will even find GUIDs as filenames and folders.)
ProgID
Example: AppLogic.AppLogic or AppLogic.AppLogic.1 (both are usually listed in HKeyClassesRoot somewhere below the file associations)
Typelib
type library. typically it points to a GUID. sometimes its also a file: typelib.dll. (which still may be an activex control)