#comfunc

外部COM呼び出し命令登録

#comfunc 新規名称 インデックス タイプ名1,…

新規名称     : 命令として認識されるキーワード名
インデックス : メソッドindex値
タイプ名     : 引数のタイプを,で区切って指定します

解説

外部コンポーネント(COM)を呼び出すための新しい命令を登録します。
#comfuncは、 #usecom命令によって指定されたインターフェースのメソッドを
命令として呼び出すための登録を行ないます。
以降は、 新規名称で指定された命令とCOMオブジェクト型の変数を組み合わせ
てコンポーネントを呼び出すことができます。

新規名称、インデックス、タイプをスペースで区切って書きます。
新規名称の直前に「global」を入れることで、 すべてのモジュールで
永続的に利用することのできる命令を作成することができます。

タイプ名には、引数の詳細を記述します。
#deffunc命令と同様に、引数の型を「,」で区切って指定してください。
引数の数や、型の順番に制限はありません。
引数の型として使用できる文字列は以下の通りです。

   型      :  内     容
 -------------------------------------------------------------
   int     :  整数値(32bit)
   var     :  変数のデータポインタ(32bit)
   str     :  文字列ポインタ(32bit)
   wstr    :  unicode文字列ポインタ(32bit)
   double  :  実数値(64bit)
   label   :  ラベルポインタ(32bit)
   float   :  実数値(32bit)
   pval    :  PVal構造体のポインタ(32bit)
   bmscr   :  (*)BMSCR構造体のポインタ(32bit)
   hwnd    :  (*)現在選択されているウィンドウのハンドル(HWND)
   hdc     :  (*)現在選択されているウィンドウのデバイスコンテキスト
   (HDC)
   hinst   :  (*)実行中のHSPインスタンスハンドル

(*)がついている項目は、 引数として指定する必要なく自動的に渡されるパラ
メーターを示しています。

例 :
#define CLSID_ShellLink "{00021401-0000-0000-C000-000000000046}"
#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オブジェクト型の変数になるので注意してください。

関連項目

#usecom外部COMインターフェースの指定
newcomCOMオブジェクト型変数の新規作成
delcomCOMオブジェクト型変数の破棄
querycomCOMオブジェクト型変数の作成

サンプル逆引き (2)

comtest1.hsp
comtest3.hsp

情報

バージョン3.1
作成日2004/10/12
著作者onitama
URLhttp://www.onionsoft.net/
備考ver3.1標準命令
タイプ内蔵命令
グループプリプロセッサ命令
対応環境
  • Windows 版 HSP
  • コマンドライン版 HSP
hs ファイルhsphelp\i_prep.hs