Share via


CComDynamicUnkArray (clase)

Esta clase almacena una matriz de punteros IUnknown.

Sintaxis

class CComDynamicUnkArray

Miembros

Constructores públicos

Nombre Descripción
CComDynamicUnkArray::CComDynamicUnkArray Constructor. Inicializa los valores de la colección en NULL y el tamaño de la colección en cero.
CComDynamicUnkArray::~CComDynamicUnkArray El destructor .

Métodos públicos

Nombre Descripción
CComDynamicUnkArray::Add Llame a este método para agregar un puntero IUnknown a la matriz.
CComDynamicUnkArray::begin Devuelve un puntero al primer puntero IUnknown de la colección.
CComDynamicUnkArray::clear Vacía la matriz.
CComDynamicUnkArray::end Devuelve un puntero a un elemento más allá del último puntero IUnknown de la colección.
CComDynamicUnkArray::GetAt Recupera el elemento en el índice especificado.
CComDynamicUnkArray::GetCookie Llame a este método para obtener la cookie asociada a un puntero IUnknown especificado.
CComDynamicUnkArray::GetSize Devuelve el número de elementos que la matriz puede almacenar.
CComDynamicUnkArray::GetUnknown Llame a este método para obtener el puntero IUnknown asociado a una cookie determinada.
CComDynamicUnkArray::Remove Llame a este método para quitar un puntero IUnknown de la matriz.

Comentarios

CComDynamicUnkArray contiene una matriz asignada dinámicamente de punteros IUnknown, y cada uno de ellos es una interfaz de un punto de conexión. CComDynamicUnkArray se puede usar como parámetro de la clase de plantilla IConnectionPointImpl.

Los métodos CComDynamicUnkArraybegin y end se pueden usar para hacer un bucle con todos los puntos de conexión (por ejemplo, cuando se desencadena un evento).

Consulte Agregar puntos de conexión a un objeto para obtener más información sobre cómo automatizar la creación de servidores proxy de punto de conexión.

Nota:

Nota El Asistente para agregar clases usa la clase CComDynamicUnkArray al crear un control que tenga puntos de conexión. Si desea especificar manualmente el número de puntos de conexión, cambie la referencia de CComDynamicUnkArray a CComUnkArray<n>, donde n es el número de puntos de conexión necesarios.

Requisitos

Encabezado: atlcom.h

CComDynamicUnkArray::Add

Llame a este método para agregar un puntero IUnknown a la matriz.

DWORD Add(IUnknown* pUnk);

Parámetros

pUnk
Puntero IUnknown que se va a agregar a la matriz.

Valor devuelto

Devuelve la cookie asociada al puntero recién agregado. Use esta cookie para recuperar el puntero de la matriz con CComDynamicUnkArray::GetAt.

Comentarios

La posición en la que se inserta este elemento no necesariamente será directamente después del último elemento insertado si Remove() se llamó previamente a en esta matriz. Utilice la cookie devuelta para acceder de forma confiable al puntero insertado. El tamaño de la matriz puede aumentarse para acomodar más elementos. Use GetSize() para obtener el nuevo tamaño.

CComDynamicUnkArray::begin

Devuelve un puntero al principio de la colección de punteros de interfaz IUnknown.

IUnknown**
    begin();

Valor devuelto

Puntero a un puntero de interfaz IUnknown.

Comentarios

La colección contiene punteros a interfaces almacenadas localmente como IUnknown. Convierte cada interfaz IUnknown en el tipo de interfaz real y, a continuación, llama a través de ella. No es necesario que consulte la interfaz primero.

Antes de usar la interfaz IUnknown, debe comprobar que no es NULL.

CComDynamicUnkArray::clear

Vacía la matriz. Restablece el tamaño a 0.

void clear();

CComDynamicUnkArray::CComDynamicUnkArray

Constructor .

CComDynamicUnkArray();

Comentarios

Establece el tamaño de la colección en cero e inicializa los valores en NULL. El destructor libera la colección, si es necesario.

CComDynamicUnkArray::~CComDynamicUnkArray

El destructor .

~CComDynamicUnkArray();

Comentarios

Libera los recursos asignados por el constructor de clase.

CComDynamicUnkArray::end

Devuelve un puntero a un solo paso del último elemento del búfer asignado de la matriz.

Nota: esto significa que no se garantiza que el puntero insertado por última vez esté en end()-1 porque es posible que la matriz no se llene a la capacidad.

IUnknown**
    end();

Valor devuelto

Puntero a un puntero de interfaz IUnknown.

CComDynamicUnkArray::GetAt

Recupera el elemento en el índice especificado.

IUnknown* GetAt(int nIndex);

Parámetros

nIndex
El índice del elemento que se va a recuperar.

Valor devuelto

Puntero a una interfaz IUnknown si anteriormente se agregó un elemento y existe en este índice; en caso contrario NULL, .

CComDynamicUnkArray::GetCookie

Llame a este método para obtener la cookie asociada a un puntero IUnknown especificado.

DWORD WINAPI GetCookie(IUnknown** ppFind);

Parámetros

ppFind
Puntero IUnknown para el que se requiere la cookie asociada.

Valor devuelto

Devuelve la cookie asociada al puntero IUnknown o cero si no se encuentra ningún puntero IUnknown coincidente.

Comentarios

Si hay más de una instancia del mismo puntero IUnknown, esta función devuelve la cookie para la primera.

CComDynamicUnkArray::GetSize

Devuelve la capacidad asignada de la matriz.

Nota: este no es el mismo que el número de elementos que no son NULL actualmente en la matriz.

int GetSize() const;

Valor devuelto

Número de elementos que puede almacenar la matriz. GetSize() == end() - begin().

CComDynamicUnkArray::GetUnknown

Llame a este método para obtener el puntero IUnknown asociado a una cookie determinada.

IUnknown* WINAPI GetUnknown(DWORD dwCookie);

Parámetros

dwCookie
Cookie para la que se requiere el puntero IUnknown asociado.

Valor devuelto

Devuelve el puntero IUnknown o NULL si no se encuentra ninguna cookie coincidente.

CComDynamicUnkArray::Remove

Llame a este método para quitar un puntero IUnknown de la matriz.

Todos los demás elementos no se modifican y conservan su índice y cookie.

BOOL Remove(DWORD dwCookie);

Parámetros

dwCookie
Cookie que hace referencia al puntero IUnknown que se va a quitar de la matriz.

Valor devuelto

Devuelve TRUE si se quita el puntero; en caso contrario, devuelve FALSE.

Consulte también

CComUnkArray (clase)
Información general sobre la clase