Partager via


IViewObjectEx ::QueryHitRect, méthode (ocidl.h)

Indique si un point d’un rectangle se trouve dans un aspect de dessin donné d’un objet.

Syntaxe

HRESULT QueryHitRect(
  [in]  DWORD   dwAspect,
  [in]  LPCRECT pRectBounds,
  [in]  LPCRECT pRectLoc,
  [in]  LONG    lCloseHint,
  [out] DWORD   *pHitResult
);

Paramètres

[in] dwAspect

Aspect de dessin demandé.

[in] pRectBounds

Rectangle englobant d’objet dans les coordonnées clientes de la fenêtre contenante. Ce rectangle est calculé et transmis par le conteneur afin que l’objet puisse interpréter de manière significative l’emplacement d’accès.

[in] pRectLoc

Rectangle de test d’accès, spécifié en unités HIMETRIC , par rapport au coin supérieur gauche de l’objet.

[in] lCloseHint

Distance suggérée, en unités HIMETRIC , que le conteneur considère comme proche. Cette valeur est un indicateur et les objets peuvent l’interpréter à leur manière. Les objets peuvent également utiliser cet indicateur pour déduire approximativement la résolution de sortie afin de choisir l’étendue de l’implémentation des tests d’accès.

[out] pHitResult

Pointeur vers les informations retournées sur l’accès exprimé en tant que valeurs d’énumération HITRESULT .

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
Cette méthode n’est pas implémentée pour l’aspect demandé. Utilisez DVASPECT_CONTENT à la place.

Remarques

Les conteneurs peuvent avoir besoin de tester si un objet chevauche un aspect de dessin donné d’un autre objet. Ils peuvent déterminer si les objets se chevauchent en demandant une région ou au moins un rectangle englobant de l’aspect en question. Toutefois, un moyen plus rapide d’effectuer cette opération consiste à appeler IViewObjectEx ::QueryHitRect pour demander à l’objet si un rectangle donné croise l’un de ses aspects de dessin.

Note Contrairement à IViewObjectEx ::QueryHitPoint, cette méthode ne retourne ni HITRESULT_TRANSPARENT ni HITRESULT_CLOSE. Il est strictement atteint ou manqué, renvoyant HITRESULT_OUTSIDE si aucun point du rectangle n’est atteint et HITRESULT_HIT si au moins un point dans le rectangle est un accès.
 

Notes aux implémenteurs

Un objet prenant en charge IViewObjectEx est nécessaire pour implémenter cette méthode au moins pour l’aspect DVASPECT_CONTENT. L’objet ne doit pas effectuer d’autre action en réponse à cette méthode que pour retourner les informations ; il ne devrait pas y avoir d’effets secondaires. S’il existe une ambiguïté quant à savoir si un point est un accès, pour instance en raison de coordonnées qui ne sont pas converties exactement, l’objet doit retourner HITRESULT_HIT chaque fois qu’un point du rectangle peut être un impact sur l’objet. Autrement dit, il est possible de revendiquer un résultat pour un point qui n’est pas réellement rendu, mais jamais correct pour réclamer une erreur pour un point qui se trouve dans l’image rendue de l’objet.

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

HITRESULT

IViewObjectEx