miniのインストールディレクトリにある『lib』ディレクトリには、VBScriptで使用可能な機能を記述したスクリプトファイルが含まれています。これらを利用するには、VBScriptの冒頭で、以下の例のように記述します。SFC.Include("<WinForm.vbs>")或いは、以下のように一行で記述することも可能です。CreateObject("SfcMini.tools").Include("<WinForm.vbs>")上記の例では、『WinForm.vbs』の内容が取り込まれて、そこに記述されている機能が使用可能になります。ライブラリには、以下のスクリプトファイルが使用可能な状態で含まれています。WinForm.vbsウィンドウプログラムの作成を補助します。Menu.vbsウィンドウにメニューを表示させる時に用います。WindowProcedure.vbsウィンドウプロシージャを用いる時に使用します。WinControl.vbsGUIのフォームにコントロールを実装するときに使用します。よるブロッキングタイプの通信を行いたいときに使用します。WinForm.vbsウインドウプログラムを比較的簡単に作成するためのクラス『WinForm』を提供します。SFC.Include("<WinForm.vbs>")WinFormクラスには、以下のプロパティがあります。API"user32","kernel32","gdi32"に含まれているAPIを呼び出すことの出来る、SfcMini.DynaCallオブジェクトです。hWndウィンドウハンドルです。CmdShowSW_SHOW、SW_MAXIMIZE等で指定される表示状態を設定します。デフォルトは、SW_SHOWです。WindowClassウィンドウクラス登録時に使用される、WNDCLASSEX構造体です。デフォルトでは次のように設定されています。CreateWindowExの引数を指定するための構造体です。デフォルトでは次のように設定されています。withText(hWnd)ウィンドウもしくは、ウィンドウに含まれるアイテムのテキストを取得・設定します。hWndには、WinFormクラスオブジェクト・ウィンドウハンドル・アイテムIDのいずれかを指定します。Caption(hWnd)Text(hWnd)と同じ機能です。WinFormクラスには、以下のパブリックメソッドがあります。SetFont(FontName,FontSize)ウィンドウ及びそこに含まれるアイテムで使用されるフォントを、フォント名とサイズで指定します。Initウィンドウの初期化を行います。具体的には、ウィンドウクラスの登録を行います。ShowウインドウをCmdShowで示された状態で表示します。rCode)ウインドウプロシージャでトラックされるメッセージと、そのメッセージを処理する際の戻り値を指定します。ここで指定されないメッセージはすべてAPIのDefWindowProcで処理されます。WM_CREATEの3つが指定されています。RegisterEvent(itemID)itemIDで示されるIDを持ったアイテムのイベントを処理するようにウインドウプロシージャ(WinFormクラス中のDefaultWndProc)に指令します。itemID)フォームにアイテムを追加します。BS_PUSHBUTTON等の表示形式を、itemIDには、アイテムIDを整数値で、もしくはイベント関数名を文字列で指定します。nHeightでは、縦横の位置と幅を指定します。戻り値として、アイテムIDが返ります。SendMessage(hWnd,Msg,wParam,lParam)hWndで示されるアイテム(ハンドルもしくはアイテムIDを指定)にメッセージを送ります。戻り値として、APIのSendMessageの戻り値が返ります。SetWndProc(wndProcName)ウィンドウプロシージャを文字列で指定します。デフォルトでは、WinFormクラス中のDefaultWndProcが指定されています。GetWndProc引数はありません。戻り値として、登録されているウインドウプロシージャ名が文字列で返ります。DefaultWndProc(hWnd,Msg,wParam,lParam)WinFormクラスに含まれているデフォルトのウィンドウプロシージャを外部から呼び出したい時に使用します。この関数では、ウィンドウに含まれるアイテム関連の制御(表示・イベントの処理)が行われます。MsgLoopメッセージループです。戻り値として、スクリプトを終了させる時に使用されるべき値が返ります。CreateWindowExDispatchMessageShowWindowUpdateWindowこれらの関数を利用すると、規定のウインドウプロシージャに対応した状態でAPIが呼び出されます。サンプルコードMenu.vbsウィンドウのメニュー表示のためのクラス『Menu』『PopupMenu』を提供します。SFC.Include("<Menu.vbs>")Menuクラスには、以下のパブリックメソッドがあります。hMenu引数はありません。戻り値として、メニューハンドルを返します。AppendPopupMenu(wIDNewItem,lpNewItem)wIDNewItemで指定されたハンドルを持つポップアップメニューを、lpNewItem(文字列)で指定されたメニュー名で表示するように設定します。SetMenu(hWnd)作成されたメニューを、hWndをハンドルに持つウインドウで表示するように設定します。PopupMenuクラスには、以下のパブリックメソッドがあります。hMenu引数はありません。戻り値として、メニューハンドルを返します。AppendMenu(wIDNewItem,lpNewItem)lpNewItem(文字列)で指定されたメニューを追加します。wIDNewItemには、アイテムIDを整数値で、もしくはイベント関数を文字列で指定します。戻り値として、WinFormクラスのRegisterEventで用いることの出来るアイテムIDを返します。AppendSeparator引数はありません。メニューにセパレータを追加します。AppendPopupMenu(wIDNewItem,lpNewItem)wIDNewItemで指定されたハンドルを持つポップアップメニューを、lpNewItem(文字列)で指定されたメニュー名で表示するように設定します。サンプルコードWinControl.vbsGUIフォームのコントロールを扱うためのクラス『WinLabel』『WinButton』『WinCheck』『WinRadio』『WinText』『WinList』『WinCombo』を提供します。SFC.Include("<WinControl.vbs>")これらのクラスの使用方法についてはサンプルスクリプトの『WinForm.vbs』を参考にしてください。WindowProcedure.vbsウィンドウプロシージャを扱うためのクラス『WindowProcedure』を提供します。SFC.Include("<WindowProcedure.vbs>")WindowProcedureクラスには以下のパブリックメソッドがあります。Address引数はありません。ウインドウプロシージャのアドレスを示すポインタを返します。SetWndProc(funcName)funcNameに、ウィンドウプロシージャを記述する関数名を文字列で指定します。rCode)ウィンドウプロシージャに、uMsgで示されたメッセージを、rCodeで示された戻り値で処理するように指令します。CreateWindowExShowWindowUpdateWindowDispatchMessageVBScriptで記述するウィンドウプロシージャに対応させるためにはこれらのパブリック関数をAPIとして用いてください。PostQuitMessageRegisterClassExUnregisterClassLoadCursorGetMessageTranslateMessageGetStockObjectDefWindowProc上記の4つの関数以外に、これらの関数もAPI呼び出しに使用可能です。サンプルコードWinsock.vbsブロッキングタイプのソケットを扱うためのクラス『WinSockB』を提供します。wsk=CreateBlockingWinSock()使用方法についてはサンプルスクリプトの『WinSockClient.vbs』及び『WinSockServer.vbs』を参考にしてください。