>Just lurking through this thread. Been building my trees in as PRG classes. It seems that all versions of the Tree controls reference "MSComctlLib.TreeCtrl.2",
>
>Just curious as to how Win does the bookkeeping for the various release versions.
It uses the CLSID of the version of the control last registered. A vendor can change the CLSID without changing the ProgID if nothing in the interface changes. The ProgID -should- change any time a new CLSID contains changes in the functionality or implementation of the published COM interface. Several versions of ProgID, which share a common subset of behaviors usable identically can be given a VersionIndependentProgID, which points to one of several equivalent ProgIDs for use by COM clients; the specific ProgID currently referenced is then queried for the CLSID to use for that VersionIndependentProgID.
It's just a matter of indirection; the ProgID is a convenient (and hopefully, more memorable) name for a CLSID; several ProgIDs may point to different implementations of a given COM server that share common attributes, which may be referenced in the same way independent of their individual versions.