Было вот так:
A>A> // Совершить вызов функции в потоке с ожиданием результата.
A> template< class BinObj >
A> typename BinObj::result_type Call_Wait( BinObj * pCall )
A> {
A> HANDLE hEvent = CreateEvent( NULL, FALSE, FALSE, NULL ) ;
A> pCall->AddRef() ;
A> PostThreadMessage( dwThrId, WM_CALL, ( WPARAM )hEvent, ( LPARAM ) ( ICall * ) & pCall ) ;
A> WaitForSingleObject( hEvent, INFINITE ) ;
A> CloseHandle( hEvent ) ;
A> typename BinObj::result_type res = rCall.m_result ;
A> rCall.Release() ;
A> return res ;
A> }
A>
Надо так:
template< class BinObj >
typename BinObj::result_type Call_Wait( BinObj * pCall )
{
HANDLE hEvent = CreateEvent( NULL, FALSE, FALSE, NULL ) ;
pCall->AddRef() ;
PostThreadMessage( dwThrId, WM_CALL, ( WPARAM )hEvent, ( LPARAM ) ( ICall * ) & pCall ) ;
WaitForSingleObject( hEvent, INFINITE ) ;
CloseHandle( hEvent ) ;
typename BinObj::result_type res = pCall->m_result ;
pCall->Release() ;
return res ;
}