Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TAPI- кто разбираеться? 
:(
    Опции темы
dandy77
Дата 18.7.2008, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



не могу разобраться по MSDN в TAPI (телефония, кто знает). мне нужно написать программу- диалоговое окно на котором одна всего кнопка- "Позвонить" называеться. когда я нажимаю эту кнопку модем должен набирать номер телефона с которым я хочу поговорить, и когда будут слышны длинные гудки я снимаю трубку реального телефона и разговариваю, а точнее жду когда ответят на мои длинные гудки- вызов, и начинаю разговор. как это реализовать? кто- то вобще шарит? пожалуйста подскажите. в интернете нашел какой- то код по этому вопросу- он у меня не работает. 
Код

void CPhoneDlg::OnButton1() 
{
    // TODO: Add your control notification handler code here
       
    // Initialize COM
CoInitializeEx(
    NULL,
    COINIT_MULTITHREADED
    );

// Create a TAPI entry point object.
ITTAPI *gpTapi;
CoCreateInstance(
    CLSID_TAPI,
    NULL,
    CLSCTX_INPROC_SERVER,
    IID_ITTAPI,
    (LPVOID *)&gpTapi
    );

// Initialize TAPI
gpTapi->Initialize();

HRESULT hr;
ITAddress *pAddress = NULL;  
ITBasicCallControl *pBasicCall = NULL; 
IEnumAddress *pIEnumAddress = NULL; 

   gpTapi->_EnumerateAddresses(&pIEnumAddress); 
  //DWORD dwAddressType = LINEADDRESSTYPE_PHONENUMBER; 
  //unsigned short * dwMediaType = TAPIMEDIATYPE_DATAMODEM;   
  OLECHAR wAddressCall [5]; 
  CString strTemp;
  strTemp="41615";
  MultiByteToWideChar(CP_ACP, 0, (LPCTSTR) strTemp, -1, &wAddressCall[0], 5); 

  ITMediaSupport *pMediaSupport = NULL;  
  VARIANT_BOOL bSupport;// = FALSE; 
  bool isSuccessAddress = false; 
  
  BSTR bstrAddressToCall = SysAllocString(&wAddressCall[0]); 

  while(S_OK == pIEnumAddress->Next(1, &pAddress, NULL) ) 
  {  
    hr = pAddress->QueryInterface(IID_ITMediaSupport, (void **)&pMediaSupport); 
    if(hr == S_OK) 
    {      
      //hr = pMediaSupport->QueryMediaType(dwMediaType, &bSupport);        
    //ошибка в следующей строке. ошибка времени исполнения "Acces violation"
    hr = pMediaSupport->QueryMediaType(TAPIMEDIATYPE_String_DataModem, &bSupport);    
        
      if(bSupport) 
      { 
        hr = pAddress->CreateCall(bstrAddressToCall,  &pBasicCall);              
        if(hr == S_OK) 
        {  
          isSuccessAddress = true; 
          break;          
        } 
      } 
    } 
  } 

    hr = pBasicCall->Connect(FALSE);      
    
    /*
    if(isSuccessAddress) 
  { 
    HANDLE hCurrentProcess = GetCurrentProcess(); 
    for(int i=0; i<iCount; ++i) 
    { 
      hr = pBasicCall->Connect(FALSE);      
      if(m_isHangup) 
      { 
        pBasicCall->Disconnect(DC_NORMAL); 
        break; 
      } 
      WaitForInputIdle(hCurrentProcess, iInterval); 
    } 
  }
 */
    
}

PM MAIL   Вверх
AndreySol
Дата 21.7.2008, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



Судя по коду Ваш пример с использованием TAPI 3.0 или выше.
Я могу дать подсказку по TAPI 2.2. Разница у них существенная, поэтому решайте - разбираться с более новой версией (что должно быть правильно) или воспользоваться моей подсказкой по устаревшей версии ?
PM MAIL   Вверх
dandy77
Дата 21.7.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



если можешь AndreySol давай что есть, потом разберусь и с новой версией.
PM MAIL   Вверх
AndreySol
Дата 23.7.2008, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: нет
Всего: 1



Держи, проект в VC++ 6.0 (уж извиняйте за старую студию).
Думаю разберешься, если нет - спрашивай.

Присоединённый файл ( Кол-во скачиваний: 26 )
Присоединённый файл  PhoneStation.rar 86,61 Kb
PM MAIL   Вверх
dandy77
Дата 8.8.2008, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 18.7.2008

Репутация: нет
Всего: нет



Спасибо уже скачал, сейчас посмотрю.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.