Freigeben über


ComPtr-Klasse

Erstellt einen Typ des intelligenten Zeigermechanismus,, der die Schnittstelle darstellt, die mit dem Vorlagenparameter angegeben wird. ComPtr verwaltet automatisch einem Verweiszähler für den zugrunde liegenden Schnittstellenzeiger bei und gibt die Schnittstelle verwendet, wenn der Verweiszähler auf Null geht.

template <
   typename T
>
class ComPtr;

template<
   class U
>
friend class ComPtr;

Parameter

  • T
    Die Schnittstelle, die das ComPtr darstellt.

  • U
    Eine Klasse, zu der das aktuelle ComPtr ein Friend ist. (Die Vorlage, die diesen Parameter verwendet, geschützt wird.)

Hinweise

ComPtr <> deklariert einen Typ, der den zugrunde liegenden Schnittstellenzeiger darstellt. Verwenden Sie ComPtr <>, um eine Variable zu deklarieren und den Pfeilmemberzugriffsoperator (->) anschließend zum auf Eine Schnittstellen-Memberfunktion zuzugreifen.

Weitere Informationen über intelligenterer Verweise, finden Sie den Unterabschnitt "COM-intelligenterZeiger" des Themas COM Coding Practices in der MSDN Library.

Member

Öffentliche Typedefs

Name

Beschreibung

InterfaceType

Ein Synonym für den Typ angegeben durch T Vorlagenparameter.

Öffentliche Konstruktoren

Name

Beschreibung

ComPtr::ComPtr-Konstruktor

Initialisiert eine neue Instanz der ComPtr-Klasse. Überladungen bereitstellen Standard, kopieren, werden verschoben und Konvertierungskonstruktoren.

ComPtr::~ComPtr-Destruktor

Deinitialisiert eine Instanz von ComPtr.

Öffentliche Methoden

Name

Beschreibung

ComPtr::As-Methode

Gibt einen ComPtr-Objekt zurück, das die Schnittstelle darstellt, die von den angegebenen Vorlagenparameter identifiziert wird.

ComPtr::AsIID-Methode

Gibt einen ComPtr-Objekt zurück, das die Schnittstelle darstellt, die durch die angegebene Schnittstelle ID identifiziert wird

ComPtr::AsWeak-Methode

Ruft einen schwachen Verweis auf das aktuelle Objekt ab.

ComPtr::Attach-Methode

Ordnet dieses ComPtr mit dem Schnittstellentyp zu, der durch den aktuellen Vorlagentypparameter angegeben wird.

ComPtr::CopyTo-Methode

Kopiert den aktuellen oder die angegebene Schnittstelle, die diesem ComPtr dem angegebenen Ausgabezeiger zugeordnet werden.

ComPtr::Detach-Methode

Hebt dieses ComPtr von der Schnittstelle die Zuordnung die sie darstellt.

ComPtr::Get-Methode

Ruft einen Zeiger auf eine Schnittstelle ab, die diesem ComPtr zugeordnet ist.

ComPtr::GetAddressOf-Methode

Ruft die Adresse des ptr_ Datenmembers ab, der einen Zeiger zur Schnittstelle enthält, die durch dieses ComPtr dargestellt wird.

ComPtr::ReleaseAndGetAddressOf-Methode

Gibt die Schnittstelle frei, die diesem ComPtr zugeordnet wird und dann die Adresse des ptr_ Datenmembers ab, der einen Zeiger zur Schnittstelle enthält, die freigegeben wurde.

ComPtr::Swap-Methode

Vertauscht die Schnittstelle aus, die durch das aktuelle ComPtr mit der Schnittstelle verwaltet wird, die durch das angegebene ComPtr verwaltet wird.

Geschützte Methoden

Name

Beschreibung

ComPtr::InternalAddRef-Methode

Inkrementiert den Verweiszähler der Schnittstelle, die diesem ComPtr zugeordnet ist.

ComPtr::InternalRelease-Methode

Führt eine COM-Befreiungsaktion auf der Schnittstelle aus, die diesem ComPtr zugeordnet ist.

Öffentliche Operatoren

Name

Beschreibung

ComPtr::operator Microsoft::WRL::Details::BoolType-Operator

Gibt an, ob ein ComPtr die Objektlebensdauer einer Schnittstelle verwaltet.

ComPtr::operator&-Operator

Ruft die Adresse des aktuellen ComPtr ab.

ComPtr::operator=-Operator

Weist dem aktuellen ComPtr einen Wert zu.

ComPtr::operator->-Operator

Ruft einen Zeiger auf den Typ ab, der durch den aktuellen Vorlagenparameter angegeben wird.

ComPtr::operator==-Operator

Gibt an, ob zwei ComPtr-Objekte gleich sind.

ComPtr::operator!=-Operator

Gibt an, ob zwei ComPtr-Objekte nicht gleich sind.

Geschützte Datenmember

Name

Beschreibung

ComPtr::ptr_-Datenmember

Enthält einen Zeiger auf die Schnittstelle, der zugeordnet ist und von diesem ComPtr verwaltet.

Vererbungshierarchie

ComPtr

Anforderungen

Header: client.h

Namespace: Microsoft::WRL

Siehe auch

Referenz

Microsoft::WRL-Namespace