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

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

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

コメント