#ifndef _COMMON_CALLBACK_HPP_ #define _COMMON_CALLBACK_HPP_ #ifndef _COMMON_CALLBACKDATA_HPP_ #include #endif #ifndef _COMMON_PURECALLBACK_HPP_ #include #endif #ifndef _COMMON_CALLBACKPOINTER_HPP_ #include #endif template class Callback : public PureCallback { public: typedef LONG (T::*PFNMETHOD)(CallbackData &callbackData); Callback(void); Callback(const Callback &someCallback); Callback(T *lpObject,PFNMETHOD lpMethod); virtual ~Callback(); void setObject(T *lpObject); void setMethod(PFNMETHOD lpMethod); void setCallback(T *lpObject,PFNMETHOD lpMethod); WORD operator==(const Callback &someCallback)const; void operator=(const Callback &someCallback); LONG operator*(CallbackData &someCallbackData); private: T *mlpObject; LONG (T::*mlpMethod)(CallbackData &someCallbackData); }; template inline LONG Callback::operator*(CallbackData &someCallbackData) { if((!mlpObject)||(!mlpMethod))return (LONG)0; return (mlpObject->*mlpMethod)(someCallbackData); } #include #endif