On Tue, 13 May 2014 08:01:19 -0500, ralph <***@yahoo.com>
wrote:
In the following note any of the common control components support
backward-compatibility for previous versions but obviously can't
support anything newer. I now believe that was your actual problem.
My apologies but I made the unfortunate mistake of assuming (what is
the usual case) that you were getting errors because you didn't have
the correct component to support an *older* interface, when the real
problem was you didn't have the correct components to support a
*newer* interface. <g>
[confused yet? <g>]
Post by John MottI had a look at the properties of the comctl32 .ocx in my version of
Win7 and it shows V 5.00.3714 566 kb 16/1/97.
This is the version that is supplied with the original VB5 edition -
with NO SP's (Service Packs). TypeLib V1.1
This component provides NO support for TypeLib versions greater than
1.1.
If you installed the last VB5 SP - which was SP3 - you would have
version 5.01.4319 of comctl32. TypeLib V1.2
This component provides NO support for TypeLib versions greater than
1.2
When anything Win2k or later installed comctl32 it would have
installed one of these two ...
VB6 (no SP) version 6.00.8022 TypeLib V1.3 <--- Tah Dah!!!
VB6 SP5 version 6.00.8105 TypeLib V1.3
This version provides support for TypeLib's V1.1, V1.2, and V1.3.
[*Note VB5 SP5 was the last version of comctl32. VB6 introduced a new
common controls component MSCOMCTL.OCX. Without going into the details
again - this component did change GUIDS for TypeLibs and removed the
"imcompatibility" problems.]
Post by John MottIn my old XP system where the project was created, it shows
V6.00.8105 594 kb 23/5/2000
This as noted above is the last latest 'n greatest comctr32.
There is probably still an install somewhere, but the easiest solution
is to just copy those components (*see below before you do this) over
to your new box and register them. Remember they have to go into the
syswow64 folder, and you have to make sure you use the regsvr32 FOUND
in the syswow64 folder to register them.
If you do that. Then you can put back the TypeLib version 1.3.
Don't get too mad at me for suggesting this fix earlier. I had you do
a simple change in the project file back to V1.2, simply because this
is the easiest way to test my theory, and because you suggested you
were not that familar with COM nuances - in other words - let's do the
easiest first to make sure we were on the right track. <g>
*All the above was about "comctl32". Stuck to explaining about just
the one to keep it simple. But the same sorry story exists for
comdlg32.ocx as well. AFAIK here are the components that make up the
"common control" suite.
comctl32.ocx
comdlg32.ocx
comct232.ocx - different file versions but
comct332.ocx - these only had one TypeLib version
comctl32.dll
(Might be others you have picked-up over the years - make sure to
preserve your old System32 folder - just in case you need to go back
and grab more.)
Copy all of the newer ones on your older system over to your new box
and register the controls. All your "VB5 projects" should be back to
where they were when you last used it.
Also noticed that your version of comctl32 was the one supplied with
original VB5, but IIRC during earlier posts you seem to demonstrate
that you did have VB5 SP3.
You will probably want to install that SP as well. Microsoft does seem
to supply the SP itself any more - but that only means I can't find
it. <g>
If you don't have the disk. You can download it from various sites,
for example:
"Visual Studio 97 Service Pack 3 (for Visual Basic)"
http://www.softlookup.com/display.asp?id=8705
(I'm leerly of these 3rd party sites. but if you are careful and scan.
Should be OK.)
The other - more official way - is via the cab files:
http://support.microsoft.com/kb/172991/EN-US
You can also simply copy over any "newer" files on your old box over
to the new one. But note - this can get harry. <lol> Do a good
inventory before you start. Record what you did, and be prepared to
"back-out" at any time.
Microsoft does supply an "essential" runtime files install for VB5:
"Msvbvm50.exe"
http://support.microsoft.com/kb/180071
But note this is not a SP for the VB5 IDE, it is only the runtime
files to support existing VB5 compiled applications.
But it can save you a lot of trouble if distributing your
applications, you can include it in your package.
Whew! Hope this helps.
-ralph