外部COM呼び出し命令登録
#comfunc 新規名称 インデックス タイプ名1,…
新規名称 : 命令として認識されるキーワード名 インデックス : メソッドindex値 タイプ名 : 引数のタイプを,で区切って指定します
外部コンポーネント(COM)を呼び出すための新しい命令を登録します。
#comfuncは、 #usecom命令によって指定されたインターフェースのメソッドを命令として呼び出すための登録を行ないます。
以降は、 新規名称で指定された命令とCOMオブジェクト型の変数を組み合わせてコンポーネントを呼び出すことができます。
新規名称、インデックス、タイプをスペースで区切って書きます。
新規名称の直前に「global」を入れることで、 すべてのモジュールで永続的に利用することのできる命令を作成することができます。
タイプ名には、引数の詳細を記述します。
#deffunc命令と同様に、引数の型を「,」で区切って指定してください。
引数の数や、型の順番に制限はありません。
引数の型として使用できる文字列は以下の通りです。
型 : 内 容
-------------------------------------------------------------
int : 整数値(32bit)
var : 変数のデータポインタ(32bit)
str : 文字列ポインタ(32bit)
wstr : unicode文字列ポインタ(32bit)
double : 実数値(64bit)
float : 実数値(32bit)
pval : PVal構造体のポインタ(32bit)
bmscr : (*)BMSCR構造体のポインタ(32bit)
hwnd : (*)現在選択されているウィンドウのハンドル(HWND)
hdc : (*)現在選択されているウィンドウのデバイスコンテキスト(HDC)
hinst : (*)実行中のHSPインスタンスハンドル
(*)がついている項目は、 引数として指定する必要なく自動的に渡されるパラメーターを示しています。
例 :
; シェルリンクオブジェクトのクラスID
#define CLSID_ShellLink "{00021401-0000-0000-C000-000000000046}"
; IShellLink インターフェースのインターフェースID
#define IID_IShellLinkA "{000214EE-0000-0000-C000-000000000046}"
#usecom IShellLinkA IID_IShellLinkA CLSID_ShellLink
#comfunc IShellLink_SetPath 20 str
newcom slink, IShellLinkA
IShellLink_SetPath slink, "c:\\hsp261\\hsp2.exe"
上の例では、IShellLinkAインターフェースのIShellLink_SetPathをslinkという変数とともに呼び出しています。
#comfuncで登録された命令は、最初の引数が常に同じインターフェースを持つCOMオブジェクト型の変数になるので注意してください。
| バージョン | 3.4 |
| 作成日 | 2014/04/22 |
| 著作者 | onitama |
| URL | http://hsp.tv/ |
| 備考 | ver3.4標準命令 |
| タイプ | 内蔵命令 |
| グループ | プリプロセッサ命令 |
| 対応環境 |
|
| hs ファイル | hsphelp\i_prep.hs |