0X80020001

DISP_E_UNKNOWNINTERFACE (0x80020001) Fix for COM/ActiveX Errors

This error means Windows can't find a registered interface for a COM object. Usually happens after Office updates or broken VBA scripts.

When This Error Shows Up

You're working in Excel or Outlook, maybe running a VBA macro that calls a COM object, and boom — the error pops up. Or you see it when opening an older Access database. The exact error code is 0x80020001. I've seen it most often after an Office update or a third-party software install that messes with COM registrations.

What's Actually Happening

Windows COM system keeps a list of registered interfaces in the registry. Each interface has a GUID. When your code says "talk to interface X," Windows looks it up. If the GUID isn't there or points to a broken DLL, you get this error. The culprit here is almost always a component that got unregistered during an update or a failed uninstall. Don't waste time blaming your code — it's almost certainly a registration problem.

The Fix: Re-register the COM Objects

Skip messing around with the event viewer or SFC. Just re-register the relevant DLLs and OCX files. Here's what works 9 times out of 10.

  1. Close all Office apps. Outlook, Excel, everything. Otherwise the DLLs are locked.
  2. Open an elevated command prompt. Hit Windows key, type cmd, right-click Command Prompt, select Run as administrator.
  3. Re-register common Office COM libraries. Run these commands one by one.
    regsvr32 /u /s scrrun.dll
    regsvr32 /s scrrun.dll
    regsvr32 /s mscomctl.ocx
    regsvr32 /s comctl32.ocx
  4. For Office-specific issues, re-register the Office dlls. Path will vary depending on your Office version. For Office 2016/365/2021:
    cd "C:\Program Files (x86)\Microsoft Office\root\Office16"
    regsvr32 /s mso.dll
    regsvr32 /s mso40ui.dll
    regsvr32 /s vbe7.dll
  5. Reboot. Not optional. COM caches load at boot.

What If It Still Fails?

Try these in order. Don't do all at once — test after each.

  • Check the Event Viewer. Look under Windows Logs > Application. Filter by Source "ActiveX" or "COM". You'll see which CLSID failed. Search that CLSID in regedit to find the DLL path.
  • Re-run the Office repair. Go to Control Panel > Programs > Microsoft Office > Change > Quick Repair. That re-registers everything.
  • Delete and recreate the offending component. In VBA, if you're creating an object with CreateObject("something.ProgID"), make sure that ProgID isn't a typo. Check with GetObject first.
  • Try with a clean boot. Run msconfig, selective startup, uncheck all non-Microsoft services. Reboot. If the error goes away, some third-party software is the problem. Add services back one at a time to find it.

If none of that works, you're looking at a deeper issue — maybe a corrupted Windows image. Run DISM /Online /Cleanup-Image /RestoreHealth followed by sfc /scannow. But honestly, 95% of the time the regsvr32 commands above fix it. I've been using them since Windows XP and they still work.

Related Errors in Windows Errors
0XC000020B STATUS_ADDRESS_CLOSED (0XC000020B) Fix – Transport Address Now Closed 0XC00D1BBE NS_E_MULTIPLE_VIDEO_SIZES Fix (0XC00D1BBE) in WMP 0X000036D5 SXS XML_E_MISSINGWHITESPACE 0x000036D5 Fix 0XC0000154 Fix STATUS_ALIAS_EXISTS (0xC0000154) Local Group Already Exists

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.