Hä? An welcher stelle kannst du sie nicht auseinander halten??? Ich verstehe es noch immer nicht. Die
GUID bestimmst doch du und das während der Entwicklung.
Deine Shellextensions sind doch Objekte, die irgendwelche Interfaces implementieren.
Dann hast du ne ClassFactory, die die Objekte erstellt.
Du kannst mehrere ClassFactories haben(für jede Shellextension eine)
Wenn DllGetClassObject aufgerufen wird, dann muss die richtige ClassFactory das Objekt erstellen. Da dir sowohl die ID der ClassFactory als auch der Typ des Interfaces übergeben wird sollte es doch kein Problem sein.
Code:
STDAPI DllGetClassObject(
REFCLSID rclsid, <--- ID von der ClassFactory
REFIID riid, <--- ID entweder IClassFactory oder IClassFactory2
LPVOID * ppv
);
IClassFactory.CreateInstance
bzw
IClassFactory2.CreateInstanceLic
erstellen dann deine Shellextension
Hoffe ich habe hier keinen Schwachsinn erzählt. Ist schon länger her als ich mir Shellextensions was gemacht habe... notfalls bei
msdn.microsoft.com nachschauen
Edit: habs ein wenig korrigiert
Edit2: noch ein weing korrigiert