当前位置: 首页>>代码示例>>C++>>正文


C++ COperator::AnswerTheCall方法代码示例

本文整理汇总了C++中COperator::AnswerTheCall方法的典型用法代码示例。如果您正苦于以下问题:C++ COperator::AnswerTheCall方法的具体用法?C++ COperator::AnswerTheCall怎么用?C++ COperator::AnswerTheCall使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在COperator的用法示例。


在下文中一共展示了COperator::AnswerTheCall方法的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" );
                            }
                        }
//.........这里部分代码省略.........
开发者ID:mkane848,项目名称:HLPlague,代码行数:101,代码来源:operator.cpp


注:本文中的COperator::AnswerTheCall方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。