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

Informa a un objeto de la cantidad de espacio para mostrar que su contenedor lo ha asignado.

Sintaxis

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

Parámetros

[in] dwDrawAspect

DWORD que describe qué formulario, o "aspecto", de un objeto se va a mostrar. El contenedor del objeto obtiene este valor de la enumeración DVASPECT (consulte la enumeración FORMATETC ). El aspecto más común es DVASPECT_CONTENT, que especifica una representación completa del objeto dentro de su contenedor. Un objeto también se puede representar como un icono, una versión en miniatura para mostrarse en una herramienta de exploración o una versión de impresión, que muestra el objeto tal como se representaría mediante el comando Imprimir archivo .

[in] psizel

Puntero al límite de tamaño del objeto.

Valor devuelto

Este método devuelve S_OK cuando funciona correctamente. Otros posibles valores devueltos son los siguientes.

Código devuelto Descripción
E_FAIL
Error en la operación.
OLE_E_NOTRUNNING
El objeto no se está ejecutando.

Comentarios

Un contenedor llama a IOleObject::SetExtent cuando necesita dictar a un objeto incrustado el tamaño en el que se mostrará. A menudo, esta llamada se produce en respuesta a un usuario final al cambiar el tamaño de la ventana del objeto. Al recibir la llamada, el objeto, si es posible, debe volver a completarse correctamente para ajustarse a la nueva ventana.

Siempre que sea posible, un contenedor busca mostrar un objeto en su mejor resolución, a veces denominado tamaño nativo del objeto. Sin embargo, todos los objetos tienen un tamaño de presentación predeterminado especificado por sus aplicaciones y, en ausencia de otras restricciones, este es el tamaño que usarán para mostrarse a sí mismos. Dado que un objeto conoce mejor su tamaño de presentación óptimo que su contenedor, normalmente solicita ese tamaño desde un objeto en ejecución llamando a IOleObject::SetExtent. Solo en los casos en los que el contenedor no puede acomodar el valor devuelto por el objeto invalida la preferencia del objeto llamando a IOleObject::SetExtent.

Notas a los autores de llamadas

Puede llamar a IOleObject::SetExtent en un objeto solo cuando se ejecuta el objeto. Si un contenedor cambia el tamaño de un objeto mientras no se está ejecutando un objeto, el contenedor debe realizar un seguimiento del nuevo tamaño del objeto, pero aplazar la llamada a IOleObject::SetExtent hasta que un usuario active el objeto. Si el bit de OLEMISC_RECOMPOSEONRESIZE se establece en un objeto, su contenedor debe forzar la ejecución del objeto antes de llamar a IOleObject::SetExtent.

Como se indicó anteriormente, un contenedor puede querer delegar la responsabilidad de establecer el tamaño del sitio de presentación de un objeto en el propio objeto mediante una llamada a IOleObject::SetExtent.

Notas para los implementadores

Es posible que desee implementar este método para que el objeto se vuelva a escalar para que coincida lo más cerca posible del espacio máximo disponible en su contenedor.

Si el tamaño de un objeto es fijo, es decir, si no se puede establecer mediante su contenedor, IOleObject::SetExtent debe devolver E_FAIL. Este es siempre el caso de los objetos vinculados, cuyos tamaños se establecen por sus orígenes de vínculo, no por sus contenedores.

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

Consulte también

IAdviseSink::OnViewChange

IOleObject

IOleObject::GetExtent

IViewObject2::GetExtent