次の方法で共有


サーバー注釈の使用

このトピックでは、サーバー注釈を使用してコールバック オブジェクトを指定する方法について説明します。

コールバック オブジェクトを指定するプロパティをオーバーライドするには

  1. 注釈を付けるアクセス可能な要素への IAccessible インターフェイス ポインターを取得します。
  2. アクセス可能な要素で QueryInterface を呼び出して、 IAccIdentity インターフェイス ポインターを取得します。
  3. IAccIdentity インターフェイス ポインターで IAccIdentity::GetIdentityString() を呼び出して、注釈を付けるアクセス可能な要素を一意に識別する文字列を取得します。
  4. CoCreateInstance または CoCreateInstanceEx を使用して、IAccPropServices オブジェクトを作成します。
  5. IAccPropServer を実装するコンポーネント オブジェクト モデル (COM) オブジェクトを作成します。
  6. IAccPropServices::SetPropServer を呼び出し、ID 文字列、オーバーライドするプロパティを示す GUID、および IAccPropServer コールバック オブジェクトへのポインターを渡します。
  7. インターフェイス ポインターと空きメモリを解放します。

クライアントがアクセス可能な要素の プロパティを要求すると、コールバック オブジェクトが呼び出され、その値がクライアントに返されます。

値を指定する場合と同様に、サーバー開発者は IAccPropServices::ComposeHwndIdentityString メソッドを使用して ID 文字列を取得することもできます。または、 IAccPropServices::SetHwndPropServer メソッドを使用し、ID 文字列の代わりに hwndidObject、または idChild パラメーターを指定できます。

コンテナー オブジェクトで SetPropServer または SetHwndPropServer を使用する場合、サーバー開発者は、必要に応じて、オーバーライドする情報がそのコンテナーのすべての要素の子にも適用されるように指定できます。

サーバーは、 IAccPropServices::ClearProps を使用して、いつでも注釈を明示的にクリアできます。 注釈付けされるアクセス可能な要素が消えると、注釈サービスによって注釈情報が自動的にクリーンされ、解放されるため、通常は必須ではありません。

この手順を使用して注釈を付けることができるプロパティの一覧を次に示します。

コールバックを指定するときにサポートされるプロパティ

コールバックを指定する場合は、次のプロパティに注釈を付けることができます。 現在、これらのプロパティは、値を指定して直接注釈を付けることはできません。

プロパティ 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
PROPID_ACC_FOCUS VT_DISPATCH
VT_I4
PROPID_ACC_SELECTION VT_DISPATCH
VT_I4
VT_UNKNOWN
PROPID_ACC_PARENT VT_DISPATCH
PROPID_ACC_NAV_UP VT_DISPATCH
VT_I4
PROPID_ACC_NAV_DOWN VT_DISPATCH
VT_I4
PROPID_ACC_NAV_LEFT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_RIGHT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_PREV VT_DISPATCH
VT_I4
PROPID_ACC_NAV_NEXT VT_DISPATCH
VT_I4
PROPID_ACC_NAV_FIRSTCHILD VT_DISPATCH
VT_I4
PROPID_ACC_NAV_LASTCHILD VT_DISPATCH
VT_I4