Link to home
Start Free TrialLog in
Avatar of mgonzal61
mgonzal61

asked on

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.
Avatar of Martin Liss
Martin Liss
Flag of United States of America image

The Sheridan controls are very old and aren't supported by MS anymore. You only choice besides upgrading to.net is to replace them with native VB6 controls.
Avatar of mgonzal61
mgonzal61

ASKER

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.
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!
ASKER CERTIFIED SOLUTION
Avatar of Martin Liss
Martin Liss
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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!
Solution:

Solution:

Getting Sheridan Controls working in Windows 7

Note:

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.