www.pudn.com > lucent_softphone.rar > lucentCtiCP.h


#ifndef _LUCENTCTICP_H_ 
#define _LUCENTCTICP_H_ 
 
 
template  
class CProxy_IDirectoryNumberEvents : public IConnectionPointImpl 
{ 
	//Warning this class may be recreated by the wizard. 
public: 
	LONG Fire_Event(ICTIEvent * evt) 
	{ 
		CComVariant varResult; 
		T* pT = static_cast(this); 
		int nConnectionIndex; 
		CComVariant* pvars = new CComVariant[1]; 
		int nConnections = m_vec.GetSize(); 
		 
		for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) 
		{ 
			pT->Lock(); 
			CComPtr sp = m_vec.GetAt(nConnectionIndex); 
			pT->Unlock(); 
			IDispatch* pDispatch = reinterpret_cast(sp.p); 
			if (pDispatch != NULL) 
			{ 
				VariantClear(&varResult); 
				pvars[0] = evt; 
				DISPPARAMS disp = { pvars, NULL, 1, 0 }; 
				pDispatch->Invoke(0x1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); 
			} 
		} 
		delete[] pvars; 
		return varResult.lVal; 
	 
	} 
}; 
 
template  
class CProxy_IMichelleCTIEvents : public IConnectionPointImpl 
{ 
	//Warning this class may be recreated by the wizard. 
public: 
	LONG Fire_Event(ICTIEvent * evt) 
	{ 
		CComVariant varResult; 
		T* pT = static_cast(this); 
		int nConnectionIndex; 
		CComVariant* pvars = new CComVariant[1]; 
		int nConnections = m_vec.GetSize(); 
		 
		for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) 
		{ 
			pT->Lock(); 
			CComPtr sp = m_vec.GetAt(nConnectionIndex); 
			pT->Unlock(); 
			IDispatch* pDispatch = reinterpret_cast(sp.p); 
			if (pDispatch != NULL) 
			{ 
				VariantClear(&varResult); 
				pvars[0] = evt; 
				DISPPARAMS disp = { pvars, NULL, 1, 0 }; 
				pDispatch->Invoke(0x1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); 
			} 
		} 
		delete[] pvars; 
		return varResult.lVal; 
	 
	} 
}; 
#endif