#ifndef _COMMON_CALLBACKDATA_HPP_ #define _COMMON_CALLBACKDATA_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif template class CallbackData { public: typedef LONG ReturnType; CallbackData(void); CallbackData(T &data); CallbackData(const CallbackData &someCallbackData); virtual ~CallbackData(); CallbackData &operator=(const CallbackData &someCallbackData); T &getData(void); void setData(T &data); private: SmartPointer mData; }; template inline CallbackData::CallbackData(void) { } template inline CallbackData::CallbackData(T &data) { mData=&data; } template inline CallbackData::CallbackData(const CallbackData &someCallbackData) { *this=someCallbackData; } template inline CallbackData::~CallbackData() { } template inline CallbackData &CallbackData::operator=(const CallbackData &someCallbackData) { mData = someCallbackData.mData; return *this; } template inline T &CallbackData::getData(void) { return *mData; } template inline void CallbackData::setData(T &data) { mData=&data; } #endif