Delphi/C++Builder クラス内で EnumWindowProc を使う

クラス内で EnumWindowProc を使おうと、メンバとしてメソッドを定義するのはNG

EnumWindowProc を通常の関数として定義して、呼び出し側 EnumWindows の第二引数に、ポインタを受け渡せば(自身のクラスなど)、EnumWindowProc の lPara にそれが入って呼び出されるので、キャストするなりしてやる
function EnumWindowProc(hWindow: HWND; lPara: LPARAM): Boolean; stdcall;
begin
       TMyClass(lPara).~
end;


// TMyClass での呼び出し
EnumWindows(@EnumWindowProc, LParam(Self));

コメント