Usando a anotação direta
Para usar a anotação direta para substituir o valor de uma propriedade
- Use a função CoCreateInstance ou CoCreateInstanceEx para criar o objeto IAccPropServices .
- Chame IAccPropServices::SetHwndProp, passando o HWND, a ID do objeto, a ID filho, a propriedade a ser substituída e uma VARIANT que contém o novo valor da propriedade. Esta etapa anota o valor.
- Libere os ponteiros da interface e a memória livre.
O exemplo a seguir mostra como anotar a propriedade Role de um controle de texto estático.
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;
}
Propriedades com suporte ao especificar um valor
As propriedades de Acessibilidade Ativa da Microsoft a seguir podem ser anotadas ao especificar um valor (em que o valor deve ser do tipo indicado) para anotação direta. Para substituir ou adicionar uma propriedade do Microsoft Automação da Interface do Usuário a um controle, você pode especificar a ID da propriedade Automação da Interface do Usuário em vez da ID da propriedade Microsoft Active Accessibility. Para obter uma lista de IDs de Automação da Interface do Usuário, consulte Identificadores de propriedade.
Propriedade | Tipo |
---|---|
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 |