本文整理汇总了C++中COperator::DoMessage方法的典型用法代码示例。如果您正苦于以下问题:C++ COperator::DoMessage方法的具体用法?C++ COperator::DoMessage怎么用?C++ COperator::DoMessage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类COperator
的用法示例。
在下文中一共展示了COperator::DoMessage方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MainDialogProc
/**********************************************************
* MainDialogProc *
*----------------*
* Description:
* Main dialog proc for this sample
***********************************************************/
BOOL CALLBACK MainDialogProc(
HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
// This is set to be the window long in WM_INITDIALOG
COperator *pThis = (COperator *) ::GetWindowLong( hDlg, GWL_USERDATA );
switch (uMsg)
{
case WM_INITDIALOG:
{
// Get the pointer to the COperator object from the lParam.
// Store it in the window long as user data
pThis = (COperator *) lParam;
::SetWindowLong( hDlg, GWL_USERDATA, (LPARAM) pThis );
// Hand the window handle to the event notification object
// so that this window will get window messages about incoming calls
pThis->m_pTAPIEventNotification->SetHWND( hDlg );
// Get the window handle
pThis->m_hDlg = hDlg;
// Wait for a call
::EnableWindow( ::GetDlgItem( hDlg, IDC_ANSWER ), FALSE );
pThis->SetStatusMessage( L"Waiting for a call..." );
return 0;
}
case WM_PRIVATETAPIEVENT:
{
// This message is received whenever a TAPI event occurs
pThis->OnTapiEvent( (TAPI_EVENT) wParam,
(IDispatch *) lParam );
return 0;
}
case WM_COMMAND:
{
if ( LOWORD(wParam) == IDCANCEL )
{
// Quit
EndDialog( hDlg, 0 );
return 1;
}
switch ( LOWORD(wParam) )
{
case IDC_AUTOANSWER:
{
// Auto answer check box state was changed
pThis->m_fAutoAnswer = !pThis->m_fAutoAnswer;
return 1;
}
case IDC_ANSWER:
{
// Answer the call
pThis->SetStatusMessage(L"Answering...");
if ( S_OK == pThis->AnswerTheCall() )
{
pThis->SetStatusMessage(L"Connected");
::EnableWindow( ::GetDlgItem( hDlg, IDC_ANSWER ), FALSE );
// Connected: Talk to the caller
// PLEASE NOTE: This is a single-threaded app, so if the caller
// hangs up after the call-handling sequence has started, the
// app will not be notified until after the entire call sequence
// has finished.
// If you want to be able to cut the call-handling short because
// the caller hung up, you need to have a separate thread listening
// for TAPI's CS_DISCONNECT notification.
HRESULT hrHandleCall = pThis->HandleCall();
if ( FAILED( hrHandleCall ) )
{
if ( TAPI_E_DROPPED == hrHandleCall )
{
pThis->SetStatusMessage( L"Caller hung up prematurely" );
}
else
{
pThis->DoMessage( L"Error encountered handling the call" );
}
}
//.........这里部分代码省略.........