戻る
C++クラスのメソッドをコールバックメソッドにする
クラスに関数ポインタ変数を宣言する。
コールバックするメソッドのアドレスを関数ポインタ変数に設定する。
呼び出したい箇所で関数ポインタ変数を使用してメソッドを呼ぶ。
サンプルコード
例としてCSampleクラスのHRESULT CallBack(LPVOID pParam)メソッドをコールバックメソッドにする。
クラス作成
class CSample
{
public:
CSample();
// コールバックメソッド
virtual HRESULT CallBack(LPVOID pParam){return S_OK;}
protected:
HRESULT (CSample::*CALLBACK)(LPVOID);
}
関数ポインタ取得
CALLBACK = &CSample::CallBack;
コールバック
(this->*CALLBACK)(pParam);
CSampleクラスを継承するクラスでCallBackをオーバーライドして使用する。