Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Supports the WRL infrastructure and is not intended to be used directly from your code.
Syntax
template <typename T>
class ComPtrRef : public ComPtrRefBase<T>;
Parameters
T
A ComPtr<T> type or a type derived from it, not merely the interface represented by the ComPtr
.
Remarks
Represents a reference to an object of type ComPtr<T>
.
Members
Public Constructors
Name | Description |
---|---|
ComPtrRef::ComPtrRef | Initializes a new instance of the ComPtrRef class from the specified pointer to another ComPtrRef object. |
Public Methods
Name | Description |
---|---|
ComPtrRef::GetAddressOf | Retrieves the address of a pointer to the interface represented by the current ComPtrRef object. |
ComPtrRef::ReleaseAndGetAddressOf | Deletes the current ComPtrRef object and returns a pointer-to-a-pointer to the interface that was represented by the ComPtrRef object. |
Public Operators
Name | Description |
---|---|
ComPtrRef::operator InterfaceType** | Deletes the current ComPtrRef object and returns a pointer-to-a-pointer to the interface that was represented by the ComPtrRef object. |
ComPtrRef::operator T* | Returns the value of the ptr_ data member of the current ComPtrRef object. |
ComPtrRef::operator void** | Deletes the current ComPtrRef object, casts the pointer to the interface that was represented by the ComPtrRef object as a pointer-to-pointer-to void , and then returns the cast pointer. |
ComPtrRef::operator* | Retrieves the pointer to the interface represented by the current ComPtrRef object. |
ComPtrRef::operator== | Indicates whether two ComPtrRef objects are equal. |
ComPtrRef::operator!= | Indicates whether two ComPtrRef objects are not equal. |
Inheritance Hierarchy
ComPtrRefBase
ComPtrRef
Requirements
Header: client.h
Namespace: Microsoft::WRL::Details
ComPtrRef::ComPtrRef
Supports the WRL infrastructure and is not intended to be used directly from your code.
ComPtrRef(
_In_opt_ T* ptr
);
Parameters
ptr
The underlying value of another ComPtrRef
object.
Remarks
Initializes a new instance of the ComPtrRef
class from the specified pointer to another ComPtrRef
object.
ComPtrRef::GetAddressOf
Supports the WRL infrastructure and is not intended to be used directly from your code.
InterfaceType* const * GetAddressOf() const;
Return Value
Address of a pointer to the interface represented by the current ComPtrRef
object.
Remarks
Retrieves the address of a pointer to the interface represented by the current ComPtrRef
object.
ComPtrRef::operator==
Supports the WRL infrastructure and is not intended to be used directly from your code.
bool operator==(
const Details::ComPtrRef<ComPtr<T>>& a,
const Details::ComPtrRef<ComPtr<U>>& b
);
bool operator==(
const Details::ComPtrRef<ComPtr<T>>& a,
decltype(__nullptr)
);
bool operator==(
decltype(__nullptr),
const Details::ComPtrRef<ComPtr<T>>& a
);
bool operator==(
const Details::ComPtrRef<ComPtr<T>>& a,
void* b
);
bool operator==(
void* b,
const Details::ComPtrRef<ComPtr<T>>& a
);
Parameters
a
A reference to a ComPtrRef
object.
b
A reference to another ComPtrRef
object, or a pointer to an anonymous type (void*
).
Return Value
The first operator yields true
if object a is equal to object b; otherwise, false
.
The second and third operators yield true
if object a is equal to nullptr
; otherwise, false
.
The fourth and fifth operators yield true
if object a is equal to object b; otherwise, false
.
Remarks
Indicates whether two ComPtrRef
objects are equal.
ComPtrRef::operator!=
Supports the WRL infrastructure and is not intended to be used directly from your code.
bool operator!=(
const Details::ComPtrRef<ComPtr<T>>& a,
const Details::ComPtrRef<ComPtr<U>>& b
);
bool operator!=(
const Details::ComPtrRef<ComPtr<T>>& a,
decltype(__nullptr)
);
bool operator!=(
decltype(__nullptr),
const Details::ComPtrRef<ComPtr<T>>& a
);
bool operator!=(
const Details::ComPtrRef<ComPtr<T>>& a,
void* b
);
bool operator!=(
void* b,
const Details::ComPtrRef<ComPtr<T>>& a
);
Parameters
a
A reference to a ComPtrRef
object.
b
A reference to another ComPtrRef
object, or a pointer to an anonymous object (void*
).
Return Value
The first operator yields true
if object a is not equal to object b; otherwise, false
.
The second and third operators yield true
if object a is not equal to nullptr
; otherwise, false
.
The fourth and fifth operators yield true
if object a is not equal to object b; otherwise, false
.
Remarks
Indicates whether two ComPtrRef
objects are not equal.
ComPtrRef::operator InterfaceType**
Supports the WRL infrastructure and is not intended to be used directly from your code.
operator InterfaceType**();
Remarks
Deletes the current ComPtrRef
object and returns a pointer-to-a-pointer to the interface that was represented by the ComPtrRef
object.
ComPtrRef::operator*
Supports the WRL infrastructure and is not intended to be used directly from your code.
InterfaceType* operator *();
Return Value
Pointer to the interface represented by the current ComPtrRef
object.
Remarks
Retrieves the pointer to the interface represented by the current ComPtrRef
object.
ComPtrRef::operator T*
Supports the WRL infrastructure and is not intended to be used directly from your code.
operator T*();
Remarks
Returns the value of the ptr_ data member of the current ComPtrRef
object.
ComPtrRef::operator void**
Supports the WRL infrastructure and is not intended to be used directly from your code.
operator void**() const;
Remarks
Deletes the current ComPtrRef
object, casts the pointer to the interface that was represented by the ComPtrRef
object as a pointer-to-pointer-to void
, and then returns the cast pointer.
ComPtrRef::ReleaseAndGetAddressOf
Supports the WRL infrastructure and is not intended to be used directly from your code.
InterfaceType** ReleaseAndGetAddressOf();
Return Value
Pointer to the interface that was represented by the deleted ComPtrRef
object.
Remarks
Deletes the current ComPtrRef
object and returns a pointer-to-a-pointer to the interface that was represented by the ComPtrRef
object.