Share via


IAccessible::accLocation-Methode (oleacc.h)

Die IAccessible::accLocation-Methode ruft den aktuellen Bildschirmspeicherort des angegebenen Objekts ab. Alle visuellen Objekte müssen diese Methode unterstützen. Soundobjekte unterstützen diese Methode nicht.

Syntax

HRESULT accLocation(
  [out] long    *pxLeft,
  [out] long    *pyTop,
  [out] long    *pcxWidth,
  [out] long    *pcyHeight,
  [in]  VARIANT varChild
);

Parameter

[out] pxLeft

Typ: long*

Adresse in physischen Bildschirmkoordinaten der Variablen, die die x-Koordinate der oberen linken Grenze der Position des Objekts empfängt.

[out] pyTop

Typ: long*

Adresse in physischen Bildschirmkoordinaten der Variablen, die die y-Koordinate der oberen linken Grenze der Position des Objekts empfängt.

[out] pcxWidth

Typ: long*

Adresse der Variablen in Pixel, die die Breite des Objekts empfängt.

[out] pcyHeight

Typ: long*

Adresse der Variablen in Pixel, die die Höhe des Objekts empfängt.

[in] varChild

Typ: VARIANT

Gibt an, ob der Vom Server zurückgegebene Speicherort der des -Objekts oder eines der untergeordneten Elemente des Objekts sein soll. Dieser Parameter ist entweder CHILDID_SELF (zum Abrufen von Informationen über das Objekt) oder eine untergeordnete ID (zum Abrufen von Informationen über das untergeordnete Element des Objekts). Weitere Informationen zum Initialisieren der VARIANT-Struktur finden Sie unter Verwenden untergeordneter IDs in Parametern.

Rückgabewert

Typ: HRESULT

Gibt bei Erfolg S_OK zurück. Clients müssen immer überprüfen, ob Ausgabeparameter gültige Werte enthalten.

Wenn dies nicht erfolgreich ist, gibt einen der Werte in der folgenden Tabelle oder einen anderen COM-Standardfehlercode zurück. Weitere Informationen finden Sie unter Überprüfen von IAccessible-Rückgabewerten.

Fehler BESCHREIBUNG
DISP_E_MEMBERNOTFOUND
Das -Objekt unterstützt diese Methode nicht.
E_INVALIDARG
Ein Argument ist ungültig.

Hinweise

Diese Methode ruft das umgebende Rechteck des Objekts ab. Wenn das Objekt über eine nicht rechteckige Form verfügt, gibt diese Methode das kleinste Rechteck zurück, das den gesamten Objektbereich vollständig umfasst. Bei nicht rechteckigen Objekten können die Koordinaten des umgebenden Rechtecks des Objekts fehlschlagen, wenn sie mit IAccessible::accHitTest getestet werden. Beispiele für solche nicht rechteckigen Objekte sind Listenansichtselemente im Modus mit großen Symbolen, bei denen ein einzelnes Element ein Rechteck für das Symbol und ein weiteres Rechteck für den Text des Symbols enthält. Da accLocation ein umgebendes Rechteck zurückgibt, sind nicht alle Punkte in diesem Rechteck innerhalb der tatsächlichen Grenzen des Objekts. Einige Punkte innerhalb des umgebenden Rechtecks sind möglicherweise nicht im Objekt enthalten. Weitere Informationen finden Sie unter Navigation durch Treffertests und Bildschirmposition.

Hinweis: Diese Methode gibt Breite und Höhe zurück. Wenn Sie die rechte und die untere Koordinate möchten, berechnen Sie sie mit rechts = links + breite und unten = oben + Höhe.

Serverbeispiel

Das folgende Beispiel zeigt eine mögliche Implementierung der -Methode für ein benutzerdefiniertes Listenfeld, dessen Listenelemente untergeordnete Elemente sind. Für das Listenfeld selbst wird der Aufruf an das barrierefreie Standardobjekt übergeben, das die Bildschirmkoordinaten des Fensters zurückgibt.

// 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;        
        }
    }
};

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile oleacc.h
Bibliothek Oleacc.lib
DLL Oleacc.dll
Verteilbare Komponente Active Accessibility 1.3 RDK unter Windows NT 4.0 mit SP6 und höher und Windows 95

Weitere Informationen

Aktive Barrierefreiheit und Windows Vista-Bildschirmskalierung

Iaccessible

IAccessible::accHitTest

Navigation durch Treffertests und Bildschirmposition

VARIANTE