Partager via


IOleObject ::SetExtent, méthode (oleidl.h)

Informe un objet de l’espace d’affichage que son conteneur lui a affecté.

Syntaxe

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

Paramètres

[in] dwDrawAspect

DWORD qui décrit la forme ou « aspect » d’un objet à afficher. Le conteneur de l’objet obtient cette valeur à partir de l’énumération DVASPECT (reportez-vous à l’énumération FORMATETC ). L’aspect le plus courant est DVASPECT_CONTENT, qui spécifie un rendu complet de l’objet dans son conteneur. Un objet peut également être rendu sous la forme d’une icône, d’une version miniature à afficher dans un outil de navigation ou d’une version imprimée, qui affiche l’objet tel qu’il serait rendu à l’aide de la commande Imprimer le fichier .

[in] psizel

Pointeur vers la limite de taille de l’objet.

Valeur retournée

Cette méthode retourne S_OK en cas de réussite. Les autres valeurs de retour possibles sont les suivantes.

Code de retour Description
E_FAIL
L'opération a échoué.
OLE_E_NOTRUNNING
L’objet n’est pas en cours d’exécution.

Remarques

Un conteneur appelle IOleObject ::SetExtent lorsqu’il doit dicter à un objet incorporé la taille à laquelle il sera affiché. Souvent, cet appel se produit en réponse à un utilisateur final qui redimensionne la fenêtre d’objet. À la réception de l’appel, l’objet, si possible, doit se recomposer correctement pour s’adapter à la nouvelle fenêtre.

Dans la mesure du possible, un conteneur cherche à afficher un objet à sa meilleure résolution, parfois appelée taille native de l’objet. Toutefois, tous les objets ont une taille d’affichage par défaut spécifiée par leurs applications et, en l’absence d’autres contraintes, il s’agit de la taille qu’ils utiliseront pour s’afficher eux-mêmes. Étant donné qu’un objet connaît mieux sa taille d’affichage optimale que son conteneur, ce dernier demande normalement cette taille à un objet en cours d’exécution en appelant IOleObject ::SetExtent. Ce n’est que dans les cas où le conteneur ne peut pas prendre en charge la valeur retournée par l’objet qu’il remplace la préférence de l’objet en appelant IOleObject ::SetExtent.

Notes aux appelants

Vous pouvez appeler IOleObject ::SetExtent sur un objet uniquement lorsque l’objet est en cours d’exécution. Si un conteneur redimensionne un objet alors qu’un objet n’est pas en cours d’exécution, le conteneur doit suivre la nouvelle taille de l’objet, mais différer l’appel de IOleObject ::SetExtent jusqu’à ce qu’un utilisateur active l’objet. Si le bit OLEMISC_RECOMPOSEONRESIZE est défini sur un objet, son conteneur doit forcer l’exécution de l’objet avant d’appeler IOleObject ::SetExtent.

Comme indiqué ci-dessus, un conteneur peut vouloir déléguer la responsabilité de définir la taille du site d’affichage d’un objet à l’objet lui-même, en appelant IOleObject ::SetExtent.

Notes aux implémenteurs

Vous souhaiterez peut-être implémenter cette méthode afin que votre objet se remettent à l’échelle pour qu’il corresponde au plus près de l’espace maximal disponible dans son conteneur.

Si la taille d’un objet est fixe, c’est-à-dire si elle ne peut pas être définie par son conteneur, IOleObject ::SetExtent doit retourner E_FAIL. C’est toujours le cas avec les objets liés, dont les tailles sont définies par leurs sources de liens, et non par leurs conteneurs.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête oleidl.h

Voir aussi

IAdviseSink ::OnViewChange

IOleObject

IOleObject ::GetExtent

IViewObject2 ::GetExtent