<一般的な使用方法>
APIの宣言と使用方法1
APIを使用するためには、次の例のように宣言して下さい。
VBscript
Jscript
上記のように宣言しておくと、以下のようにAPIが使用できるようになります。
VBscript
Jscript
関数の戻り値を32ビット整数値として受け取ることが可能です。以下のVBscriptの例では、『OK』ボタンを押したときに『vbOK (=1)』が、『キャンセル』ボタンを押したときに『vbCancel (=2)』が『ret』に入力されます。
VBscript
サンプルコード
user32.dllのMessageBoxを呼び出す例です。この例は、サンプルスクリプトとして添付されています。
VBscript
Jscript
実行結果
VBscript
set MessageBox=CreateObject("SfcMini.DynaCall")
MessageBox.Declare "user32","MessageBoxA"
MessageBox.Declare "user32","MessageBoxA"
Jscript
var MessageBox=WScript.CreateObject("SfcMini.DynaCall");
MessageBox.Declare("user32","MessageBoxA");
MessageBox.Declare("user32","MessageBoxA");
- 引数の数や変数型の指定をする必要はありません。
上記のように宣言しておくと、以下のようにAPIが使用できるようになります。
VBscript
MessageBox 0,"ANSI String, vbOkOnly","SfcMini.DynaCall",vbOkOnly
Jscript
MessageBox(0,"ANSI String, vbOkOnly","SfcMini.DynaCall",0);
- 引数の数や変数型を間違えないようにして下さい。間違った引数の数や異なる変数型の使用は予期しない結果を引き起こします。
関数の戻り値を32ビット整数値として受け取ることが可能です。以下のVBscriptの例では、『OK』ボタンを押したときに『vbOK (=1)』が、『キャンセル』ボタンを押したときに『vbCancel (=2)』が『ret』に入力されます。
VBscript
ret=MessageBox(0,"Unicode , vbOkCancel","SfcMini.DynaCall",vbOkCancel)
サンプルコード
user32.dllのMessageBoxを呼び出す例です。この例は、サンプルスクリプトとして添付されています。
VBscript
option explicit
dim MessageBox
set MessageBox=CreateObject("SfcMini.DynaCall")
MessageBox.Declare "user32","MessageBoxA"
call MessageBox(0,"ANSI String, vbOkOnly","SfcMini.DynaCall",vbOkOnly)
MessageBox.DeclareW "user32","MessageBoxW"
call MessageBox(0,"Unicode , vbOkCancel","SfcMini.DynaCall",vbOkCancel)
dim MessageBox
set MessageBox=CreateObject("SfcMini.DynaCall")
MessageBox.Declare "user32","MessageBoxA"
call MessageBox(0,"ANSI String, vbOkOnly","SfcMini.DynaCall",vbOkOnly)
MessageBox.DeclareW "user32","MessageBoxW"
call MessageBox(0,"Unicode , vbOkCancel","SfcMini.DynaCall",vbOkCancel)
Jscript
var MessageBox=WScript.CreateObject("SfcMini.DynaCall");
MessageBox.Declare("user32","MessageBoxA");
MessageBox(0,"ANSI String, vbOkOnly","SfcMini.DynaCall",0);
MessageBox.DeclareW("user32","MessageBoxW");
MessageBox(0,"Unicode , vbOkCancel","SfcMini.DynaCall",1);
MessageBox.Declare("user32","MessageBoxA");
MessageBox(0,"ANSI String, vbOkOnly","SfcMini.DynaCall",0);
MessageBox.DeclareW("user32","MessageBoxW");
MessageBox(0,"Unicode , vbOkCancel","SfcMini.DynaCall",1);
実行結果

