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

IScrollProvider

COM
IIDb38b8077-1fc3-42a5-8cae-d40c2215055a継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

子オブジェクトのコレクションをスクロール可能なコンテナーとして扱うコントロールへのアクセスを提供します。

解説(Remarks)

Scroll コントロールパターンをサポートする必要がある Microsoft UI Automation プロバイダー上に実装されます。

メソッド 8

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

vtbl 3 HRESULT Scroll(ScrollAmount horizontalAmount, ScrollAmount verticalAmount)

コンテンツ領域の可視領域を水平方向および垂直方向にスクロールします。(IScrollProvider.Scroll)

horizontalAmountScrollAmountinコントロール固有の水平方向のスクロール量。
verticalAmountScrollAmountinコントロール固有の垂直方向のスクロール量。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT SetScrollPercent(DOUBLE horizontalPercent, DOUBLE verticalPercent)

コントロール内のコンテンツ領域全体に対する割合として、水平方向および垂直方向のスクロール位置を設定します。

horizontalPercentDOUBLEinコンテンツ領域の全範囲に対する割合で表した水平位置。水平スクロールが存在しない場合は UIA_ScrollPatternNoScroll
verticalPercentDOUBLEinコンテンツ領域の全範囲に対する割合で表した垂直位置。垂直スクロールが存在しない場合は UIA_ScrollPatternNoScroll

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、コントロールのコンテンツ領域が可視領域より大きい場合にのみ有用です。

vtbl 5 HRESULT get_HorizontalScrollPercent(DOUBLE* pRetVal)

水平方向のスクロール位置を指定します。

pRetValDOUBLE*out水平スクロール位置を 0〜100 の割合で受け取る DOUBLE へのポインタである。

解説(Remarks)

有効な位置が利用できない場合、水平方向のスクロール位置は UIA_ScrollPatternNoScroll として報告されることがあります。たとえば、ウィンドウに水平スクロールバーがない場合です。

vtbl 6 HRESULT get_VerticalScrollPercent(DOUBLE* pRetVal)

垂直方向のスクロール位置を指定します。

pRetValDOUBLE*out垂直スクロール位置を 0〜100 の割合で受け取る DOUBLE へのポインタである。

解説(Remarks)

有効な位置が利用できない場合、垂直方向のスクロール位置は UIA_ScrollPatternNoScroll として報告されることがあります。たとえば、ウィンドウに垂直スクロールバーがない場合です。

vtbl 7 HRESULT get_HorizontalViewSize(DOUBLE* pRetVal)

表示可能領域の水平方向のサイズを指定します。

pRetValDOUBLE*out水平方向に表示されている内容の割合(ビューサイズ)を受け取る DOUBLE へのポインタである。
vtbl 8 HRESULT get_VerticalViewSize(DOUBLE* pRetVal)

表示可能領域の垂直方向のサイズを指定します。

pRetValDOUBLE*out垂直方向に表示されている内容の割合(ビューサイズ)を受け取る DOUBLE へのポインタである。
vtbl 9 HRESULT get_HorizontallyScrollable(BOOL* pRetVal)

コントロールが水平方向にスクロールできるかどうかを示します。

pRetValBOOL*out水平方向にスクロール可能かどうかを受け取る BOOL へのポインタである。

解説(Remarks)

このプロパティは動的に変化する場合があります。たとえば、コントロールのコンテンツ領域が現在の表示可能領域より大きくない場合、IScrollProvider::HorizontallyScrollableFALSE になります。しかし、コントロールのサイズ変更や子項目の追加によってコンテンツ領域の範囲が表示可能領域を超えて広がると、IScrollProvider::HorizontallyScrollableTRUE になります。

vtbl 10 HRESULT get_VerticallyScrollable(BOOL* pRetVal)

コントロールが垂直方向にスクロールできるかどうかを示します。

pRetValBOOL*out垂直方向にスクロール可能かどうかを受け取る BOOL へのポインタである。

解説(Remarks)

このプロパティは動的に変化する場合があります。たとえば、コントロールのコンテンツ領域が表示可能領域より大きくない場合、IScrollProvider::VerticallyScrollableFALSE になります。しかし、コントロールのサイズ変更や子項目の追加によってコンテンツ領域の範囲が表示可能領域を超えて広がると、IScrollProvider::VerticallyScrollableTRUE になります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IScrollProvider "{B38B8077-1FC3-42A5-8CAE-D40C2215055A}"
#usecom global IScrollProvider IID_IScrollProvider "{}"
#comfunc global IScrollProvider_Scroll                       3 int,int
#comfunc global IScrollProvider_SetScrollPercent             4 double,double
#comfunc global IScrollProvider_get_HorizontalScrollPercent  5 var
#comfunc global IScrollProvider_get_VerticalScrollPercent    6 var
#comfunc global IScrollProvider_get_HorizontalViewSize       7 var
#comfunc global IScrollProvider_get_VerticalViewSize         8 var
#comfunc global IScrollProvider_get_HorizontallyScrollable   9 var
#comfunc global IScrollProvider_get_VerticallyScrollable     10 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。