Partager via


Méthode IViewObjectEx ::GetViewStatus (ocidl.h)

Récupère des informations sur l’opacité de l’objet et les aspects de dessin pris en charge.

Syntaxe

HRESULT GetViewStatus(
  [out] DWORD *pdwStatus
);

Paramètres

[out] pdwStatus

Pointeur vers le status d’affichage. Ces informations sont retournées sous la forme d’une combinaison des valeurs d’énumération VIEWSTATUS .

Valeur retournée

Cette méthode retourne S_OK en cas de réussite.

Remarques

Pour optimiser le processus de dessin, le conteneur doit être en mesure de déterminer si un objet est opaque et s’il a un arrière-plan solide. Il n’est pas nécessaire de redessiner des objets entièrement couverts par un objet complètement opaque. D’autres opérations, telles que le défilement par exemple, peuvent également être hautement optimisées si un objet est opaque et a un arrière-plan solide.

La méthode IViewObjectEx ::GetViewStatus indique si l’objet est entièrement opaque ou non (VIEWSTATUS_OPAQUE bit) et si son arrière-plan est solide (VIEWSTATUS_SOLIDBKGND bit). Ces informations peuvent changer dans le temps. Un objet peut être opaque à un moment donné et devenir totalement ou partiellement transparent ultérieurement, par exemple en raison d’une modification de la propriété BackStyle. Un objet doit informer ses sites lorsqu’il change à l’aide de IAdviseSinkEx ::OnViewStatusChange afin que les sites puissent mettre en cache ces informations pour un accès à haut débit.

Les objets qui ne prennent pas en charge IViewObjectEx sont considérés comme toujours transparents.

La méthode IViewObjectEx ::GetViewStatus retourne également une combinaison de bits indiquant les aspects pris en charge.

Si un aspect de dessin donné n’est pas pris en charge, toutes les méthodes IViewObjectEx prenant un aspect de dessin comme paramètre d’entrée doivent échouer et retourner E_INVALIDARG. La méthode IViewObjectEx ::GetViewStatus permet au conteneur de récupérer des informations sur tous les aspects du dessin en un seul appel rapide. Normalement, l’ensemble des aspects de dessin pris en charge ne doit pas changer avec le temps. Toutefois, si ce n’était pas le cas, un objet doit notifier son conteneur à l’aide de IAdviseSinkEx ::OnViewStatusChange.

Les aspects de dessin pris en charge sont indépendants du fait que l’objet soit opaque, partiellement transparent ou totalement transparent. En particulier, un objet transparent qui ne prend pas en charge DVASPECT_TRANSPARENT doit être dessiné correctement lors du passage de l’arrière à l’avant à l’aide de DVASPECT_CONTENT. Toutefois, cela risque d’entraîner plus de scintillement.

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

Voir aussi

IAdviseSinkEx ::OnViewStatusChange

IViewObjectEx

VIEWSTATUS