JUCE  v5.4.1-191-g0ab5e696f
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce::ComSmartPtr< ComClass > Class Template Reference

A simple COM smart pointer. More...

#include <juce_win32_ComSmartPtr.h>

Collaboration diagram for juce::ComSmartPtr< ComClass >:

Public Member Functions

 ComSmartPtr () noexcept
 
 ComSmartPtr (ComClass *obj)
 
 ComSmartPtr (const ComSmartPtr &other)
 
 ~ComSmartPtr ()
 
HRESULT CoCreateInstance (REFCLSID classUUID, DWORD dwClsContext=CLSCTX_INPROC_SERVER)
 
 operator ComClass * () const noexcept
 
ComClassoperator* () const noexcept
 
ComClassoperator-> () const noexcept
 
ComSmartPtroperator= (ComClass *const newP)
 
ComSmartPtroperator= (const ComSmartPtr &newP)
 
template<class OtherComClass >
HRESULT QueryInterface (REFCLSID classUUID, ComSmartPtr< OtherComClass > &destObject) const
 
template<class OtherComClass >
HRESULT QueryInterface (ComSmartPtr< OtherComClass > &destObject) const
 
ComClass ** resetAndGetPointerAddress ()
 

Private Member Functions

ComClass ** operator & () noexcept
 
void release ()
 

Private Attributes

ComClassp = nullptr
 

Detailed Description

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

A simple COM smart pointer.

{Core}

Constructor & Destructor Documentation

◆ ComSmartPtr() [1/3]

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

◆ ComSmartPtr() [2/3]

template<class ComClass>
juce::ComSmartPtr< ComClass >::ComSmartPtr ( ComClass obj)
inline

◆ ComSmartPtr() [3/3]

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

◆ ~ComSmartPtr()

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

Member Function Documentation

◆ CoCreateInstance()

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

References __uuidof, and jassert.

◆ operator &()

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

◆ operator ComClass *()

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

◆ 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= ( ComClass *const  newP)
inline

◆ operator=() [2/2]

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

◆ QueryInterface() [1/2]

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

◆ QueryInterface() [2/2]

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

References __uuidof.

◆ release()

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

◆ resetAndGetPointerAddress()

template<class ComClass>
ComClass** juce::ComSmartPtr< ComClass >::resetAndGetPointerAddress ( )
inline

Member Data Documentation

◆ p

template<class ComClass>
ComClass* juce::ComSmartPtr< ComClass >::p = nullptr
private

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