75 lines
1.7 KiB
C++
75 lines
1.7 KiB
C++
#ifndef _THREAD_THREADCALLBACK_HPP_
|
|
#error TCALLBCK.HPP MUST PRECEDE TCALLBCK.TPP
|
|
#endif
|
|
|
|
template <class T>
|
|
ThreadCallback<T>::ThreadCallback(void)
|
|
: mlpObject(0), mlpMethod(0)
|
|
{
|
|
}
|
|
|
|
template <class T>
|
|
ThreadCallback<T>::ThreadCallback(const ThreadCallback<T> &someThreadCallback)
|
|
: mlpObject(someThreadCallback.mlpObject), mlpMethod(someThreadCallback.mlpMethod)
|
|
{
|
|
}
|
|
template <class T>
|
|
ThreadCallback<T>::ThreadCallback(T *lpObject,LPFNMETHOD lpMethod)
|
|
: mlpObject(lpObject), mlpMethod(lpMethod)
|
|
{
|
|
}
|
|
|
|
template <class T>
|
|
ThreadCallback<T>::~ThreadCallback()
|
|
{
|
|
}
|
|
|
|
template <class T>
|
|
WORD ThreadCallback<T>::operator==(const ThreadCallback<T> &someThreadCallback)const
|
|
{
|
|
return (mlpObject==someThreadCallback.mlpObject && mlpMethod==someThreadCallback.mlpMethod);
|
|
}
|
|
|
|
template <class T>
|
|
void ThreadCallback<T>::operator=(const ThreadCallback<T> &someThreadCallback)
|
|
{
|
|
mlpObject=someThreadCallback.mlpObject;
|
|
mlpMethod=someThreadCallback.mlpMethod;
|
|
}
|
|
|
|
template <class T>
|
|
void ThreadCallback<T>::setObject(T *lpObject)
|
|
{
|
|
mlpObject=lpObject;
|
|
}
|
|
|
|
template <class T>
|
|
void ThreadCallback<T>::setMethod(LPFNMETHOD lpMethod)
|
|
{
|
|
mlpMethod=lpMethod;
|
|
}
|
|
|
|
template <class T>
|
|
void ThreadCallback<T>::setCallback(T *lpObject,LPFNMETHOD lpMethod)
|
|
{
|
|
mlpObject=lpObject;
|
|
mlpMethod=lpMethod;
|
|
}
|
|
|
|
#if defined(_MSC_VER)
|
|
template <class T>
|
|
DWORD ThreadCallback<T>::operator*(ThreadMessage &someThreadMessage)
|
|
{
|
|
DWORD (T::*lpMethod)(ThreadMessage &someThreadMessage)=0;
|
|
if((lpMethod==mlpMethod)||!mlpObject)return 0L;
|
|
return (mlpObject->*mlpMethod)(someThreadMessage);
|
|
}
|
|
#else
|
|
template <class T>
|
|
DWORD ThreadCallback<T>::operator*(ThreadMessage &someThreadMessage)
|
|
{
|
|
if(!mlpObject||!mlpMethod)return 0L;
|
|
return (mlpObject->*mlpMethod)(someThreadMessage);
|
|
}
|
|
#endif
|