Wie ADSI Erweiterungen integriert
In den folgenden Richtlinien wird beschrieben, wie ADSI mit Erweiterungen interagiert:
- Etwas wird an ein ADSI-Verzeichnisobjekt gebunden. Beispiel: "LDAP://CN=JeffSmith,OU=Sales,DC=Fabrikam,DC=COM".
- ADSI identifiziert, dass sich das Objekt in der Benutzerklasse befindet.
- ADSI führt eine Suche in der Registrierung durch und identifiziert die Erweiterungs-CLSIDs für den Benutzer. Beachten Sie, dass ADSI diese Daten zwischenspeichert.
- Etwas ruft die QueryInterface-Methode für IID_IMyExtension auf. ADSI durchsucht die Schnittstellen, die dem Benutzerobjekt zugeordnet sind, beginnend mit seinen eigenen Schnittstellen und dann nach Erweiterungsschnittstellen.
- Wenn eine Übereinstimmung gefunden wird, erstellt ADSI eine instance der Komponente, die IID_IMyExtension unterstützt, und ruft QueryInterface für die Erweiterung auf. Die resultierende Schnittstelle wird zurückgegeben.
- Der Benutzer verwendet diese Schnittstelle, um die Schnittstellenmethoden aufzurufen.
- Als Nächstes ruft der Client QueryInterface für IID_IYourExtension auf, die sich in einer anderen Komponente befindet. Diese Komponente delegiert diesen QueryInterface-Aufruf an die IUnknown-Schnittstelle des Aggregators, bei der es sich zufällig um ADSI selbst handelt.
- Wieder durchsucht ADSI die Schnittstellen und erstellt die Komponenten instance.