使用直接注釋

若要使用直接注釋來覆寫屬性的值

  1. 使用 CoCreateInstanceCoCreateInstanceEx 函式來建立 IAccPropServices 物件。
  2. 呼叫 IAccPropServices::SetHwndProp、傳遞 HWND、物件識別碼、子識別碼、要覆寫的屬性,以及包含屬性新值的 VARIANT 。 此步驟會標注值。
  3. 釋放介面指標並釋放記憶體。

下列範例示範如何標注靜態文字控制項的 Role 屬性。

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;
}

指定值時支援的屬性

指定值時,可以標注下列 Microsoft Active Accessibility 屬性, (值必須是直接注釋的記號類型) 。 若要覆寫或新增 Microsoft 消費者介面自動化 屬性至控制項,您可以指定消費者介面自動化屬性識別碼,而不是 Microsoft Active Accessibility 屬性識別碼。 如需消費者介面自動化識別碼的清單,請參閱屬性識別碼

屬性 類型
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