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

Fornece a página de propriedades com uma matriz de ponteiros para objetos associados a essa página de propriedades.

Quando a página de propriedades recebe uma chamada para IPropertyPage::Apply, ela deve enviar alterações de valor para esses objetos por meio de quaisquer interfaces apropriadas. A página de propriedades deve consultar essas interfaces. Esse método poderá falhar se os objetos não derem suporte às interfaces esperadas pela página de propriedades.

Sintaxe

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

Parâmetros

[in] cObjects

O número de ponteiros na matriz apontada por ppUnk. Se esse parâmetro for 0, a página de propriedades deverá liberar todos os ponteiros passados anteriormente para esse método.

[in] ppUnk

Um ponteiro para uma matriz de ponteiros de interface IUnknown em que cada ponteiro identifica um objeto exclusivo afetado pela folha de propriedades na qual esta (e possivelmente outra) páginas de propriedades são exibidas. A página de propriedades deve armazenar em cache esses ponteiros chamando AddRef para cada ponteiro nesse momento. Essa matriz de ponteiros é a mesma que foi passada para OleCreatePropertyFrame ou OleCreatePropertyFrameIndirect para invocar a folha de propriedades.

Retornar valor

Esse método pode retornar os valores de retorno padrão E_FAIL, E_INVALIDARG, E_OUTOFMEMORY e E_UNEXPECTED, bem como os valores a seguir.

Código de retorno Descrição
S_OK
A página de propriedades salvou com êxito os ponteiros necessários.
E_NOINTERFACE
Um dos objetos no ppUnk não deu suporte à interface esperada por esta página de propriedades e, portanto, essa página de propriedades não pode se comunicar com ela.
E_POINTER
O endereço em ppUnk não é válido. Por exemplo, pode ser NULL.

Comentários

A página de propriedades é necessária para manter os ponteiros retornados por esse método ou outros consultados por meio deles. Se esses ponteiros IUnknown específicos forem mantidos, a página de propriedades deverá chamar AddRef por meio de cada um ao armatá-los, até o momento em que SetObjects é chamado com cObjects igual a 0. Nesse momento, a página de propriedades deve chamar Release por meio de cada ponteiro, liberando todos os objetos que ela mantinha.

O chamador deve fornecer à página de propriedades esses objetos antes de chamar IPropertyPage::Activate e deve chamar SetObjects com zero como o parâmetro ao desativar a página ou ao liberar o objeto inteiramente. Cada chamada para SetObjects com um parâmetro ppUnk não NULL deve ser correspondida com uma chamada posterior para SetObjects com 0 no parâmetro cObjects.

Anotações aos implementadores

E_NOTIMPL não é um valor retornado válido.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ocidl.h

Confira também

Ipropertypage