Win32 API 日本語リファレンス
ホームUI.Accessibility › IAccPropServer

IAccPropServer

COM
IID76c0dbbb-15e0-4e7b-b61b-20eeea2001e0継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

アクセス可能な要素のプロパティ値を取得するメソッドを公開します。

メソッド 1

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetPropValue(BYTE* pIDString, DWORD dwIDStringLen, GUID idProp, VARIANT* pvarValue, BOOL* pfHasProp)

アクセス可能な要素のプロパティ値を取得します。

pIDStringBYTE*in要求されているプロパティを識別する文字列を格納します。
dwIDStringLenDWORDinpIDString パラメーターで指定される識別文字列の長さを指定します。
idPropGUIDin目的のプロパティを示す GUID を指定します。
pvarValueVARIANT*outオーバーライドされたプロパティの値を指定します。このパラメーターは pfHasPropTRUE の場合にのみ有効です。pfHasPropFALSE に設定されている場合、サーバーはこれを VT_EMPTY に設定する必要があります。
pfHasPropBOOL*outサーバーが要求されたプロパティの値を提供するかどうかを示します。オーバーライドするプロパティを返す場合、サーバーはこれを TRUE に設定し、プロパティを返さない場合は FALSE に設定する必要があります(この場合、pvarValueVT_EMPTY に設定する必要があります)。

戻り値

型: HRESULT

メモリ不足などの例外的なエラー条件を除き、S_OK を返します。指定されたプロパティがオーバーライドされていない場合、サーバーは pfHasPropFALSE に、pvarValueVT_EMPTY に設定する必要があります。

解説(Remarks)

複数のアクセス可能な要素に注釈を付けるために単一のコールバックオブジェクトが登録されている場合、識別文字列を使用してこの要求がどの要素を参照しているかを判別できます。

アクセス可能な要素が HWND ベースの場合、IAccPropServices::DecomposeHwndIdentityString を使用して識別文字列から HWND/idObject/idChild を抽出できます。

コールバックが指定されたプロパティに対して返す値を持っている場合、その値を pvarValue に返し、pfHasPropTRUE に設定する必要があります。そうでない場合は、pvarValueVT_EMPTY に、pfHasPropFALSE に設定する必要があります。後者の場合、このプロパティの値を取得するために元の IAccessible インターフェイスポインターが使用されます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IAccPropServer "{76C0DBBB-15E0-4E7B-B61B-20EEEA2001E0}"
#usecom global IAccPropServer IID_IAccPropServer "{}"
#comfunc global IAccPropServer_GetPropValue  3 var,int,int,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。