リファレンス 144 ドキュメント 7 サンプル 48
標準機能 346 advapi32.dll 419 api-ms-win-core-winrt-string-l1-1-0.dll 1 api-ms-win-dx-d3dkmt-l1-1-0.dll 1 arduino 12 Artlet2D 55 avrt.dll 11 bcrypt.dll 53 com_misc.dll 1238 comctl32.dll 94 comdlg32.dll 2 crypt32.dll 218 d2d1.dll 13 d3d11.dll 5 d3module 29 dbghelp.dll 128 dinput8.dll 1 dwmapi.dll 31 dwrite.dll 1 dxgi.dll 5 DxLibW 2738 encode.as 8 evr.dll 7 form_decode 1 gdi32.dll 384 gdiplus.dll 627 glu32.dll 52 hgimg3 152 hgimg4 166 hsedsdk 36 HSP3Dish 119 hsp3imp 4 hsp3util 17 hspble.dll 13 hspcbcom 11 hspcmp 21 hspcv 31 hspcv4 275 hspd2d 28 hspda 23 hspdb 8 hspdb.dll 14 hspduckdb.dll 10 hspext 59 hspinet 60 hspjson.dll 10 hspllama.dll 11 hspmath 41 hspmcp.dll 7 hspmfcam.dll 30 hspmidi.dll 17 hspmucom 17 hspogg 20 hsponnx.dll 13 hsppdf.dll 11 hspprint 6 hspsapi_64.dll 3 hspsock 12 hsptflite.dll 19 hsptv 2 hspusbio 6 hspvosk_64.dll 4 hspwasm.dll 10 hspwebsrv.dll 9 hspwebview2.dll 18 hspwgcapture.dll 8 hspwhisper_64.dll 4 hspwinrtocr.dll 5 hspwinrtspeech_64.dll 3 httpapi.dll 42 imm32.dll 63 iphlpapi.dll 194 iron_7z.hsp 6 iron_ai.hsp 9 iron_camera.hsp 6 iron_camera_mf.hsp 31 iron_clip.hsp 4 iron_csv.hsp 8 iron_dialog.hsp 2 iron_hash.hsp 12 iron_http.hsp 4 iron_ini.hsp 11 iron_json.hsp 10 iron_mcp_client.hsp 9 iron_mcp_server.hsp 6 iron_mediapipe.hsp 13 iron_office.hsp 6 iron_perf.hsp 5 iron_serial.hsp 6 iron_shell.hsp 6 iron_speech.hsp 9 iron_sysinfo.hsp 10 iron_toast.hsp 4 iron_url.hsp 6 iron_video.hsp 10 iron_xlsx.hsp 11 kernel32.dll 884 layer_fade 5 mf.dll 31 mfplat.dll 122 mfreadwrite.dll 5 mod_fontdlg 1 mod_joystick2 2 mod_menu 3 mod_mmaudio 7 mod_picfont 2 mod_posteffect 7 mod_regexp 4 mod_rss 1 mod_vpad 5 msimg32.dll 3 ncrypt.dll 1 netapi32.dll 45 normaliz.dll 2 obaq 51 obj 4 ole32.dll 143 oleaut32.dll 404 opengl32.dll 353 powrprof.dll 84 propsys.dll 1 psapi.dll 20 secur32.dll 2 shell32.dll 195 shlwapi.dll 15 SQLele 18 urlmon.dll 71 user32.dll 607 userenv.dll 34 uxtheme.dll 77 version.dll 7 wer.dll 20 windowscodecs.dll 9 winhttp.dll 46 wininet.dll 192 winmm.dll 146 wintrust.dll 7 wlanapi.dll 59 wmvcore.dll 11 ws2_32.dll 90 wtsapi32.dll 44 xaudio2_8.dll 4 xmllite.dll 6 ZLibWrap 2

hspcbcom

Version 0.1 Date 2026/04/14 Author IronHSP project

hspcbcom - COM コールバックインターフェース

#cbmethod
COM コールバッククラスにメソッドを登録する
#defcbcom ~ #endcbcom の中で使い、各 vtable slot に対応する HSP ラベルを宣言する。 ラベルは前方参照可能 (定義より前に書ける)。 引数列の最後はかならず *label で終わる。
#defcbcom
COM コールバックインターフェース クラス定義開始
HSP 側で COM インターフェース (例: IDropTarget, IBindStatusCallback) を実装するための クラス宣言を開始する。中に #cbmethod を列挙してメソッドを vtable index にマッピングする。 最後に #endcbcom で締める。
#endcbcom
COM コールバッククラス定義終了
#defcbcom で開始したクラス定義を確定する。この時点で hspcmp が登録 bytecode を発行し、 ランタイム実行時にクラスが自動的に登録される。
comcbidx
現在のコールバックの vtable index を取得する
複数メソッドを同じラベルにマッピングしたとき、どの index で呼ばれたかを判別するために 使う。
comcbis
現在のコールバックの this が指定 comobj と一致するか確認する
1 つの class から複数 instance を作って使い分けるとき、現在のコールバックがどの instance から呼ばれたかを判別するために使う。一致すれば 1、それ以外は 0 を返す。
comcbtag
現在のコールバックの int tag を取得する
newcomcb 時に指定した int tag を返す。string tag を指定していた場合は 0、tag を省略 していた場合は instance ごとに自動採番された ID (1, 2, ...) が返る。
comcbtags
現在のコールバックの string tag を取得する
newcomcb 時に指定した string tag を返す。int tag だった場合や省略していた場合は空文字列 を返す。
comcbthis
現在のコールバックの raw IUnknown* を取得する
高度な用途向け。コールバック内から自分自身 (this) の IUnknown* (intptr 値) を取得する。 これを別の COM API に渡して再帰的に登録する等に使える。
comprm
コールバック中の引数を取得する
現在実行中のコールバックメソッドの N 番目の引数を、#cbmethod で宣言した型に従って HSP 値として取得する。
comret
コールバックの戻り値 (HRESULT) を設定する
コールバック内から呼んで、外部 COM caller に返す HRESULT を設定する。省略すると S_OK (0) が返される。明示的に E_FAIL や E_NOTIMPL を返したい場合は comret <val> を呼ぶ。
newcomcb
COM コールバッククラスのインスタンスを生成する
指定したクラスの新しいインスタンスを作成し、var に格納する。tag は callback 内から comcbtag() / comcbtags() で取り出せるので、複数 instance を作って使い分ける用途に便利。