Método IOleObject::SetExtent (oleidl.h)

Informa a um objeto quanto espaço de exibição seu contêiner atribuiu a ele.

Sintaxe

HRESULT SetExtent(
  [in] DWORD dwDrawAspect,
  [in] SIZEL *psizel
);

Parâmetros

[in] dwDrawAspect

DWORD que descreve qual formulário, ou "aspecto", de um objeto deve ser exibido. O contêiner do objeto obtém esse valor da enumeração DVASPECT (consulte a enumeração FORMATETC ). O aspecto mais comum é DVASPECT_CONTENT, que especifica uma renderização completa do objeto dentro de seu contêiner. Um objeto também pode ser renderizado como um ícone, uma versão em miniatura para exibição em uma ferramenta de navegação ou uma versão de impressão, que exibe o objeto como ele seria renderizado usando o comando File Print .

[in] psizel

Ponteiro para o limite de tamanho do objeto.

Retornar valor

Esse método retorna S_OK em caso de êxito. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
E_FAIL
Falha na operação.
OLE_E_NOTRUNNING
O objeto não está em execução.

Comentários

Um contêiner chama IOleObject::SetExtent quando precisa ditar para um objeto inserido o tamanho em que ele será exibido. Geralmente, essa chamada ocorre em resposta a um usuário final redimensionando a janela do objeto. Ao receber a chamada, o objeto, se possível, deve se recompor normalmente para se ajustar à nova janela.

Sempre que possível, um contêiner busca exibir um objeto em sua melhor resolução, às vezes chamado de tamanho nativo do objeto. Todos os objetos, no entanto, têm um tamanho de exibição padrão especificado por seus aplicativos e, na ausência de outras restrições, esse é o tamanho que eles usarão para se exibirem. Como um objeto conhece melhor seu tamanho de exibição ideal do que seu contêiner, o último normalmente solicita esse tamanho de um objeto em execução chamando IOleObject::SetExtent. Somente nos casos em que o contêiner não pode acomodar o valor retornado pelo objeto, ele substitui a preferência do objeto chamando IOleObject::SetExtent.

Anotações aos Chamadores

Você pode chamar IOleObject::SetExtent em um objeto somente quando o objeto estiver em execução. Se um contêiner redimensionar um objeto enquanto um objeto não estiver em execução, o contêiner deverá controlar o novo tamanho do objeto, mas adiar a chamada de IOleObject::SetExtent até que um usuário ative o objeto. Se o bit OLEMISC_RECOMPOSEONRESIZE estiver definido em um objeto , seu contêiner deverá forçar o objeto a ser executado antes de chamar IOleObject::SetExtent.

Conforme observado acima, um contêiner pode querer delegar a responsabilidade de definir o tamanho do site de exibição de um objeto para o próprio objeto, chamando IOleObject::SetExtent.

Observações aos implementadores

Talvez você queira implementar esse método para que seu objeto se redimensione para corresponder o mais próximo possível do espaço máximo disponível para ele em seu contêiner.

Se o tamanho de um objeto for fixo, ou seja, se ele não puder ser definido por seu contêiner, IOleObject::SetExtent deverá retornar E_FAIL. Esse é sempre o caso de objetos vinculados, cujos tamanhos são definidos por suas fontes de link, não por seus contêineres.

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 oleidl.h

Confira também

IAdviseSink::OnViewChange

Ioleobject

IOleObject::GetExtent

IViewObject2::GetExtent