<コールバック関数の使用法>


 コールバック関数を使用するにはまず、以下の例のようにコールバック関数を含むクラスオブジェクトを作成します。
VBScript
Class EnumWindowsProc
Public Function CallBack(hWnd,lParam)
  Dim wName
  if IsWindowVisible(hWnd) then
    wName=space(256)
    if GetWindowText(hWnd,wName,256)<>0 then
      wName=left(wName,instr(1,wName+chr(0),chr(0))-1)
      T=T+wName+vbcrlf
    end if
  End If
  CallBack=1
End Function
End Class














JScript
var EnumWindowsProc=new Object();
EnumWindowsProc.CallBack=
function CallBack(hWnd,lParam) {
  if (IsWindowVisible(hWnd)) {
    if (GetWindowText(hWnd,wName,256)) {
      var wName2=wName.str;
      wName2=wName2.substring(0,wName2.indexOf("\0",0));
      T=T+wName2+"\r\n";
    }
  }
}











  • 関数名は必ず『CallBack』。


 API呼び出しは、次の例のように行ってください。

VBScript
EnumWindows EnumWindows.CallBack(new EnumWindowsProc,2),0


JScript
EnumWindows(EnumWindows.CallBack(EnumWindowsProc,2),0)

  • 『EnumWindows.CallBack()』の2番目の引数には、コールバック関数の引数の数(EnumWindowsProcの場合は2)を指定。

» サンプルコード

 ウィンドウプロシージャについては、SfcMini.MachineCodeオブジェクトを利用して対応可能です。サンプルコードとして、この機能を用いてCreateWindowEx, ShowWindow, UpdateWindow, DispatchMessage関数を作成し、これらを使ってWindowsプログラムを構築する例を挙げてあります。
 また、ウインドウプロシージャを簡単に使用するためのクラス『WindowProcedure』がライブラリにあります。

» サンプルコード