Separatista
EnumVariant Class Reference
Inheritance diagram for EnumVariant:
SepaControlUnknown< IEnumVARIANT >

Public Member Functions

STDMETHOD() Next (unsigned long celt, VARIANT FAR *rgvar, unsigned long FAR *pceltFetched)
 
STDMETHOD() Skip (unsigned long celt)
 
STDMETHOD() Reset ()
 
STDMETHOD() Clone (IEnumVARIANT FAR *FAR *ppenum)
 
HRESULT Add (const VARIANT &vt)
 
- Public Member Functions inherited from SepaControlUnknown< IEnumVARIANT >
 SepaControlUnknown ()
 
HRESULT STDMETHODCALLTYPE QueryInterface (REFIID iid, void **pvvObject)
 
ULONG STDMETHODCALLTYPE AddRef ()
 
ULONG STDMETHODCALLTYPE Release ()
 

Protected Types

typedef std::array< VARIANT, VariantBlockSizeVariantBlockType
 
typedef std::vector< VariantBlockType * > VariantBlockList
 

Protected Member Functions

 ~EnumVariant ()
 
HRESULT Grow ()
 
VARIANT & Get (std::size_t index)
 
- Protected Member Functions inherited from SepaControlUnknown< IEnumVARIANT >
virtual ~SepaControlUnknown ()
 

Static Protected Attributes

static const std::size_t VariantBlockSize = 10
 

Additional Inherited Members

- Protected Attributes inherited from SepaControlUnknown< IEnumVARIANT >
ULONG m_uRefCount
 

Constructor & Destructor Documentation

◆ ~EnumVariant()

EnumVariant::~EnumVariant ( )
protected

Destructor with protected access. This object has to be freed through Release method since it uses reference counting. Calls VariantClear on all objects in the internal list.

See also
Release()

Member Function Documentation

◆ Add()

HRESULT EnumVariant::Add ( const VARIANT &  vt)

Add a variant to the intenal list.

◆ Get()

VARIANT & EnumVariant::Get ( std::size_t  index)
protected

Get the VARIANT at index

◆ Grow()

HRESULT EnumVariant::Grow ( )
protected

Adds one VARIANT block to the objects list.

Member Data Documentation

◆ VariantBlockSize

const std::size_t EnumVariant::VariantBlockSize = 10
staticprotected

The count of VARIANT structures in the objects array

See also
m_objects;

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