Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Microsoft and MSCOMCTL.OCX

Status
Not open for further replies.

steven54

Programmer
Jul 4, 2009
22
US
I spent the past two days trying everything possible to get MSCOMCTL.OCX to work in my code. It worked before. Not now.

Lets say I buy a car that runs fine. Then one day without warning it will not start. No warning. Nothing.

This is what Microsoft has done to us with this file needed for our programs to work. I have registered, unregistered, deleted, renamed, downloaded different versions of this file and rebooted this and one other computer enough to wear the ink off the Enter key trying to get this to work.

I bought this license and expect it to work when I need it. Microsoft has other ideas. What those reasons are, well...I am still trying to understand.

If there is a problem with security with MSCOMCTL.OCX then it should be up to the people who paid for the license to decide what they want to do about it. Instead, Microsoft chose to shut down this file and, in the process, shut down several countless uses for it.

Am I to now buy another compiler and learn a different language?

Is there a fix for this or a different file I can use to get my programs working again???

Thanks in advance.

Steven

If pro is the opposite of con, then is progress the opposite of congress?
 
It it worked before and now doesn't then it is a sure thing it is something you have done wrong.
When you say "it will not start". OCS's don't "start" anyway. They are part of your application.
It depends on what controls in it that you are using.
Start a simple project again with only one control of this component loaded to see it it is the OCX file is faulty or not.
Also see for a bug fix.
Aloo see if you are using Windows 7

Search for MSCOMCTL.OCX gives you a lot more info,
This component is free - it shouldn't have cost you anything

Finally post the code how you are using it and we may be able to help more.
 
I am not aware of any sort of general problem with MSCOMCTL.OCX. One issue is that, since it is a 32bit library it needs to be registered in syswow64 rather than system32 on 64biot systems - but that's a common issue for 32bit controls from anyone, not just mscomctl and not just Microsoft.
 
TedSmith, my VB6 code worked up until MSCOMCTL.OCX fails. I keep getting a message saying, "...MSCOMCTL.OCX could not be loaded". This laptop is running Windows 7 Ultimate 32 bit. There is no code to display as without the .ocx loading it is like the control never existed. When I examine the properties of the current progress bar it has the properties of a PictureBox lol. It used to be a ProgressBar. I have six backups of this project and every one of the backups will not load the .ocx file. All I want is a working progress bar. Other .ocx files work just fine.

The only thing that changed on this laptop is the installation of Microsoft critical updates for the OS and MS Office 2010. The Internet has a lot of information on the problem with MSCOMCTL.OCX in MS Access, VB6, MS Office, etc. and many offer different solutions. None work on this laptop.

This free component has stopped my compiler in its tracks. Something changed. I have no idea what. If it were summer here in Michigan I would forget this and go play golf! lol



If pro is the opposite of con, then is progress the opposite of congress?
 
This OCX is not "free." To use it at design time requires a license that is part of VB6 and a few other development tools (Office Developer but not Office in general). To use it at run time on target systems your application needs to have the run time license key packaged within it (normally this is done for you by VB6).

From your symptoms it likely that you have run afoul of UAC's registry and filesystem virtualization appcompat tricks. You probably never installed VB6 properly and by now have a mishmash of registrations under one or more users' virtualstore locations in the registry.

Unraveling this can be a nightmare. The quickest fix is probably to reinstall Windows from scratch, but you need to avoid repeating the same error afterward.

And yes, the Internet is rife with bad information about "fixes" for DLLs and OCXs of every description.
 
> MSCOMCTL.OCX in MS Access, ... MS Office

Yes, it has a lot mainly because people try to use it in Access and Office when they are not supposed to - it is only (re)distributable with a runtime license, not design time license. So plenty of reported errors with the control are not really errors, but the expected behaviour.
 
When I said "FREE" I meant it should not cost you any more since you paid for it when you bought vb6.
I have had similar problems with same symptoms trying to run some older vb6 programs in the IDE in Windows 7 but have been able to rectify all so far using the procedures below.

See Properties/Compatability of C:\Program Files\Microsoft Visual Studio\vb98\Vb6.exe
Are you running vb6 in Xp mode and "run as an administrator"?

If this doesn't fix it then try -
Check in VB6 components that you have Microsoft Common Controls(SP6) loaded. This should give you the listview controls etc.
Make a simple project with just this one component added.
Check in the components dialog that the address of its OCX is C:\Windows\System32\MSCOMCTL.OCX
The size of my MSCOMCTL.OCX file is 1046kb dated 9/1/2013 (I presume when I last installed it).
The version on my original vb6 disk is 1038kb dated 27/6/98
If yours is significantly different maybe you have picked up an incompatible version or your recent update has changed it so it doesn't work with vb6 anymore.

If this doesn't fix it then try -
Rename as C:\Windows\System32\MSCOMCTL.OCX as NewMSCOMCTL.OCX, try reinstalling vb6 overwriting all files requested.
If this then gives trouble with MSOffice, rename the new MSCOMCTL.OCX you just reinstalled as OriginalMSCOMCTL.OCX, restore TempMSCOMCTL.OCX back to MSCOMCTL.OCX then change the address of the component in vb6 to OriginalMSCOMCTL.OCX
You might have to re-register it (Enter in the Windoew Run box:- regsvr32 OriginalMSCOMCTL.OCX).
This way only vb6 will use the original vb6 file while newer programs will use your current file

Best of luck
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top