#defcbcom

COM コールバックインターフェース クラス定義開始

#defcbcom class_name interface_name

class_name     : HSP 側で付ける任意のクラス名 (例 MyDropTarget)
interface_name : 事前に #usecom で IID を登録した COM インターフェース名

(プラグイン / モジュール : hspcbcom)

解説

HSP 側で COM インターフェース (例: IDropTarget, IBindStatusCallback) を実装するための
クラス宣言を開始する。中に #cbmethod を列挙してメソッドを vtable index にマッピングする。
最後に #endcbcom で締める。

IUnknown の QueryInterface / AddRef / Release は自動実装される (vtable slot 0..2)。
ユーザーが書くのは vtable index 3 以降のメソッドのみ。

サンプル

#define IID_IDropTarget "{00000122-0000-0000-c000-000000000046}"
#usecom IDropTarget IID_IDropTarget "{}"

#defcbcom MyDT IDropTarget
    #cbmethod 3 int comobj, int, intptr, intptr, *dt_enter
    #cbmethod 4 int int, intptr, intptr,         *dt_over
    #cbmethod 5 int,                             *dt_leave
    #cbmethod 6 int comobj, int, intptr, intptr, *dt_drop
#endcbcom

関連項目

#cbmethodCOM コールバッククラスにメソッドを登録する(hspcbcom)
#endcbcomCOM コールバッククラス定義終了(hspcbcom)
newcomcbCOM コールバッククラスのインスタンスを生成する(hspcbcom)

サンプル逆引き (2)

sample_01_urldownload.hsp
sample_02_droptarget.hsp

情報

プラグイン / モジュールhspcbcom
バージョン0.1
作成日2026/04/14
著作者IronHSP project
URLhttps://github.com/inovia/IronHSP
備考hspcbcom (#defcbcom / #cbmethod / #endcbcom / newcomcb / comprm 等) は IronHSP の
hsp3net ランタイムに組み込まれているため、追加の include は不要です。
hsp3net 専用 (vanilla hsp3 では使えません)。
タイプ内蔵命令
グループhspcbcom - COM コールバックインターフェース
対応環境
  • その他 : Win10 22H2+
hs ファイルhsphelp\hspcbcom.hs