Windows C++ Library
|
A Wrapper Facade for a 1-dimension SAFEARRAY. More...
#include <VariantVector.hpp>
Public Types | |
typedef T * | iterator |
typedef const T * | const_iterator |
Public Member Functions | |
VariantVector () | |
Default constructor. | |
VariantVector (size_t nSize, VARTYPE eVarType=VT_VARIANT) | |
Construction of a fixed size array. | |
VariantVector (SAFEARRAY *pSafeArray, VARTYPE eVarType=VT_VARIANT, bool bOwner=true) | |
Take ownership of an existing SAFEARRAY. | |
~VariantVector () | |
Destructor. | |
size_t | Size () const |
Get the size of the vector. | |
const T & | operator[] (size_t index) const |
Access the element at the given index. | |
T & | operator[] (size_t index) |
Access the element at the given index. | |
const_iterator | begin () const |
Get an iterator to the start of the vector. | |
iterator | begin () |
Get an iterator to the start of the vector. | |
const_iterator | end () const |
Get an iterator to one past the end of the vector. | |
iterator | end () |
Get an iterator to one past the end of the vector. | |
SAFEARRAY * | Detach () |
Take ownership of the SAFEARRAY. | |
Private Types | |
typedef Core::Scoped< SAFEARRAY * > | SafeArrayPtr |
The RAII type used to manage the SAFEARRAY. | |
Private Member Functions | |
void | Unlock () |
Unlock the underlying storage. | |
void | Release () |
Release the underlying SAFEARRAY. | |
Static Private Member Functions | |
static void | DestroySafeArray (SAFEARRAY *pSafeArray) |
Helper function for destroying a SAFEARRAY as a Scoped<SAFEARRAY*>. | |
Private Attributes | |
size_t | m_nSize |
The size of the vector. | |
SAFEARRAY * | m_pSafeArray |
The underlying SAFEARRAY. | |
bool | m_bOwner |
Flag to signal ownership of the underlying SAFEARRAY. | |
T * | m_pData |
The SAFEARRAY underlying storage. |
A Wrapper Facade for a 1-dimension SAFEARRAY.
typedef T* WCL::VariantVector< T >::iterator |
typedef const T* WCL::VariantVector< T >::const_iterator |
typedef Core::Scoped<SAFEARRAY*> WCL::VariantVector< T >::SafeArrayPtr [private] |
The RAII type used to manage the SAFEARRAY.
WCL::VariantVector< T >::VariantVector | ( | ) | [inline] |
Default constructor.
WCL::VariantVector< T >::VariantVector | ( | size_t | nSize, |
VARTYPE | eVarType = VT_VARIANT |
||
) | [inline, explicit] |
Construction of a fixed size array.
WCL::VariantVector< T >::VariantVector | ( | SAFEARRAY * | pSafeArray, |
VARTYPE | eVarType = VT_VARIANT , |
||
bool | bOwner = true |
||
) | [inline, explicit] |
Take ownership of an existing SAFEARRAY.
WCL::VariantVector< T >::~VariantVector | ( | ) | [inline] |
Destructor.
size_t WCL::VariantVector< T >::Size | ( | ) | const [inline] |
Get the size of the vector.
const T & WCL::VariantVector< T >::operator[] | ( | size_t | index | ) | const [inline] |
Access the element at the given index.
T & WCL::VariantVector< T >::operator[] | ( | size_t | index | ) | [inline] |
Access the element at the given index.
VariantVector< T >::const_iterator WCL::VariantVector< T >::begin | ( | ) | const [inline] |
Get an iterator to the start of the vector.
VariantVector< T >::iterator WCL::VariantVector< T >::begin | ( | ) | [inline] |
Get an iterator to the start of the vector.
VariantVector< T >::const_iterator WCL::VariantVector< T >::end | ( | ) | const [inline] |
Get an iterator to one past the end of the vector.
VariantVector< T >::iterator WCL::VariantVector< T >::end | ( | ) | [inline] |
Get an iterator to one past the end of the vector.
SAFEARRAY * WCL::VariantVector< T >::Detach | ( | ) | [inline] |
Take ownership of the SAFEARRAY.
void WCL::VariantVector< T >::Unlock | ( | ) | [inline, private] |
Unlock the underlying storage.
void WCL::VariantVector< T >::Release | ( | ) | [inline, private] |
Release the underlying SAFEARRAY.
This also unlocks the storage first if required.
void WCL::VariantVector< T >::DestroySafeArray | ( | SAFEARRAY * | pSafeArray | ) | [inline, static, private] |
Helper function for destroying a SAFEARRAY as a Scoped<SAFEARRAY*>.
size_t WCL::VariantVector< T >::m_nSize [private] |
The size of the vector.
SAFEARRAY* WCL::VariantVector< T >::m_pSafeArray [private] |
The underlying SAFEARRAY.
bool WCL::VariantVector< T >::m_bOwner [private] |
Flag to signal ownership of the underlying SAFEARRAY.
T* WCL::VariantVector< T >::m_pData [private] |
The SAFEARRAY underlying storage.