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

ScrollPattern_Scroll

関数
Scrollパターンで指定量だけ水平・垂直にスクロールする。
DLLUIAutomationCore.dll呼出規約winapi対応OSWindows XP 以降

シグネチャ

// UIAutomationCore.dll
#include <windows.h>

HRESULT ScrollPattern_Scroll(
    HUIAPATTERNOBJECT hobj,
    ScrollAmount horizontalAmount,
    ScrollAmount verticalAmount
);

パラメーター

名前方向
hobjHUIAPATTERNOBJECTin
horizontalAmountScrollAmountin
verticalAmountScrollAmountin

戻り値の型: HRESULT

各言語での呼び出し定義

// UIAutomationCore.dll
#include <windows.h>

HRESULT ScrollPattern_Scroll(
    HUIAPATTERNOBJECT hobj,
    ScrollAmount horizontalAmount,
    ScrollAmount verticalAmount
);
[DllImport("UIAutomationCore.dll", ExactSpelling = true)]
static extern int ScrollPattern_Scroll(
    IntPtr hobj,   // HUIAPATTERNOBJECT
    int horizontalAmount,   // ScrollAmount
    int verticalAmount   // ScrollAmount
);
<DllImport("UIAutomationCore.dll", ExactSpelling:=True)>
Public Shared Function ScrollPattern_Scroll(
    hobj As IntPtr,   ' HUIAPATTERNOBJECT
    horizontalAmount As Integer,   ' ScrollAmount
    verticalAmount As Integer   ' ScrollAmount
) As Integer
End Function
' hobj : HUIAPATTERNOBJECT
' horizontalAmount : ScrollAmount
' verticalAmount : ScrollAmount
Declare PtrSafe Function ScrollPattern_Scroll Lib "uiautomationcore" ( _
    ByVal hobj As LongPtr, _
    ByVal horizontalAmount As Long, _
    ByVal verticalAmount As Long) As Long
' VBA7前提(PtrSafe)。32bit Office では LongPtr→Long。Integer=16bit / Long=32bit / LongLong=64bit。
import ctypes
from ctypes import wintypes

ScrollPattern_Scroll = ctypes.windll.uiautomationcore.ScrollPattern_Scroll
ScrollPattern_Scroll.restype = ctypes.c_int
ScrollPattern_Scroll.argtypes = [
    wintypes.HANDLE,  # hobj : HUIAPATTERNOBJECT
    ctypes.c_int,  # horizontalAmount : ScrollAmount
    ctypes.c_int,  # verticalAmount : ScrollAmount
]
require 'fiddle'
require 'fiddle/import'

lib = Fiddle.dlopen('UIAutomationCore.dll')
ScrollPattern_Scroll = Fiddle::Function.new(
  lib['ScrollPattern_Scroll'],
  [
    Fiddle::TYPE_VOIDP,  # hobj : HUIAPATTERNOBJECT
    Fiddle::TYPE_INT,  # horizontalAmount : ScrollAmount
    Fiddle::TYPE_INT,  # verticalAmount : ScrollAmount
  ],
  Fiddle::TYPE_INT)
#[link(name = "uiautomationcore")]
extern "system" {
    fn ScrollPattern_Scroll(
        hobj: *mut core::ffi::c_void,  // HUIAPATTERNOBJECT
        horizontalAmount: i32,  // ScrollAmount
        verticalAmount: i32  // ScrollAmount
    ) -> i32;
}
// crates: windows-sys provides ready-made bindings for this API.
$sig = @"
[DllImport("UIAutomationCore.dll")]
public static extern int ScrollPattern_Scroll(IntPtr hobj, int horizontalAmount, int verticalAmount);
"@
$api = Add-Type -MemberDefinition $sig -Name 'UIAutomationCore_ScrollPattern_Scroll' -Namespace Win32 -PassThru
# $api::ScrollPattern_Scroll(hobj, horizontalAmount, verticalAmount)
#uselib "UIAutomationCore.dll"
#func global ScrollPattern_Scroll "ScrollPattern_Scroll" sptr, sptr, sptr
; ScrollPattern_Scroll hobj, horizontalAmount, verticalAmount   ; 戻り値は stat
; hobj : HUIAPATTERNOBJECT -> "sptr"
; horizontalAmount : ScrollAmount -> "sptr"
; verticalAmount : ScrollAmount -> "sptr"
; ※HSP3.7は #func のため戻り値はシステム変数 stat に格納されます。
#uselib "UIAutomationCore.dll"
#cfunc global ScrollPattern_Scroll "ScrollPattern_Scroll" sptr, int, int
; res = ScrollPattern_Scroll(hobj, horizontalAmount, verticalAmount)
; hobj : HUIAPATTERNOBJECT -> "sptr"
; horizontalAmount : ScrollAmount -> "int"
; verticalAmount : ScrollAmount -> "int"
; HRESULT ScrollPattern_Scroll(HUIAPATTERNOBJECT hobj, ScrollAmount horizontalAmount, ScrollAmount verticalAmount)
#uselib "UIAutomationCore.dll"
#cfunc global ScrollPattern_Scroll "ScrollPattern_Scroll" intptr, int, int
; res = ScrollPattern_Scroll(hobj, horizontalAmount, verticalAmount)
; hobj : HUIAPATTERNOBJECT -> "intptr"
; horizontalAmount : ScrollAmount -> "int"
; verticalAmount : ScrollAmount -> "int"
import (
	"golang.org/x/sys/windows"
	"unsafe"
)

var (
	uiautomationcore = windows.NewLazySystemDLL("UIAutomationCore.dll")
	procScrollPattern_Scroll = uiautomationcore.NewProc("ScrollPattern_Scroll")
)

// hobj (HUIAPATTERNOBJECT), horizontalAmount (ScrollAmount), verticalAmount (ScrollAmount)
r1, _, err := procScrollPattern_Scroll.Call(
	uintptr(hobj),
	uintptr(horizontalAmount),
	uintptr(verticalAmount),
)
_ = err  // syscall.Errno (valid when the call sets last-error)
_ = r1   // HRESULT
function ScrollPattern_Scroll(
  hobj: THandle;   // HUIAPATTERNOBJECT
  horizontalAmount: Integer;   // ScrollAmount
  verticalAmount: Integer   // ScrollAmount
): Integer; stdcall;
  external 'UIAutomationCore.dll' name 'ScrollPattern_Scroll';
result := DllCall("UIAutomationCore\ScrollPattern_Scroll"
    , "Ptr", hobj   ; HUIAPATTERNOBJECT
    , "Int", horizontalAmount   ; ScrollAmount
    , "Int", verticalAmount   ; ScrollAmount
    , "Int")   ; return: HRESULT
●ScrollPattern_Scroll(hobj, horizontalAmount, verticalAmount) = DLL("UIAutomationCore.dll", "int ScrollPattern_Scroll(void*, int, int)")
# 呼び出し: ScrollPattern_Scroll(hobj, horizontalAmount, verticalAmount)
# hobj : HUIAPATTERNOBJECT -> "void*"
# horizontalAmount : ScrollAmount -> "int"
# verticalAmount : ScrollAmount -> "int"
# なでしこ1は32bit・ANSI(Shift_JIS)。文字列=char*(ANSI)、ポインタ/ハンドル=void*(4byte)。