Die grundlegende COM-Schnittstelle IUnknown
Nach oben zu COM-Schnittstellen
Alle COM-Objekte müssen die grundlegende Schnittstelle IUnknown unterstützen, eine typedef des Schnittstellen-Basistyps IInterface.IUnknown enthält die folgenden Routinen:
QueryInterface |
Stellt Zeiger zu anderen Schnittstellen zur Verfügung, die das Objekt unterstützt. |
AddRef und Release |
Einfache Referenzzählmethoden, die die Lebensdauer eines Objekts verfolgen, sodass ein Objekt sich selbst löschen kann, wenn der Client seinen Dienst nicht mehr benötigt. |
Clients erhalten Zeiger auf andere Schnittstellen über die IUnknown-Methode QueryInterface. QueryInterface kennt alle Schnittstellen im Server-Objekt und kann einem Client einen Zeiger auf die angeforderte Schnittstelle liefern. Der Empfang eines Zeigers auf eine Schnittstelle signalisiert dem Client, dass er alle Methoden der Schnittstelle aufrufen kann.
Objekte verfolgen ihre eigene Lebensdauer über die IUnknown-Methoden AddRef und Release, bei denen es sich um einfache Referenzzählmethoden handelt. Solange der Referenzzähler für ein Objekt ungleich Null ist, bleibt das Objekt im Speicher geladen. Sobald der Referenzzähler den Wert Null erreicht, kann die Schnittstellenimplementierung das bzw. die zugrunde liegende(n) Objekt(e) sicher aus dem Speicher entfernen.