特定于电话和地址设备的事件
以下代码示例演示地址和电话设备事件的事件处理程序。 每个事件的代码显示如何创建事件接口以及如何检索事件数据。
HRESULT STDMETHODCALLTYPE CMyEventNotification::Event(
TAPI_EVENT TapiEvent,
IDispatch * pEvent
)
{
HRESULT hr = S_OK;
//...
switch (TapiEvent)
{
case TE_ADDRESSDEVSPECIFIC:
{
ITAddressDeviceSpecificEvent* pITADSEvent = NULL;
hr = pEvent->QueryInterface(
IID_ITAddressDeviceSpecificEvent,
(void **)(&pITADSEvent) );
// If (hr != S_OK) process the error here...
// Retrieve data received from the TSP.
long lParam1=0;
hr = pITADSEvent->get_lParam1(&lParam1);
// If (hr != S_OK) process the error here...
long lParam2=0;
hr = pITADSEvent->get_lParam2(&lParam2);
// If (hr != S_OK) process the error here...
long lParam3=0;
hr = pITADSEvent->get_lParam3(&lParam3);
// If (hr !=S_OK) process the error here...
// Process the data here.
// ...
pITADSEvent->Release();
break;
}
case TE_PHONEDEVSPECIFIC:
{
ITPhoneDeviceSpecificEvent* pITPhEvent = NULL;
hr = pEvent->QueryInterface(
IID_ITPhoneDeviceSpecificEvent,
(void **)(&pITPhEvent) );
// If (hr != S_OK) process the error here...
// Retrieve data received from the TSP.
long lParam1=0;
hr = pITPhEvent->get_lParam1(&lParam1);
// If (hr != S_OK) process the error here...
long lParam2=0;
hr = pITPhEvent->get_lParam2(&lParam2);
// If (hr != S_OK) process the error here...
long lParam3=0;
hr = pITPhEvent->get_lParam3(&lParam3);
// If (hr != S_OK) process the error here...
// Process the data here.
//...
pITPhEvent->Release();
break;
}
//...
} // end of switch
//...
}