Sheridan Controls in VB6 EE IDE in Windows 7

We are using VB6 EE on XP and need to move on to Win7. We've been using the Sheridan Controls (Version 2) in XP with no issues. Moving our development to Win 7 has been causing an issue with only one of the Sheridan controls (Active Threed), filename Threed20.ocx, when trying to add the component in the VB6 IDE in Win7.

Even though all registry entries look fine, the control keeps giving us a "Object Library Not Registered" error when attempting to add the control to a project. Even unregistering the 1.0 version (Threed32.ocx) and removing all references to the old version, still generates the same error. We are aware that the old and new versions share the same class ID, but it should be looking to load the TypeLib for the higher version (Threed20.ocx).

The other day, by accident, I seemed to have fixed it. I cannot figure out what I did in order to replicate that fix. I've tried following the same install process (Win7 Pro 32 bit clean image, VB6 EE install, sp5, sp6) but the error continues to appear.

Any ideas would be appreciated.

Note: Moving to .Net is not an option at this time. Too much VB6 code is involved.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Martin LissOlder than dirtCommented:
The Sheridan controls are very old and aren't supported by MS anymore. You only choice besides upgrading is to replace them with native VB6 controls.
mgonzal61Author Commented:
We tried first getting THREED32.OCX (Microsoft's 1.0 verison) to work then tried Sheridan's upgrade (THREED20.OCX - original used in XP version of our multi-VB6-DLL application) but the TypeLib for the 2.0 is not being referenced properly in Win7 registry thus causing the error. I guess I'll have to hunt down or invent some type of reg hack. The .Net upgrade is just not a viable option at this time. The product is installed in a huge amount of client sites.
mgonzal61Author Commented:
I've requested that this question be closed as follows:

Accepted answer: 0 points for mgonzal61's comment #a39515857

for the following reason:

Looking for a possible solution or reg hack. The search goes on. All the best!
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

Martin LissOlder than dirtCommented:
My suggestion to use native VB controls is a reasonable and feasible "possible solution".

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
mgonzal61Author Commented:
We may have found a solution but we need to replicate it. It seems that for some reason threed20.ocx, when selected from the components in the VB6EE IDE (running in Windows 7), does not create the corresponding OCA file (threed20.oca) like it does for the other Sheridan controls. If I could find a way to physically create the OCA file for the threed20.ocx that references the TypeLib info for said control, we'd be in business. I was able to do it once (but still needed licensing info). I have to replicate this possible solution in order to consider it a partial success. Maybe there is tool out there that can create an OCA from an OCX. Digging, Digging Digging!
mgonzal61Author Commented:


Getting Sheridan Controls working in Windows 7


The following instructions assume you have a clean install of Windows 7 Professional Edition 32 bit with no tools or IDEs currently installed and that you are installing the Sheridan controls for development purposes with proper licensing. The Sheridan controls will not install or work in Windows 7 64 bit.

1.      Install Visual Basic 6 Enterprise Edition.

2.      Install Visual Studio 6 Service Pack 6 as Visual Basic Service Pack 5 will not install due to MDAC issues.

3.      Install the Sheridan Controls.

4.      Unregister Threed32.ocx from the C:\windows\system32 folder.

5.      Register Threed20.ocx from the c:\sheridan\ActiveThreed folder.

6.      Using regedit.exe, open the registry and find the class id for Threed20.ocx under the TypeLib Key ¿{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}

7.      Copy the Class ID to notepad.

8.      Close regedit.

9.      Open Visual Basic 6.

10.       In the default project, add each Sheridan control from Project ¿ Components. The ActiveThreed control will fail. This is OK as this step is for the purpose of creating the OCA files for the other Sheridan controls.

11.      Close the project and don’t save it.

12.       Open regedit.

13.       Go to the following key in regedit: HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\Visual Basic\6.0

14.      There should be keys there already for each Sheridan control that has an OCA file. The names of the keys will reflect the Class ID plus the version number of the control. The default value will be the path and filename to the OCA file.

15.       Add a new key using the Class  ID you copied to Notepad  as the name and append #2.0 for the version number: {0BA686C6-F7D3-101A-993E-0000C0EF6F5E}#2.0  

16.       The default string for the key will be: C:\Sheridan\Active~1\Threed20.oca

17.       Save the changes.

18.       Refresh the registry (F5).

19.       Close regedit.

20.       Take a copy of the file Threed20.oca from an XP development machine (preferably from the C:\Sheridan\ActiveThreed folder) and copy it to the C:\Sheridan\ActiveThreed folder on the Windows 7 machine.

21.       Open up Visual Basic 6.

22.      Go to Project ¿ Components and try to add the ActiveThreed control.

23.       Hopefully, it should work.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.