Condividi tramite


Metodo IAccessible::get_accFocus (oleacc.h)

Il metodo IAccessible::get_accFocus recupera l'oggetto con lo stato attivo della tastiera. Tutti gli oggetti che possono ricevere lo stato attivo della tastiera devono supportare questa proprietà.

Sintassi

HRESULT get_accFocus(
  [out, retval] VARIANT *pvarChild
);

Parametri

[out, retval] pvarChild

Tipo: VARIANT*

Indirizzo di una struttura VARIANT che riceve informazioni sull'oggetto con lo stato attivo. Nella tabella seguente vengono descritte le informazioni restituite in pvarID.

Valore Significato
VT_EMPTY
Nessuno. Né questo oggetto né i relativi figli hanno lo stato attivo della tastiera.
VT_I4
lVal è CHILDID_SELF. L'oggetto stesso ha lo stato attivo della tastiera.
VT_I4
lVal contiene l'ID figlio dell'elemento figlio con lo stato attivo della tastiera.
VT_DISPATCH
Il membro pdispVal è l'indirizzo dell'interfaccia IDispatch per l'oggetto figlio con lo stato attivo della tastiera.

Valore restituito

Tipo: HRESULT

Se ha esito positivo, restituisce S_OK.

In caso contrario, restituisce uno dei valori della tabella che segue o un altro codice di errore COM standard. I server restituiscono questi valori, ma i client devono sempre controllare i parametri di output per assicurarsi che contengano valori validi. Per altre informazioni, vedere Controllo dei valori restituiti IAccessible.

Errore Descrizione
S_FALSE
L'oggetto è una finestra ma non la finestra in primo piano.
DISP_E_MEMBERNOTFOUND
L'oggetto non supporta questa proprietà.

Commenti

Il concetto di stato attivo della tastiera è correlato a quello di una finestra attiva. Una finestra attiva è la finestra in primo piano in cui l'utente funziona. L'oggetto con lo stato attivo della tastiera è la finestra attiva o un oggetto figlio della finestra attiva.

Solo un oggetto o un elemento all'interno di un contenitore ha lo stato attivo in qualsiasi momento. L'oggetto con lo stato attivo della tastiera non è sempre l'oggetto selezionato. Per altre informazioni sulla differenza tra selezione e stato attivo, vedere Proprietà e metodi di selezione e messa a fuoco.

Questo metodo restituisce un puntatore all'interfaccia IDispatch o un ID figlio per pvarID. Per altre informazioni su come usare il puntatore all'interfaccia IDispatch o l'ID figlio, vedere Modalità di utilizzo degli ID figlio nei parametri.

Come con altri metodi e funzioni IAccessible , i client potrebbero ricevere errori per i puntatori di interfaccia IAccessible a causa di un'azione dell'utente. Per altre informazioni, vedere Ricezione di errori per puntatori di interfaccia IAccessible.

Esempio di server

Il codice di esempio seguente mostra una possibile implementazione di questo metodo per una casella di riepilogo personalizzata a selezione singola. Se il controllo non ha lo stato attivo, VT_EMPTY viene restituito nella variante dall'oggetto accessibile standard per HWND. Se il controllo ha lo stato attivo e viene selezionato un elemento, viene restituito l'ID figlio di tale elemento; se non è presente alcuna selezione, viene restituito CHILDID_SELF.

// m_pControl is the control object that is served by this implementation. 
// m_pStdAccessibleObject is the object returned by CreateStdAccessibleObject. 

HRESULT STDMETHODCALLTYPE AccServer::get_accFocus(VARIANT *pvarChild)
{
    FAIL_IF_NO_CONTROL;  // Macro that checks for existence of control. 

    HRESULT hr = m_pStdAccessibleObject->get_accFocus(pvarChild);  
    if (pvarChild->vt != VT_I4)
    {
        return hr;
    }
    else
    {
        int index = m_pControl->GetSelectedIndex();
        if (index <0)
        {
            pvarChild->lVal = CHILDID_SELF;
        }
        else
        {
            // Convert to 1-based index for child ID. 
            pvarChild->lVal = index + 1;
        }
    }
    return S_OK;
};


Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione oleacc.h
Libreria Oleacc.lib
DLL Oleacc.dll
Componente ridistribuibile Accessibilità attiva 1.3 RDK in Windows NT 4.0 con SP6 e versioni successive e Windows 95

Vedi anche

Iaccessible

IAccessible::accSelect

IAccessible::get_accSelection

Idispatch

Proprietà e metodi di selezione e stato attivo