JUCE v8.0.9
JUCE API
 
Loading...
Searching...
No Matches
juce::ComSmartPtr< ComClass > Class Template Reference

A simple COM smart pointer. More...

#include <juce_ComSmartPtr_windows.h>

Inheritance diagram for juce::ComSmartPtr< ComClass >:
Collaboration diagram for juce::ComSmartPtr< ComClass >:

Public Member Functions

 ComSmartPtr () noexcept=default
 
 ComSmartPtr (const ComSmartPtr &other)
 
template<typename U >
 ComSmartPtr (const ComSmartPtr< U > &other)
 
 ComSmartPtr (std::nullptr_t) noexcept
 
 ~ComSmartPtr () noexcept
 
HRESULT CoCreateInstance (REFCLSID classUUID, DWORD dwClsContext=CLSCTX_INPROC_SERVER)
 
ComClass * get () const noexcept
 
template<class OtherComClass >
ComSmartPtr< OtherComClass > getInterface () const
 
 operator ComClass * () const noexcept
 
ComClass & operator* () const noexcept
 
ComClass * operator-> () const noexcept
 
ComSmartPtroperator= (const ComSmartPtr &newP)
 
template<typename U >
ComSmartPtroperator= (const ComSmartPtr< U > &newP)
 
template<class OtherComClass >
HRESULT QueryInterface (ComSmartPtr< OtherComClass > &destObject) const
 
template<class OtherComClass >
HRESULT QueryInterface (REFCLSID classUUID, ComSmartPtr< OtherComClass > &destObject) const
 
ComClass ** resetAndGetPointerAddress ()
 

Static Public Member Functions

static auto addOwner (ComClass *t)
 Increments refcount.
 
static auto becomeOwner (ComClass *t)
 Does not initially increment refcount; assumes t has a positive refcount.
 

Private Member Functions

 ComSmartPtr (ComClass *object, bool autoAddRef) noexcept
 
ComClass ** operator& () noexcept
 
void release ()
 

Private Attributes

ComClass * p = nullptr
 

Friends

template<typename U >
class ComSmartPtr
 

Detailed Description

template<class ComClass>
class juce::ComSmartPtr< ComClass >

A simple COM smart pointer.

@tags{Core}

Constructor & Destructor Documentation

◆ ComSmartPtr() [1/5]

template<class ComClass >
juce::ComSmartPtr< ComClass >::ComSmartPtr ( )
defaultnoexcept

◆ ComSmartPtr() [2/5]

template<class ComClass >
juce::ComSmartPtr< ComClass >::ComSmartPtr ( std::nullptr_t  )
inlinenoexcept

◆ ComSmartPtr() [3/5]

template<class ComClass >
template<typename U >
juce::ComSmartPtr< ComClass >::ComSmartPtr ( const ComSmartPtr< U > &  other)
inline

◆ ComSmartPtr() [4/5]

template<class ComClass >
juce::ComSmartPtr< ComClass >::ComSmartPtr ( const ComSmartPtr< ComClass > &  other)
inline

◆ ~ComSmartPtr()

template<class ComClass >
juce::ComSmartPtr< ComClass >::~ComSmartPtr ( )
inlinenoexcept

◆ ComSmartPtr() [5/5]

template<class ComClass >
juce::ComSmartPtr< ComClass >::ComSmartPtr ( ComClass *  object,
bool  autoAddRef 
)
inlineprivatenoexcept

Member Function Documentation

◆ addOwner()

template<class ComClass >
static auto juce::ComSmartPtr< ComClass >::addOwner ( ComClass *  t)
inlinestatic

Increments refcount.

References juce::ComSmartPtr< ComClass >::ComSmartPtr.

Referenced by juce::addComSmartPtrOwner().

◆ becomeOwner()

template<class ComClass >
static auto juce::ComSmartPtr< ComClass >::becomeOwner ( ComClass *  t)
inlinestatic

Does not initially increment refcount; assumes t has a positive refcount.

References juce::ComSmartPtr< ComClass >::ComSmartPtr.

Referenced by juce::becomeComSmartPtrOwner().

◆ CoCreateInstance()

template<class ComClass >
HRESULT juce::ComSmartPtr< ComClass >::CoCreateInstance ( REFCLSID  classUUID,
DWORD  dwClsContext = CLSCTX_INPROC_SERVER 
)
inline

◆ get()

template<class ComClass >
ComClass * juce::ComSmartPtr< ComClass >::get ( ) const
inlinenoexcept

◆ getInterface()

template<class ComClass >
template<class OtherComClass >
ComSmartPtr< OtherComClass > juce::ComSmartPtr< ComClass >::getInterface ( ) const
inline

◆ operator ComClass *()

template<class ComClass >
juce::ComSmartPtr< ComClass >::operator ComClass * ( ) const
inlinenoexcept

◆ operator&()

template<class ComClass >
ComClass ** juce::ComSmartPtr< ComClass >::operator& ( )
privatenoexcept

◆ operator*()

template<class ComClass >
ComClass & juce::ComSmartPtr< ComClass >::operator* ( ) const
inlinenoexcept

◆ operator->()

template<class ComClass >
ComClass * juce::ComSmartPtr< ComClass >::operator-> ( ) const
inlinenoexcept

◆ operator=() [1/2]

template<class ComClass >
ComSmartPtr & juce::ComSmartPtr< ComClass >::operator= ( const ComSmartPtr< ComClass > &  newP)
inline

◆ operator=() [2/2]

template<class ComClass >
template<typename U >
ComSmartPtr & juce::ComSmartPtr< ComClass >::operator= ( const ComSmartPtr< U > &  newP)
inline

◆ QueryInterface() [1/2]

template<class ComClass >
template<class OtherComClass >
HRESULT juce::ComSmartPtr< ComClass >::QueryInterface ( ComSmartPtr< OtherComClass > &  destObject) const
inline

◆ QueryInterface() [2/2]

template<class ComClass >
template<class OtherComClass >
HRESULT juce::ComSmartPtr< ComClass >::QueryInterface ( REFCLSID  classUUID,
ComSmartPtr< OtherComClass > &  destObject 
) const
inline

◆ release()

template<class ComClass >
void juce::ComSmartPtr< ComClass >::release ( )
inlineprivate

◆ resetAndGetPointerAddress()

Friends And Related Symbol Documentation

◆ ComSmartPtr

template<class ComClass >
template<typename U >
friend class ComSmartPtr
friend

Member Data Documentation

◆ p


The documentation for this class was generated from the following file: