Método IViewObjectEx::QueryHitRect (ocidl.h)

Indica si algún punto de un rectángulo está dentro de un aspecto de dibujo determinado de un objeto.

Sintaxis

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

Parámetros

[in] dwAspect

Aspecto del dibujo solicitado.

[in] pRectBounds

Rectángulo delimitador de objetos en coordenadas de cliente de la ventana contenedora. El contenedor calcula y pasa este rectángulo para que el objeto pueda interpretar significativamente la ubicación de aciertos.

[in] pRectLoc

Rectángulo de prueba de posicionamiento, especificado en unidades HIMETRIC , en relación con la esquina superior izquierda del objeto.

[in] lCloseHint

Distancia sugerida, en unidades HIMETRIC , que el contenedor considera cerrar. Este valor es una sugerencia y los objetos pueden interpretarlo de forma propia. Los objetos también pueden usar esta sugerencia para deducir aproximadamente la resolución de salida para elegir la ampliación de la implementación de la prueba de posicionamiento.

[out] pHitResult

Puntero para devolver información sobre el acierto expresado como los valores de enumeración HITRESULT .

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
Este método no se implementa para el aspecto solicitado. Use DVASPECT_CONTENT en su lugar.

Comentarios

Es posible que los contenedores necesiten probar si un objeto se superpone a un aspecto de dibujo determinado de otro objeto. Pueden determinar si los objetos se superponen solicitando una región o al menos un rectángulo delimitador del aspecto en cuestión. Sin embargo, una manera más rápida de hacerlo es llamar a IViewObjectEx::QueryHitRect para preguntar al objeto si un rectángulo determinado interseca uno de sus aspectos de dibujo.

Nota A diferencia de IViewObjectEx::QueryHitPoint, este método no devuelve HITRESULT_TRANSPARENT ni HITRESULT_CLOSE. Es estrictamente golpeado o perdido, devolviendo HITRESULT_OUTSIDE si no se alcanza ningún punto en el rectángulo y HITRESULT_HIT si al menos un punto del rectángulo es un golpe.
 

Notas para los implementadores

Se requiere un objeto compatible con IViewObjectEx para implementar este método al menos para el aspecto DVASPECT_CONTENT. El objeto no debe realizar ninguna otra acción en respuesta a este método que no sea para devolver la información; no debe haber efectos secundarios. Si hay alguna ambigüedad sobre si un punto es un acierto, por ejemplo, debido a que las coordenadas no se convierten exactamente, el objeto debe devolver HITRESULT_HIT cada vez que cualquier punto del rectángulo pueda ser un golpe en el objeto. Es decir, se permite reclamar un acierto para un punto que no se representa realmente, pero nunca corregir para reclamar un error para cualquier punto que esté en la imagen representada del objeto.

Requisitos

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

Consulte también

HITRESULT

IViewObjectEx