Using Multiple Versions of the Chilkat ActiveX on the Same Machine

When you call CreateObject(Chilkat.FileAccess), or CreateObject(Chilkat_9_5_0.FileAccess), Windows uses that ProgID to look up the corresponding CLSID (a unique identifier) in the registry.

Then, it looks up the CLSID to find the path to the DLL file in this registry location:

HKEY_CLASSES_ROOT\CLSID\{...}\InprocServer32

This entry tells Windows which DLL to load to create the COM object. The DLL must have been properly registered (e.g., with regsvr32) to ensure this mapping exists.

In short:

ProgID → CLSID → DLL path → Load DLL and create object.

Structure of a ProgID

An ActiveX ProgID (Programmatic Identifier) is a human-readable string that uniquely identifies a COM (ActiveX) class. It is used in languages like VB6, VBScript, or VBA to create COM objects via CreateObject.


A typical ProgID follows this pattern:

<LibraryName>.<ClassName>[.<Version>]


ActiveX Registration Names by Chilkat Version

In Chilkat v9.5.*, the registered LibraryName is Chilkat_9_5_0.

In Chilkat v10.*, both the Chilkat_9_5_0 and Chilkat ProgIDs are registered to facilitate application migration to the new Chilkat library name.

Starting in Chilkat v11.0.0, only the Chilkat ProgID is registered.

Chilkat Version Registered ProgIDs
v11.* Chilkat.FileAccess (no version prefix)
v10.* Chilkat.FileAccess and Chilkat_9_5_0.FileAccess
v9.5.* Chilkat_9_5_0.FileAccess only

When registered, these names point to the associated DLL on the filesystem.


Running Multiple Versions Side-by-Side

Versions to Use Registration Order How to Reference
v11.* and v10.* Register v10 first, then v11 Use Chilkat_9_5_0. for v10, Chilkat. for v11
v11.* and v9.5.* Order doesn't matter Use Chilkat_9_5_0. for v9.5, Chilkat. for v11
v10.* and v9.5.* Register v9.5 first, then v10 Use Chilkat_9_5_0. for v9.5, Chilkat. for v10

Going Forward: Version-Dependent vs Version-Independent ProgIDs

Type Example Purpose
Version-Independent Chilkat.FileAccess Always points to the most recently registered version of the ActiveX component.
Version-Dependent Chilkat.FileAccess.10 for the latest registered version of Chilkat v10.*.*
Chilkat.FileAccess.11 for the latest registered version of Chilkat v11.*.*
etc.
Points to a specific major version, allowing multiple major versions to coexist.

Summary

  • Version-independent ProgIDs are simpler and used when only one version is expected.
  • Version-dependent ProgIDs provide control and isolation, especially useful when supporting multiple versions on the same machine.

Use version-dependent ProgIDs when stability or compatibility is critical across app updates.