Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

ComPtr Class

Creates a smart pointer type that represents the interface specified by the template parameter. ComPtr automatically maintains a reference count for the underlying interface pointer and releases the interface when the reference count goes to zero.

template <
   typename T
>
class ComPtr;

template<
   class U
>
friend class ComPtr;
T

The interface that the ComPtr represents.

U

A class to which the current ComPtr is a friend. (The template that uses this parameter is protected.)

ComPtr<> declares a type that represents the underlying interface pointer. Use ComPtr<> to declare a variable and then use the arrow member-access operator (->) to access an interface member function.

For more information about smart pointers, see the "COM Smart Pointers" subsection of the COM Coding Practices topic in the MSDN Library.

Name

Description

InterfaceType

A synonym for the type specified by the T template parameter.

Name

Description

ComPtr::ComPtr Constructor

Intializes a new instance of the ComPtr class. Overloads provide default, copy, move, and conversion constructors.

ComPtr::~ComPtr Destructor

Deinitializes an instance of ComPtr.

Name

Description

ComPtr::As Method

Returns a ComPtr object that represents the interface identified by the specified template parameter.

ComPtr::AsIID Method

Returns a ComPtr object that represents the interface identified by the specified interface ID.

ComPtr::AsWeak Method

Retrieves a weak reference to the current object.

ComPtr::Attach Method

Associates this ComPtr with the interface type specified by the current template type parameter.

ComPtr::CopyTo Method

Copies the current or specified interface associated with this ComPtr to the specified output pointer.

ComPtr::Detach Method

Disassociates this ComPtr from the interface that it represents.

ComPtr::Get Method

Retrieves a pointer to the interface that is associated with this ComPtr.

ComPtr::GetAddressOf Method

Retrieves the address of the ptr_ data member, which contains a pointer to the interface represented by this ComPtr.

ComPtr::ReleaseAndGetAddressOf Method

Releases the interface associated with this ComPtr and then retrieves the address of the ptr_ data member, which contains a pointer to the interface that was released.

ComPtr::Swap Method

Exchanges the interface managed by the current ComPtr with the interface managed by the specified ComPtr.

Name

Description

ComPtr::InternalAddRef Method

Increments the reference count of the interface associated with this ComPtr.

ComPtr::InternalRelease Method

Performs a COM Release operation on the interface associated with this ComPtr.

Name

Description

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

Indicates whether or not a ComPtr is managing the object lifetime of an interface.

ComPtr::operator& Operator

Retrieves the address of the current ComPtr.

ComPtr::operator= Operator

Assigns a value to the current ComPtr.

ComPtr::operator-> Operator

Retrieves a pointer to the type specified by the current template parameter.

ComPtr::operator== Operator

Indicates whether two ComPtr objects are equal.

ComPtr::operator!= Operator

Indicates whether two ComPtr objects are not equal.

Name

Description

ComPtr::ptr_ Data Member

Contains a pointer to the interface that is associated with, and managed by this ComPtr.

Header: client.h

Namespace: Microsoft::WRL

Show:
© 2014 Microsoft. All rights reserved.