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

IAccPropServices

COM
IID6e26e776-04f0-495d-80e4-3330352e3169継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

アクセシブル要素に注釈を付けるためのメソッド、および識別文字列(identity string)を操作するためのメソッドを公開します。

メソッド 15

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

vtbl 3 HRESULT SetPropValue(BYTE* pIDString, DWORD dwIDStringLen, GUID idProp, VARIANT var)

SetPropValue を使用して、注釈を付けるアクセシブル要素を指定し、注釈を付けるプロパティを指定し、そのプロパティの新しい値を指定します。

pIDStringBYTE*in注釈を付けるアクセシブル要素を識別します。
dwIDStringLenDWORDinpIDString パラメーターで識別される文字列の長さを指定します。
idPropGUIDin注釈を付けるアクセシブル要素のプロパティを指定します。
varVARIANTinプロパティの新しい値を指定します。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

idProp がサポートされているプロパティでない場合、var がそのプロパティに対してサポートされている型でない場合、または識別文字列が有効でない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

解説(Remarks)

サポートされているプロパティとその想定される型の一覧については、サポートに関するセクションを参照してください。現在、一部のプロパティはコールバックを使用する場合にのみサポートされ、このメソッドを使用して直接指定することはできない点に注意してください。

vtbl 4 HRESULT SetPropServer(BYTE* pIDString, DWORD dwIDStringLen, GUID* paProps, INT cProps, IAccPropServer* pServer, AnnoScope annoScope)

サーバーは SetPropServer を使用して、アクセシブル要素のプロパティ配列に注釈を付けるために使用するコールバックオブジェクトを指定します。

pIDStringBYTE*in注釈を付けるアクセシブル要素を識別します。
dwIDStringLenDWORDinpIDString パラメーターで識別される文字列の長さを指定します。
paPropsGUID*in指定したコールバックオブジェクトによって処理されるプロパティの配列を指定します。
cPropsINTin指定したコールバックオブジェクトによって処理されるプロパティの配列を指定します。
pServerIAccPropServer*inクライアントがオーバーライドされたプロパティのいずれかを要求したときに呼び出されるコールバックオブジェクトを指定します。
annoScopeAnnoScopeinANNO_THIS(注釈が指定したアクセシブル要素のみに影響することを示す)、または ANNO_CONTAINER(注釈がその要素とその直下の子要素に適用されることを示す)を指定できます。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

paProps 配列内のいずれかのプロパティがサポートされているプロパティでない場合、識別文字列が有効でない場合、または annoScopeANNO_THIS または ANNO_CONTAINER のいずれでもない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

解説(Remarks)

サポートされているプロパティとその想定される型の一覧については、サポートに関するセクションを参照してください。

注釈ランタイムは AddRef を使用して、pServer コールバックオブジェクトの参照カウンターを適切にインクリメントします。呼び出し元は、このメソッドを呼び出した後に自由に Release できます。注釈ランタイムは、注釈を付けているアクセシブル要素が使用されなくなった後、コールバックオブジェクトを自動的に解放します。

vtbl 5 HRESULT ClearProps(BYTE* pIDString, DWORD dwIDStringLen, GUID* paProps, INT cProps)

サーバーは ClearProps を使用して、以前に注釈を付けたアクセシブル要素のプロパティを既定値に戻します。

pIDStringBYTE*in注釈を解除するアクセシブル要素を識別します。
dwIDStringLenDWORDinpIDString の長さです。
paPropsGUID*inリセットするプロパティの配列を指定します。これらのプロパティは、注釈が付けられる前に示していた既定の動作に戻ります。
cPropsINTinpaProps 配列のサイズです。

戻り値

Type: HRESULT

成功した場合は、指定したプロパティがアクセシブルオブジェクトに一度も注釈されていなかった場合でも S_OK を返します。既にクリアされているプロパティをクリアすることは成功と見なされます。

paProps 配列内のいずれかのプロパティがサポートされていない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

解説(Remarks)

サポートされているプロパティとその想定される型の一覧については、サポートに関するセクションを参照してください。

プロパティの注釈をクリアすると、関連するリソースが解放されます。コールバックプロパティサーバーが使用されていた場合(SetPropServer を参照)、それも解放されます。

vtbl 6 HRESULT SetHwndProp(HWND hwnd, DWORD idObject, DWORD idChild, GUID idProp, VARIANT var)

このメソッドは SetPropValue をラップし、HWND ベースのアクセシブル要素に注釈を付ける呼び出し元に便利なエントリポイントを提供します。新しい値が文字列である場合は、代わりに IAccPropServices::SetHwndPropStr を使用できます。

hwndHWNDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
idObjectDWORDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
idChildDWORDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
idPropGUIDinその要素のどのプロパティに注釈を付けるかを指定します。
varVARIANTinそのプロパティの新しい値を指定します。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

idProp プロパティがサポートされていない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

解説(Remarks)

このメソッドを使用すると、呼び出し元は識別文字列を取得する必要がなく、hwndidObjectidChild の各パラメーターを直接指定できます。

vtbl 7 HRESULT SetHwndPropStr(HWND hwnd, DWORD idObject, DWORD idChild, GUID idProp, LPWSTR str)

このメソッドは SetPropValue をラップし、HWND ベースのアクセシブル要素に注釈を付ける呼び出し元により便利なエントリポイントを提供します。

hwndHWNDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
idObjectDWORDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
idChildDWORDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
idPropGUIDinその要素のどのプロパティに注釈を付けるかを指定します。
strLPWSTRinそのプロパティの新しい値を指定します。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

解説(Remarks)

このメソッドを使用すると、呼び出し元は識別文字列を取得する必要がなく、hwndidObjectidChild の各パラメーターを直接指定できます。

vtbl 8 HRESULT SetHwndPropServer(HWND hwnd, DWORD idObject, DWORD idChild, GUID* paProps, INT cProps, IAccPropServer* pServer, AnnoScope annoScope)

このメソッドは SetPropServer をラップし、HWND ベースのアクセシブル要素に注釈を付ける呼び出し元に便利なエントリポイントを提供します。

hwndHWNDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
idObjectDWORDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
idChildDWORDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
paPropsGUID*in指定したコールバックオブジェクトによって処理されるプロパティの配列を指定します。
cPropsINTinpaProps 配列内のプロパティの数を指定します。
pServerIAccPropServer*inコールバックオブジェクトを指定します。これは、クライアントがオーバーライドされたプロパティのいずれかを要求したときに呼び出されます。
annoScopeAnnoScopeinANNO_THIS(注釈が指定したアクセシブル要素のみに影響することを示す)、または ANNO_CONTAINER(注釈がその要素とその直下の子要素に適用されることを示す)を指定できます。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

paProps 配列内のいずれかのプロパティがサポートされているプロパティでない場合、識別文字列が有効でない場合、または annoScopeANNO_THIS または ANNO_CONTAINER のいずれでもない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

解説(Remarks)

このメソッドを使用すると、呼び出し元は識別文字列を取得する必要がなく、hwndidObjectidChild の各パラメーターを直接指定できます。

vtbl 9 HRESULT ClearHwndProps(HWND hwnd, DWORD idObject, DWORD idChild, GUID* paProps, INT cProps)

このメソッドは SetPropValue、SetPropServer、および ClearProps をラップし、HWND ベースのアクセシブル要素に注釈を付ける呼び出し元に便利なエントリポイントを提供します。

hwndHWNDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
idObjectDWORDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
idChildDWORDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
paPropsGUID*inリセットするプロパティの配列を指定します。これらのプロパティは、注釈が付けられる前に示していた既定の動作に戻ります。
cPropsINTinpaProps 配列内のプロパティの数を指定します。

戻り値

Type: HRESULT

成功した場合は、指定したプロパティがアクセシブルオブジェクトに一度も注釈されていなかった場合でも S_OK を返します。既にクリアされているプロパティをクリアすることは成功と見なされます。

paProps 配列内のいずれかのプロパティがサポートされていない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

戻り値の説明については、対応する SetPropValueSetPropServer、または ClearProps メソッドを参照してください。

解説(Remarks)

このメソッドを使用すると、呼び出し元は識別文字列を取得する必要がなく、hwndidObjectidChild の各パラメーターを直接指定できます。

さらに、SetHwndPropStr はパラメーターとして通常の Unicode 文字列を受け取ります。呼び出し元が BSTR を特別に割り当てる必要はありません。

vtbl 10 HRESULT ComposeHwndIdentityString(HWND hwnd, DWORD idObject, DWORD idChild, BYTE** ppIDString, DWORD* pdwIDStringLen)

呼び出し元は ComposeHwndIdentityString を使用して識別文字列を取得します。

hwndHWNDin呼び出し元が識別したいアクセシブル要素の HWND を指定します。
idObjectDWORDinアクセシブル要素のオブジェクト ID を指定します。
idChildDWORDinアクセシブル要素の子 ID を指定します。
ppIDStringBYTE**out識別文字列を受け取るバッファーへのポインターです。呼び出された側は CoTaskMemAlloc を使用してこのバッファーを割り当てます。使用が終わったら、呼び出し元は CoTaskMemFree を呼び出してバッファーを解放する必要があります。
pdwIDStringLenDWORD*out識別文字列の長さを受け取るバッファーへのポインターです。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

hwndidObject、または idChild が有効でない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

vtbl 11 HRESULT DecomposeHwndIdentityString(BYTE* pIDString, DWORD dwIDStringLen, HWND* phwnd, DWORD* pidObject, DWORD* pidChild)

このメソッドを使用して、識別文字列によって識別されるアクセシブル要素の HWND、オブジェクト ID、および子 ID を判別します。

pIDStringBYTE*inHWND ベースのアクセシブル要素の識別文字列を含むバッファーへのポインターです。
dwIDStringLenDWORDinpIDString で指定された識別文字列の長さを指定します。
phwndHWND*outアクセシブル要素の HWND を受け取るバッファーへのポインターです。
pidObjectDWORD*outアクセシブル要素のオブジェクト ID を受け取るバッファーへのポインターです。
pidChildDWORD*outアクセシブル要素の子 ID を受け取るバッファーへのポインターです。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

phwndpidObject、または pidChild が有効でない場合、または指定された識別文字列が HWND ベースの識別文字列でない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

解説(Remarks)

このメソッドは、指定された識別文字列が HWND ベースの識別文字列である場合にのみ成功します。このメソッドは、ANNO_CONTAINER スコープで登録された IAccPropServer コールバックサーバーで使用すると便利です。指定された識別文字列から、クライアントがサーバーを呼び出している対象の子要素(idChild)をサーバーが判別できるためです。

vtbl 12 HRESULT SetHmenuProp(HMENU hmenu, DWORD idChild, GUID idProp, VARIANT var)

このメソッドは SetPropValue をラップし、HMENU ベースのアクセシブル要素に注釈を付ける呼び出し元に便利なエントリポイントを提供します。新しい値が文字列である場合は、代わりに IAccPropServices::SetHmenuPropStr を使用できます。

hmenuHMENUin注釈を付ける HMENU ベースのアクセシブル要素を識別します。
idChildDWORDinアクセシブル要素の子 ID を指定します。
idPropGUIDinアクセシブル要素のどのプロパティに注釈を付けるかを指定します。
varVARIANTinidProp プロパティの新しい値を指定します。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

vtbl 13 HRESULT SetHmenuPropStr(HMENU hmenu, DWORD idChild, GUID idProp, LPWSTR str)

このメソッドは SetPropValue をラップし、HMENU ベースのアクセシブル要素に注釈を付ける呼び出し元により便利なエントリポイントを提供します。

hmenuHMENUin注釈を付ける HMENU ベースのアクセシブル要素を識別します。
idChildDWORDinアクセシブル要素の子 ID を指定します。
idPropGUIDinアクセシブル要素のどのプロパティに注釈を付けるかを指定します。
strLPWSTRinidProp プロパティの新しい値を指定します。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

解説(Remarks)

このメソッドを使用すると、呼び出し元は識別文字列を取得する必要がなく、hmenuidObjectidChild の各パラメーターを直接指定できます。

vtbl 14 HRESULT SetHmenuPropServer(HMENU hmenu, DWORD idChild, GUID* paProps, INT cProps, IAccPropServer* pServer, AnnoScope annoScope)

このメソッドは SetPropServer をラップし、HMENU ベースのアクセシブル要素に注釈を付ける呼び出し元に便利なエントリポイントを提供します。

hmenuHMENUin注釈を付ける HMENU アクセシブル要素を識別します。
idChildDWORDin注釈を付けるアクセシブル要素を識別します。これは識別文字列の代わりになります。
paPropsGUID*in指定したコールバックオブジェクトによって処理されるプロパティの配列を指定します。
cPropsINTinpaProps 配列内のプロパティの数を指定します。
pServerIAccPropServer*inコールバックオブジェクトを指定します。これは、クライアントがオーバーライドされたプロパティのいずれかを要求したときに呼び出されます。
annoScopeAnnoScopeinANNO_THIS(注釈が指定したアクセシブル要素のみに影響することを示す)、または ANNO_CONTAINER(注釈がその要素とその直下の子要素に適用されることを示す)を指定できます。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

paProps 配列内のいずれかのプロパティがサポートされているプロパティでない場合、識別文字列が有効でない場合、または annoScopeANNO_THIS または ANNO_CONTAINER のいずれでもない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

解説(Remarks)

このメソッドを使用すると、呼び出し元は識別文字列を取得する必要がなく、hmenuidChild の各パラメーターを直接指定できます。

vtbl 15 HRESULT ClearHmenuProps(HMENU hmenu, DWORD idChild, GUID* paProps, INT cProps)

このメソッドは ClearProps をラップし、HMENU ベースのアクセシブル要素に注釈を付ける呼び出し元に便利なエントリポイントを提供します。

hmenuHMENUin注釈を付ける HMENU ベースのアクセシブル要素を識別します。
idChildDWORDinアクセシブル要素の子 ID を指定します。
paPropsGUID*inリセットするプロパティの配列を指定します。これらのプロパティは、注釈が付けられる前に示していた既定の動作に戻ります。
cPropsINTinpaProps 配列内のプロパティの数を指定します。

戻り値

Type: HRESULT

成功した場合は、指定したプロパティがアクセシブルオブジェクトに一度も注釈されていなかった場合でも S_OK を返します。既にクリアされているプロパティをクリアすることは成功と見なされます。

paProps 配列内のいずれかのプロパティがサポートされていない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

その他のパラメーターと戻り値の説明については、ClearProps メソッドを参照してください。

解説(Remarks)

このメソッドを使用すると、呼び出し元は識別文字列を取得する必要がなく、hmenuidChild の各パラメーターを直接指定できます。

vtbl 16 HRESULT ComposeHmenuIdentityString(HMENU hmenu, DWORD idChild, BYTE** ppIDString, DWORD* pdwIDStringLen)

呼び出し元は ComposeHmenuIdentityString を使用して、HMENU ベースのアクセシブル要素の識別文字列を取得します。

hmenuHMENUinHMENU ベースのアクセシブル要素を識別します。
idChildDWORDinアクセシブル要素の子 ID を指定します。
ppIDStringBYTE**out識別文字列を受け取るバッファーへのポインターです。呼び出された側は CoTaskMemAlloc を使用してこのバッファーを割り当てます。使用が終わったら、呼び出し元は CoTaskMemFree を呼び出してバッファーを解放する必要があります。
pdwIDStringLenDWORD*out識別文字列の長さを受け取るバッファーへのポインターです。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

hmenu または idChild が有効でない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

vtbl 17 HRESULT DecomposeHmenuIdentityString(BYTE* pIDString, DWORD dwIDStringLen, HMENU* phmenu, DWORD* pidChild)

このメソッドを使用して、識別文字列によって識別されるアクセシブル要素の HMENU、オブジェクト ID、および子 ID を判別します。

pIDStringBYTE*inHMENU ベースのアクセシブル要素の識別文字列を含むバッファーへのポインターです。
dwIDStringLenDWORDinpIDString で指定された識別文字列の長さを指定します。
phmenuHMENU*outアクセシブル要素の HMENU を受け取るバッファーへのポインターです。
pidChildDWORD*outアクセシブル要素の子 ID を受け取るバッファーへのポインターです。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。

phmenu または pidChild が有効でない場合、または指定された識別文字列が HMENU ベースの識別文字列でない場合は E_INVALIDARG を返します。

メモリ不足などの例外的なエラー状況では、その他のエラーコードを返す場合があります。

解説(Remarks)

このメソッドは、指定された識別文字列が HMENU ベースの識別文字列である場合にのみ成功します。このメソッドは、ANNO_CONTAINER スコープで登録された IAccPropServer コールバックサーバーで使用すると便利です。指定された識別文字列から、クライアントがサーバーを呼び出している対象の子要素(idChild)をサーバーが判別できるためです。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IAccPropServices "{6E26E776-04F0-495D-80E4-3330352E3169}"
#usecom global IAccPropServices IID_IAccPropServices "{B5F8350B-0548-48B1-A6EE-88BD00B4A5E7}"
#comfunc global IAccPropServices_SetPropValue                  3 var,int,int,int
#comfunc global IAccPropServices_SetPropServer                 4 var,int,var,int,sptr,int
#comfunc global IAccPropServices_ClearProps                    5 var,int,var,int
#comfunc global IAccPropServices_SetHwndProp                   6 sptr,int,int,int,int
#comfunc global IAccPropServices_SetHwndPropStr                7 sptr,int,int,int,wstr
#comfunc global IAccPropServices_SetHwndPropServer             8 sptr,int,int,var,int,sptr,int
#comfunc global IAccPropServices_ClearHwndProps                9 sptr,int,int,var,int
#comfunc global IAccPropServices_ComposeHwndIdentityString     10 sptr,int,int,var,var
#comfunc global IAccPropServices_DecomposeHwndIdentityString   11 var,int,sptr,var,var
#comfunc global IAccPropServices_SetHmenuProp                  12 sptr,int,int,int
#comfunc global IAccPropServices_SetHmenuPropStr               13 sptr,int,int,wstr
#comfunc global IAccPropServices_SetHmenuPropServer            14 sptr,int,var,int,sptr,int
#comfunc global IAccPropServices_ClearHmenuProps               15 sptr,int,var,int
#comfunc global IAccPropServices_ComposeHmenuIdentityString    16 sptr,int,var,var
#comfunc global IAccPropServices_DecomposeHmenuIdentityString  17 var,int,sptr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。