Usar anotación directa

Para usar la anotación directa para invalidar el valor de una propiedad

  1. Use la función CoCreateInstance o CoCreateInstanceEx para crear el objeto IAccPropServices .
  2. Llame a IAccPropServices::SetHwndProp, pasando el HWND, el identificador de objeto, el identificador secundario, la propiedad que se va a invalidar y una VARIANT que contenga el nuevo valor de la propiedad. Este paso anota el valor.
  3. Libere los punteros de interfaz y libere memoria.

En el ejemplo siguiente se muestra cómo anotar la propiedad Role de un control 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;
}

Propiedades admitidas al especificar un valor

Las siguientes propiedades de accesibilidad activa de Microsoft se pueden anotar al especificar un valor (donde el valor debe ser del tipo indicado) para la anotación directa. Para invalidar o agregar una propiedad de Microsoft Automatización de la interfaz de usuario a un control, puede especificar el identificador de propiedad de Automatización de la interfaz de usuario en lugar del identificador de propiedad de accesibilidad activa de Microsoft. Para obtener una lista de Automatización de la interfaz de usuario identificadores, consulte Identificadores de propiedad.

Propiedad 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