hier lang verdrängtes Material aus meinem Gedächtnis:
> , dass es ab XP eine neue Art der COM Registierung gibt
das einzige, was mir hierzu einfällt, ist das .NET Feature "Registration
Free COM Components". Hier ein Blog, der das ganz brauchbar beschreibt:
http://blogs.msdn.com/junfeng/archive/2006/05/17/registration-free-com-net-i
nterop.aspx (siehe auch Link "my last article" ganz oben!)
Ansonsten erfolgt das Versionieren von COM Komponenten, indem für jede
Version eine neue CLSID (=Class ID) vergeben wird. Das entspricht in .NET
einer "class". Einer CLSID wird üblicherweise auch eine ProgID vergeben, die
verwendet wird um eine COM Komponente zu instanziieren. So eine ProgID ist
lediglich ein Alias für eine CLSID. Eine typische Komponentenregistrierung
sieht etwa wie folgt aus:
HKCR\CLSID
<class guid 1>
InprocHandler32 = <dll pfad>
ProgID = "My.Comp.1"
VersionIndependentProgID = "My.Comp"
HKCR\My.Comp.1
CLSID = <class guid 1>
HKCR\My.Comp
CLSID = <class guid 1>
CurVer = My.Comp.1
Für die Schnittstellen erfolgt die Versionierung, indem für jede
Schnittstelle prinzipiell eine eigene GUID vergeben wird.
Grundsätzlich gilt: Sobald eine Komponente und ihre Schnittstellen
veröffentlicht sind und anschliessend Änderungen gemacht werden müssen ->
mind. neue Schnittstelle + neue Guid, ev. neue CLSID! COM folgt hier sehr
streng dem OCP ;-)
hth,
Erich