Skip to content
General ITBeginner

Resolving Run-Time Error ‘372’ (MSCOMCTL.OCX) in BusyWin & VB6 Applications: Complete Technical Guide

Run-time errors in legacy Windows applications—especially those built on Visual Basic 6 (VB6)—are still very common in business environments. One such freque...

BI
Bison Technical Team Enterprise IT specialists
Updated 05 Apr 2026 3 min read 149 total views

Run-time errors in legacy Windows applications—especially those built on Visual Basic 6 (VB6)—are still very common in business environments. One such frequent issue is:

Run-time error ‘372’: Failed to load control ‘ImageList’ from MSCOMCTL.OCX

Advertisement

This error typically appears in applications like Busy Accounting Software, older ERP tools, and custom VB6-based systems. It is directly related to a missing, outdated, or improperly registered MSCOMCTL.OCX file.

This article provides a complete technical explanation, root causes, and step-by-step solutions to permanently fix the issue.


What is MSCOMCTL.OCX?

MSCOMCTL.OCX (Microsoft Common Controls) is a VB6 ActiveX control library that provides UI components such as:

  • ImageList
  • ListView
  • TreeView
  • ProgressBar
  • Toolbar

These controls are widely used in older Windows desktop applications.


Understanding Run-Time Error ‘372’

Error Description

Run-time error '372':
Failed to load control 'ImageList' from MSCOMCTL.OCX

Technical Meaning

The application is trying to load a UI component (ImageList), but:

  • The required OCX file is missing
  • The version installed is incompatible
  • The OCX is not registered in Windows registry


Root Causes of the Error

1. Missing MSCOMCTL.OCX

  • File not present in system directories

2. Unregistered OCX File

  • File exists but not registered using regsvr32

3. Version Mismatch

  • Application expects a specific version
  • Windows update replaced it with incompatible version

4. Corrupted OCX File

  • Damaged during system crash or improper installation

5. 64-bit vs 32-bit Conflict

  • VB6 apps are 32-bit, but running on 64-bit OS

6. Permission Issues

  • Lack of admin rights during registration


System Architecture Understanding

ComponentRequirement
Application32-bit (VB6)
OS32-bit or 64-bit
OCX Location (64-bit OS)C:\Windows\SysWOW64\
OCX Location (32-bit OS)C:\Windows\System32\

⚠️ Important:
On 64-bit Windows, SysWOW64 is used for 32-bit files


Step-by-Step Solution

Step 1: Obtain Correct MSCOMCTL.OCX

  • Use original file from:
    • Working system
    • Application installation folder
    • VB6 Runtime package


Step 2: Copy File to System Directory

For 64-bit Windows:

C:\Windows\SysWOW64\

For 32-bit Windows:

C:\Windows\System32\


Step 3: Register the OCX File

Open Command Prompt as Administrator

For 64-bit:

regsvr32 C:\Windows\SysWOW64\MSCOMCTL.OCX

For 32-bit:

regsvr32 C:\Windows\System32\MSCOMCTL.OCX

✅ Expected Output:

DllRegisterServer in MSCOMCTL.OCX succeeded


Step 4: Restart Application

  • Close BusyWin
  • Reopen application


Advanced Troubleshooting

✔ Re-register OCX

regsvr32 /u MSCOMCTL.OCX
regsvr32 MSCOMCTL.OCX


✔ Install VB6 Runtime (SP6)

  • Includes updated dependencies


✔ Run Application as Administrator

  • Fixes permission-related issues


✔ Compatibility Mode

  • Set to Windows 7 / Windows XP


✔ Check Windows Updates

  • Some updates overwrite OCX files


✔ Use Dependency Walker (Advanced)

  • Identify missing DLL dependencies


Server Environment Considerations

In multi-user setups (like yours with Busy + Tally):

  • Ensure OCX is installed on:
    • Server
    • All client machines
  • If using RDP:
    • Register OCX on remote server
  • For domain environments:
    • Check group policies restricting OCX registration


Best Practices

  • Maintain a backup of working OCX files
  • Avoid random downloads from unsafe sources
  • Use official runtime packages
  • Document system dependencies during deployment


Conclusion

Run-time error ‘372’ is a classic issue in VB6-based systems, but it is easy to fix with proper understanding of:

  • OCX file management
  • System architecture
  • Registration process

By following the steps above, you can ensure smooth operation of BusyWin and similar applications in both standalone and server environments.


#mscomctl #runtimeerror372 #vb6 #busysoftware #ocxerror #windowsfix #erpissues #accountingsoftware #vb6error #activex #imagelist #ocxfix #regsvr32 #windowsserver #rdpissue #softwaretroubleshooting #legacysoftware #vb6runtime #dllerror #systemerror #windows10fix #windows11fix #serverissue #clientmachine #ocxregistration #itadmin #techsupport #softwareerror #erpfix #busywin #vb6support #systemrepair #ocxmissing #compatibilitymode #adminrights #troubleshootingguide #softwaredeployment #vb6controls #runtimefix #windowsadmin #itissues #technicalguide #ocxsolution #errorhandling #vb6apps #systemarchitecture #windowsregistry #softwaremaintenance #enterpriseit

YOUR FEEDBACK

Was this guide useful?

Your answer helps us keep BISONKB accurate and practical.

BISON AI

Ask about “Resolving Run-Time Error ‘372’ (MSCOMCTL.OCX) in BusyWin & VB6 Applications: Complete Technical Guide”

This interface is ready to connect to your preferred AI provider. No article or user data is sent until that service is configured.

THE BISON BRIEF

Practical IT knowledge, once a week.

New troubleshooting guides, scripts and infrastructure notes. No noise.

By subscribing, you agree to our privacy policy.