Condividi tramite


Uso dell'annotazione del server

In questo argomento vengono fornite informazioni sull'uso dell'annotazione del server per specificare un oggetto callback.

Per eseguire l'override di una proprietà che specifica un oggetto callback

  1. Ottenere un puntatore all'interfaccia IAccessible per l'elemento accessibile che deve essere annotato.
  2. Chiamare QueryInterface sull'elemento accessibile per ottenere un puntatore all'interfaccia IAccIdentity .
  3. Chiamare IAccIdentity::GetIdentityString() sul puntatore all'interfaccia IAccIdentity per ottenere una stringa che identifica in modo univoco l'elemento accessibile da annotare.
  4. Utilizzare CoCreateInstance o CoCreateInstanceEx per creare l'oggetto IAccPropServices .
  5. Creare un oggetto COM (Component Object Model) che implementa IAccPropServer.
  6. Chiamare IAccPropServices::SetPropServer, passando la stringa di identità, un GUID che indica la proprietà di cui eseguire l'override e un puntatore all'oggetto callback IAccPropServer .
  7. Puntatori all'interfaccia di rilascio e memoria libera.

Quando un client richiede la proprietà dell'elemento accessibile, l'oggetto callback verrà chiamato e restituirà il valore al client.

Come quando si specifica un valore, gli sviluppatori di server possono in alternativa usare il metodo IAccPropServices::ComposeHwndIdentityString per ottenere una stringa di identità; oppure possono usare il metodo IAccPropServices::SetHwndPropServer e specificare i parametri hwnd, idObject o idChild anziché una stringa identity.

Quando si usa SetPropServer o SetHwndPropServer in un oggetto contenitore, gli sviluppatori del server possono facoltativamente specificare che le informazioni di override devono essere applicate anche a tutti gli elementi figlio di tale contenitore.

I server possono cancellare in modo esplicito l'annotazione in qualsiasi momento usando IAccPropServices::ClearProps. Questa operazione non è in genere necessaria, poiché il servizio di annotazione pulisce automaticamente e rilascia le informazioni sulle annotazioni quando l'elemento accessibile da annotare scompare.

Di seguito è riportato un elenco di proprietà che possono essere annotate usando questa procedura.

Proprietà supportate quando si specifica un callback

Quando si specifica un callback, è possibile annotare le proprietà seguenti. Attualmente queste proprietà non possono essere annotate direttamente specificando un valore.

Proprietà Type
PROPID_ACC_NAME VT_BSTR
PROPID_ACC_DESCRIPTION VT_BSTR
PROPID_ACC_ROLE VT_I4
PROPID_ACC_STATE VT_I4
PROPID_ACC_HELP VT_BSTR
PROPID_ACC_KEYBOARDSHORTCUT VT_BSTR
PROPID_ACC_DEFAULTACTION VT_BSTR
PROPID_ACC_VALUEMAP VT_BSTR
PROPID_ACC_ROLEMAP VT_BSTR
PROPID_ACC_STATEMAP VT_BSTR
PROPID_ACC_FOCUS VT_DISPATCH
VT_I4
PROPID_ACC_SELECTION VT_DISPATCH
VT_I4
VT_UNKNOWN
PROPID_ACC_PARENT VT_DISPATCH
PROPID_ACC_NAV_UP VT_DISPATCH
VT_I4
PROPID_ACC_NAV_DOWN VT_DISPATCH
VT_I4
PROPID_ACC_NAV_LEFT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_RIGHT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_PREV VT_DISPATCH
VT_I4
PROPID_ACC_NAV_NEXT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_FIRSTCHILD VT_DISPATCH
VT_I4
PROPID_ACC_NAV_LASTCHILD VT_DISPATCH
VT_I4