Ticket #238 (closed defect: fixed)

Opened 2 weeks ago

Last modified 2 weeks ago

Conflicting COMBIA.dll references

Reported by: jasper Owned by: jasper
Priority: critical Milestone: Phase III
Component: COMBIA Version:
Keywords: Cc:

Description

On one given system with a given user, two COBIA installations may be visible: the current user one and the all users one.

These may be different versions. The newest COBIA runtime is always loaded dynamically.

However, the full path to COMBIA.dll is in the COM registration of COBIA PMC classes in the registry. So one COM registration may point to the all users COMBIA.dll while another, used from the same process, may point to the current user COMBIA. These COMBIA.dlls may be different versions, and one of the implementations may depend on the newer COMBIA version. By chance, the older COMBIA version may have loaded first, and will be used for all instances.

To resolve this, there should be a COMBIA class factory place holder DLL that appears in the COM registry, which dynamically loads the newest COMBIA. Although this shifts the problem to the version of the COMBIA class factory DLL, this DLL is small and generic and not expected to change over time.

All this DLL does it implement wrappers for DllGetClassObject?, DllCanUnloadNow? and forward the functionality to the dynamically loaded COMBIA.dll.

Existing implementations are affected: the COM registration will need to be redone (to point to the class factory DLL instead of the COMBIA dll)

Change History

comment:1 Changed 2 weeks ago by jasper

  • Status changed from new to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.