callback64_new

コールバック関数(64bit)を作成します

val = callback64_new(p1, p2)

p1      : 作成するコールバック関数の引数の数
p2      : コールバック時にジャンプするサブルーチンラベル

(プラグイン / モジュール : hspint64.dll)

解説

コールバック関数(64bit)を作成し、コールバック関数の情報が格納されたコールバック型の変数を返します。

p1 には 作成するコールバック関数の引数の数を指定します。
p2 には コールバックされるときに実行されるサブルーチンラベルを指定します。

なお、コールバック関数のポインタ(アドレス)を取得するには、callback64_getptr 関数を使用してください。
varptr や varptr64 では取得できません。

サンプル

#include "hsp3_64.as"
#include "hspint64.as"

#include "user32.as"

	title "EnumWindows() の実験 ※コールバック関数のテスト"

	// コールバック関数作成
	EnumWindowsProc = callback64_new( 2, *lbEnumWindowsProc)
	pEnumWindowsProc = callback64_getptr( EnumWindowsProc)

	// EnumWindows() を呼び出す
	nCount = 0
	cfunc64v EnumWindows, pEnumWindowsProc, varptr(nCount)

stop

*lbEnumWindowsProc
	p1_hWnd = callback64_getprm( EnumWindowsProc, 0, RET_INT64 )
	;p2_lParam = callback64_getprm( EnumWindowsProc, 1, RET_INT64 )

	// ウィンドウタイトルを表示
	sdim strAnsi, 1024 + 1
	cfunc64v GetWindowTextA, p1_hWnd, varptr(strAnsi), 1024
	if strAnsi != "" : mes cnvatos(strAnsi)

	// 継続するので 1 を返す
	callback64_setret EnumWindowsProc, 1

return

関連項目

callback64_getptrコールバック関数のポインタ(アドレス)を取得します(hspint64.dll)
callback64_getprmコールバック関数に渡された引数データを取得します(hspint64.dll)
callback64_setretコールバック関数の戻り値を設定します(hspint64.dll)

サンプル逆引き (1)

50_コールバック関数(EnumWindows).hsp

情報

プラグイン / モジュールhspint64.dll
バージョン1.03
作成日2021/06/13
著作者inovia
URLhttps://hsp.moe/
備考#include "hsp3_64.as"
#include "hspint64.as"
以上2つのファイルをインクルードすること。
(ソースコード上の記述個所は一番上を推奨)
タイプint64型拡張プラグイン
グループcallback64
対応環境
  • Windows 版 HSP
移植のヒント64bit版 Windows のみ
hs ファイルhsphelp\hspint64.hs