Método IPropertyPage::SetObjects (ocidl.h)

Proporciona la página de propiedades con una matriz de punteros a objetos asociados a esta página de propiedades.

Cuando la página de propiedades recibe una llamada a IPropertyPage::Apply, debe enviar cambios de valor a estos objetos a través de las interfaces adecuadas. La página de propiedades debe consultar esas interfaces. Este método puede producir un error si los objetos no admiten las interfaces esperadas por la página de propiedades.

Sintaxis

HRESULT SetObjects(
  [in] ULONG    cObjects,
  [in] IUnknown **ppUnk
);

Parámetros

[in] cObjects

Número de punteros de la matriz a la que apunta ppUnk. Si este parámetro es 0, la página de propiedades debe liberar los punteros pasados anteriormente a este método.

[in] ppUnk

Puntero a una matriz de punteros de interfaz IUnknown donde cada puntero identifica un objeto único afectado por la hoja de propiedades en la que se muestran las páginas de propiedades (y posiblemente otras). La página de propiedades debe almacenar en caché estos punteros que llaman a AddRef para cada puntero en ese momento. Esta matriz de punteros es la misma que se pasó a OleCreatePropertyFrame o OleCreatePropertyFrameIndirect para invocar la hoja de propiedades.

Valor devuelto

Este método puede devolver los valores devueltos estándar E_FAIL, E_INVALIDARG, E_OUTOFMEMORY y E_UNEXPECTED, así como los siguientes valores.

Código devuelto Descripción
S_OK
La página de propiedades guardó correctamente los punteros necesarios.
E_NOINTERFACE
Uno de los objetos de ppUnk no admitía la interfaz esperada por esta página de propiedades, por lo que esta página de propiedades no se puede comunicar con él.
E_POINTER
La dirección de ppUnk no es válida. Por ejemplo, puede ser NULL.

Comentarios

La página de propiedades es necesaria para mantener los punteros devueltos por este método u otros consultados a través de ellos. Si se mantienen estos punteros IUnknown específicos, la página de propiedades debe llamar a AddRef a través de cada una de ellas al almacenarlos en caché, hasta la hora en que se llama a SetObjects con cObjects igual a 0. En ese momento, la página de propiedades debe llamar a Release a través de cada puntero, liberando los objetos que tenía.

El autor de la llamada debe proporcionar la página de propiedades con estos objetos antes de llamar a IPropertyPage::Activate y debe llamar a SetObjects con cero como parámetro al desactivar la página o al liberar el objeto por completo. Cada llamada a SetObjects con un parámetro ppUnk distinto de NULL debe coincidir con una llamada posterior a SetObjects con 0 en el parámetro cObjects.

Notas para los implementadores

E_NOTIMPL no es un valor devuelto válido.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ocidl.h

Consulte también

IPropertyPage