TAPI, lineInitialize и lineInitializeEx

Я пытаюсь использовать TAPI в своем проекте Delphi.
Когда я использую lineInitializeEx вместо lineInitialize, я получаю сообщение об ошибке типа "Сообщение об обработке исключений c0000139 Параметры 168fc8 162820 75b4bf7c 75b4bf7c"
Код с lineInitializeEx:

  var
    initPrm: TLineInitializeExParams;
  begin
    FillChar(initPrm, SizeOf(initPrm), 0);
    initPrm.dwTotalSize := SizeOf(initPrm);
    initPrm.dwOptions := LINEINITIALIZEEXOPTION_USEEVENT; // or LINEINITIALIZEEXOPTION_USEHIDDENWINDOW
    if lineInitializeEx(lineApp, HInstance, lineCallback, 'TAPI sample', nDevs, tapiVersion, initPrm) < 0 then

и определение TLineInitializeExParams:

TLineInitializeExParams = record
    dwTotalSize,                                    
    dwNeededSize,                                   
    dwUsedSize,                                     
    dwOptions: Longint;                             
    Handles: THandleUnion;
    dwCompletionKey: Longint;                       
  end;

Когда я использую lineInitialize

if lineInitialize(lineApp, HInstance, lineCallback, 'TAPI sample', nDevs) < 0 then

все ок.

Есть ли идея?


person SimaWB    schedule 23.10.2009    source источник
comment
Откуда вы получаете класс TLineInitializeExParams? Это не стандартный класс Delphi? Это оболочка JEDI?   -  person J__    schedule 23.10.2009


Ответы (1)


Возможно, стоит взглянуть на TurboPower Async Professional, исходный код которого теперь с открытым исходным кодом. Это то, что мы использовали для успешной реализации проекта ТАПИ.

https://sourceforge.net/projects/tpapro/

person J__    schedule 23.10.2009
comment
Спасибо за совет. Я пишу сервисное приложение Win32. и я думаю компы TP Async TAPI. не лучший выбор для сервисного приложения. Также я не смог найти, как можно использовать компоненты TurboPower Async TAPI через TCP, а не через ComPort. Когда я использую комп. ему нужен ComPort. - person SimaWB; 23.10.2009
comment
Это связано с тем, что TAPI — это API телефонии, и поэтому он предназначен для использования с модемами, которые обмениваются данными через COM-порт. Конечно, сейчас многое из этого является старыми технологиями. Для связи через TCP/IP используйте стандартные компоненты Delphi TSocket. - person J__; 23.10.2009
comment
TAPI очень удобен для связи с АТС. Я буду использовать его для этого. Моя АТС поддерживает TAPI 2. Поэтому я хочу использовать функцию lineInitializeEx. Но я думаю, что мне следует использовать lineInitialize. - person SimaWB; 23.10.2009
comment
Теперь я просто использую оболочку JEDI, и функция lineInitializeEx работает нормально. @_J_ : Спасибо за ваше отношение. - person SimaWB; 23.10.2009