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.