Méthode IAccessible::accLocation (oleacc.h)
La méthode IAccessible::accLocation récupère l’emplacement d’écran actuel de l’objet spécifié. Tous les objets visuels doivent prendre en charge cette méthode. Les objets sonores ne prennent pas en charge cette méthode.
Syntaxe
HRESULT accLocation(
[out] long *pxLeft,
[out] long *pyTop,
[out] long *pcxWidth,
[out] long *pcyHeight,
[in] VARIANT varChild
);
Paramètres
[out] pxLeft
Type : long*
Adresse, en coordonnées d’écran physiques, de la variable qui reçoit la coordonnée x de la limite supérieure gauche de l’emplacement de l’objet.
[out] pyTop
Type : long*
Adresse, en coordonnées d’écran physiques, de la variable qui reçoit la coordonnée y de la limite supérieure gauche de l’emplacement de l’objet.
[out] pcxWidth
Type : long*
Adresse, en pixels, de la variable qui reçoit la largeur de l’objet.
[out] pcyHeight
Type : long*
Adresse, en pixels, de la variable qui reçoit la hauteur de l’objet.
[in] varChild
Type : VARIANT
Spécifie si l’emplacement retourné par le serveur doit être celui de l’objet ou celui de l’un des éléments enfants de l’objet. Ce paramètre est CHILDID_SELF (pour obtenir des informations sur l’objet) ou un ID enfant (pour obtenir des informations sur l’élément enfant de l’objet). Pour plus d’informations sur l’initialisation de la structure VARIANT, consultez Utilisation des ID enfants dans les paramètres.
Valeur retournée
Type : HRESULT
En cas de réussite, retourne S_OK. Les clients doivent toujours case activée que les paramètres de sortie contiennent des valeurs valides.
En cas d’erreur, retourne l’une des valeurs de la table qui suit ou un autre code d’erreur COM standard. Pour plus d’informations, consultez Vérification des valeurs de retour IAccessible.
Error | Description |
---|---|
|
L’objet ne prend pas en charge cette méthode. |
|
Un argument n’est pas valide. |
Notes
Cette méthode récupère le rectangle englobant de l’objet. Si l’objet a une forme non rectangulaire, cette méthode retourne le plus petit rectangle qui englobe complètement la région entière de l’objet. Pour les objets non rectangulaires, les coordonnées du rectangle englobant de l’objet peuvent échouer si elles sont testées avec IAccessible::accHitTest. Des exemples de ces objets non rectangulaires sont les éléments d’affichage de liste en mode icône volumineuse où un seul élément a un rectangle pour l’icône et un autre rectangle pour le texte de l’icône. Étant donné que accLocation retourne un rectangle englobant, tous les points de ce rectangle ne se trouvent pas dans les limites réelles de l’objet. Certains points du rectangle englobant peuvent ne pas se trouver sur l’objet . Pour plus d’informations, consultez Navigation Through Hit Testing et Emplacement de l’écran.
Note: Cette méthode retourne la largeur et la hauteur. Si vous souhaitez obtenir les coordonnées droite et inférieure, calculez-les à l’aide de droite = gauche + largeur, et bas = haut + hauteur.
Exemple de serveur
L’exemple suivant montre une implémentation possible de la méthode pour une zone de liste personnalisée dont les éléments de liste sont des éléments enfants. Pour la zone de liste elle-même, l’appel est passé à l’objet accessible standard, qui retourne les coordonnées d’écran de la fenêtre.
// m_pStdAccessibleObject is the standard accessible object for the control window.
// m_pControl is the object that represents the control. Its GetItemRect method
// retrieves the screen coordinates of the specified item in a zero-based collection.
//
HRESULT STDMETHODCALLTYPE AccServer::accLocation(
long *pxLeft,
long *pyTop,
long *pcxWidth,
long *pcyHeight,
VARIANT varChild)
{
*pxLeft = 0;
*pyTop = 0;
*pcxWidth = 0;
*pcyHeight = 0;
if (varChild.vt != VT_I4)
{
return E_INVALIDARG;
}
if (varChild.lVal == CHILDID_SELF)
{
return m_pStdAccessibleObject->accLocation(pxLeft, pyTop, pcxWidth, pcyHeight, varChild);
}
else
{
RECT rect;
if (m_pControl->GetItemRect(varChild.lVal - 1, &rect) == FALSE)
{
return E_INVALIDARG;
}
else
{
*pxLeft = rect.left;
*pyTop = rect.top;
*pcxWidth = rect.right - rect.left;
*pcyHeight = rect.bottom - rect.top;
return S_OK;
}
}
};
Spécifications
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | oleacc.h |
Bibliothèque | Oleacc.lib |
DLL | Oleacc.dll |
Composant redistribuable | Active Accessibility 1.3 RDK sur Windows NT 4.0 avec SP6 et versions ultérieures et Windows 95 |
Voir aussi
Accessibilité active et mise à l’échelle de l’écran Windows Vista