Uso dell'annotazione diretta
Per usare l'annotazione diretta per eseguire l'override del valore di una proprietà
- Usare la funzione CoCreateInstance o CoCreateInstanceEx per creare l'oggetto IAccPropServices.
- Chiamare IAccPropServices::SetHwndProp, passando l'ID oggetto, l'ID oggetto, l'ID figlio, la proprietà da eseguire l'override e un VALORE VARIANT contenente il nuovo valore della proprietà. Questo passaggio annota il valore.
- Rilasciare i puntatori dell'interfaccia e liberare memoria.
Nell'esempio seguente viene illustrato come annotare la proprietà Role di un controllo testo statico.
HRESULT CMyTextControl::SetAccessibleProperties()
{
// COM is assumed to be initialized...
IAccPropServices* pAccPropServices = NULL;
HRESULT hr = CoCreateInstance(CLSID_AccPropServices,
NULL, CLSCTX_SERVER, IID_IAccPropServices,
(void**)&pAccPropServices);
if (SUCCEEDED(hr))
{
// Annotating the Role of this object to be STATICTEXT
VARIANT var;
var.vt = VT_I4;
var.lVal = ROLE_SYSTEM_STATICTEXT;
hr = pAccPropServices->SetHwndProp(_hwnd,
OBJID_CLIENT,
CHILDID_SELF,
PROPID_ACC_ROLE,
var);
pAccPropServices->Release();
}
return hr;
}
Proprietà supportate quando si specifica un valore
Le seguenti proprietà di Accessibilità attiva Microsoft possono essere annotate quando si specifica un valore (dove il valore deve essere del tipo annotato) per l'annotazione diretta. Per eseguire l'override o aggiungere una proprietà Microsoft Automazione interfaccia utente a un controllo, è possibile specificare l'ID proprietà Automazione interfaccia utente anziché l'ID proprietà Microsoft Active Accessibility. Per un elenco di ID Automazione interfaccia utente, vedere Identificatori di proprietà.
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 |