hmV8は.NET Frameworkが利用できるため、あまり旧来のWScript.Shellのようなものを使う意味はありませんが、 既存の記述の流用を行いたいといったケースでは役立つことがあるかもしれません。
また下記の例はCOMオブジェクトのインスタンスを生成する方法も示しています。
しかし原則的にはCOMオブジェクトをスクリプト層で利用するよりは、
.NET Frameworkの利用を検討しましょう。
ほとんどのケースにおいては明示的な解放や多くの無関係な引数を必要とすることが多いCOMオブジェクトの利用よりは、
.NET Frameworkの利用の方が、わかりやすく適切なソース、より安全なソースとなります。
#JS = loaddll( hidemarudir + @"\hmV8.dll" ); #_ = dllfuncw( #JS, "DoString", R"JS( // ボタンの種類 var BTN_OK = 0; // [OK]ボタン var BTN_OK_CANCL = 1; // [OK][キャンセル]ボタン var BTN_STOP_RETRI_DISRGRD = 2; // [中止][再試行][無視]ボタン var BTN_YES_NO_CANCL = 3; // [はい][いいえ][キャンセル]ボタン var BTN_YES_NO = 4; // [はい][いいえ]ボタン var BTN_RETRI_CANCL = 5; // [再試行][キャンセル]ボタン // アイコンの種類 var ICON_STOP = 16; // [Stop]アイコン var ICON_QUESTN = 32; // [?]アイコン var ICON_EXCLA = 48; // [!]アイコン var ICON_I = 64; // [i]アイコン // 押されたボタンごとの戻り値 var BTNR_OK = 1; // [OK]ボタン押下時 var BTNR_CANCL = 2; // [キャンセル]ボタン押下時 var BTNR_STOP = 3; // [中止]ボタン押下時 var BTNR_RETRI = 4; // [再試行]ボタン押下時 var BTNR_DISRGRD = 5; // [無視]ボタン押下時 var BTNR_YES = 6; // [はい]ボタン押下時 var BTNR_NO = 7; // [いいえ]ボタン押下時 var BTNR_NOT = -1; // どのボタンも押さなかったとき // Windowsシェルへのアクセスを提供するオブジェクト var sh = host.newComObj( "WScript.Shell" ); hm.debuginfo(sh); // ポップアップウインドウを表示(10秒後に自動終了) var rtn = sh.Popup( "ボタンを押してください!", 10, "確認", (BTN_YES_NO_CANCL + ICON_QUESTN) ); // オブジェクトを解放 sh = null; // 戻り値をデバッグ表示 hm.debuginfo(rtn); )JS" ); freedll( #JS );