CComDynamicUnkArray Class

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at CComDynamicUnkArray Class.

This class stores an array of IUnknown pointers.

class CComDynamicUnkArray

Public Constructors

NameDescription
CComDynamicUnkArray::CComDynamicUnkArrayConstructor. Initializes the collection values to NULL and the collection size to zero.
CComDynamicUnkArray::~CComDynamicUnkArrayThe destructor.

Public Methods

NameDescription
CComDynamicUnkArray::AddCall this method to add an IUnknown pointer to the array.
CComDynamicUnkArray::beginReturns a pointer to the first IUnknown pointer in the collection.
CComDynamicUnkArray::clearEmpties the array.
CComDynamicUnkArray::endReturns a pointer to one past the last IUnknown pointer in the collection.
CComDynamicUnkArray::GetAtRetrieves the element at the specified index.
CComDynamicUnkArray::GetCookieCall this method to get the cookie associated with a given IUnknown pointer.
CComDynamicUnkArray::GetSizeReturns the length of an array.
CComDynamicUnkArray::GetUnknownCall this method to get the IUnknown pointer associated with a given cookie.
CComDynamicUnkArray::RemoveCall this method to remove an IUnknown pointer from the array.

CComDynamicUnkArray holds a dynamically allocated array of IUnknown pointers, each an interface on a connection point. CComDynamicUnkArray can be used as a parameter to the IConnectionPointImpl template class.

The CComDynamicUnkArray methods begin and end can be used to loop through all connection points (for example, when an event is fired).

See Adding Connection Points to an Object for details on automating creation of connection point proxies.

System_CAPS_ICON_note.jpg Note

Note The class CComDynamicUnkArray is used by the Add Class wizard when creating a control which has Connection Points. If you wish to specify the number of Connection Points manually, change the reference from CComDynamicUnkArray to CComUnkArray< n >, where n is the number of connection points required.

Header: atlcom.h

Call this method to add an IUnknown pointer to the array.

DWORD Add(IUnknown* pUnk);

Parameters

pUnk
The IUnknown pointer to add to the array.

Return Value

Returns the cookie associated with the newly added pointer.

Returns a pointer to the beginning of the collection of IUnknown interface pointers.

IUnknown**
    begin();

Return Value

A pointer to an IUnknown interface pointer.

Remarks

The collection contains pointers to interfaces stored locally as IUnknown. You cast each IUnknown interface to the real interface type and then call through it. You do not need to query for the interface first.

Before using the IUnknown interface, you should check that it is not NULL.

Empties the array.

void clear();

The constructor.

CComDynamicUnkArray();

Remarks

Sets the collection size to zero and initializes the values to NULL. The destructor frees the collection, if necessary.

The destructor.

~CComDynamicUnkArray();

Remarks

Frees resources allocated by the class constructor.

Returns a pointer to one past the last IUnknown pointer in the collection.

IUnknown**
    end();

Return Value

A pointer to an IUnknown interface pointer.

Retrieves the element at the specified index.

IUnknown* GetAt(int nIndex);

Parameters

nIndex
The index of the element to retrieve.

Return Value

A pointer to an IUnknown interface.

Call this method to get the cookie associated with a given IUnknown pointer.

DWORD WINAPI GetCookie(IUnknown** ppFind);

Parameters

ppFind
The IUnknown pointer for which the associated cookie is required.

Return Value

Returns the cookie associated with the IUnknown pointer, or zero if no matching IUnknown pointer is found.

Remarks

If there is more than one instance of the same IUnknown pointer, this function returns the cookie for the first one.

Returns the length of an array.

int GetSize() const;

Return Value

The length of the array.

Call this method to get the IUnknown pointer associated with a given cookie.

IUnknown* WINAPI GetUnknown(DWORD dwCookie);

Parameters

dwCookie
The cookie for which the associated IUnknown pointer is required.

Return Value

Returns the IUnknown pointer, or NULL if no matching cookie is found.

Call this method to remove an IUnknown pointer from the array.

BOOL Remove(DWORD dwCookie);

Parameters

dwCookie
The cookie referencing the IUnknown pointer to be removed from the array.

Return Value

Returns TRUE if the pointer is removed; otherwise FALSE.

CComUnkArray Class
Class Overview

Show: