I’m creating an application that will report dependency information for
a given Visual Basic Project. The application simply reads the .vbp
file, obtains the GUIDs, and looks to HKEY_CLASSES_ROOT for confirmation
that the resource has been registered.
The problem I’m facing is that the TypeLib Version number in VB and the
Version number in the registry don’t always agree.
Here's an example. For a given object, the registry has:
My Computer
|
+- HKEY_CLASSES_ROOT
|
+- TypeLib
|
+- {8633DD40-F3E5-1234-BB1C-FF9A9C37DE0B}
|
+- 2d.0 <-- TypeLib Version?
|
+- 0 <-- Localization Flag?
|
+- Win32 <-- File Path
The project file has:
Reference=*\G{8633DD40-F3E5-1234-BB1C-FF9A9C37DE0B}#4.0#0#PATH
\FILE.dll#FILE.dll
It is my understanding that the #4.0 in field position 2 is the TypeLib
version, and the #0 is the localization flag.
The file reports the version as 45. I'm guessing the registry is
storing a hex value, hence the 2d.0. The question is why does the vbp
value differ, and how can I get the win32 key value without knowing
which version it is listed under?
TIA,
Tom Boward
Archived from group: microsoft>public>vb>ole