直接注釈の使用
直接注釈を使用してプロパティの値をオーバーライドするには
- CoCreateInstance または CoCreateInstanceEx 関数を使用して、IAccPropServices オブジェクトを作成します。
- IAccPropServices::SetHwndProp を呼び出し、HWND、オブジェクト ID、子 ID、オーバーライドされるプロパティ、およびプロパティの新しい値を含む VARIANT を渡します。 この手順では、値に注釈を付けます。
- インターフェイス ポインターと空きメモリを解放します。
次の例は、静的テキスト コントロールの 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 UI オートメーション プロパティをオーバーライドまたは追加するには、Microsoft Active Accessibility プロパティ ID ではなく、UI オートメーション プロパティ ID を指定します。 UI オートメーション ID の一覧については、「プロパティ識別子」を参照してください。
プロパティ | 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 |