Здравствуйте, antizero, Вы писали:
J>>Примерная последовательность действий такова
J>>lineInitialize
J>>lineOpen
J>>lineMakeCall
J>>lineGetID
J>>// передаешь данные своему устройству
J>>lineDrop
J>>lineClose
J>>lineShutdown
A>Извиняюсь конечно! Но я же как раз говорил, что это не проблема — исходников и примеров полно.
Проблема именно там где у тебя комментарий стоит.
Именно то, как в TAPI передавать и принимать данные может спасти отца русской демократии.
Также как и обычно. Например если те нужно передать/прочитать бинарные данные, то вызываешь LineGetId c параметром "comm/datamodem" и пишешь/читаешь в полученый хенл спомощью ReadFile/WriteFile. В общем почитай про различные device classes...
Здравствуйте, Аноним, Вы писали:
А>Возникает вопрос: как работать с PCI и USB модемами
А>С помощью TAPI можно набрать номер, записать голос и т д, а как получать и отсылать данные в порт которого физически нет
Ведь установленный PCI или USB модем (если он не ставится как ещё один COM наподобие переходников) стоит на приатаченом порту, который открыть обычными средствами невозможно и требуется общаться к драйверу причем не напрямую, а через средства Windows? так как напрямую это и сложнее и глюкавее...
А>В общем HELP!!! Не то я скоро стану очень больным и бедным!
Ну ты же сам сказал ответ — TAPI спасет отца русской демократии. Через тапи можно работать с любым
установленным в системе модемом.
Примерная последовательность действий такова
lineInitialize
lineOpen
lineMakeCall
lineGetID
// передаешь данные своему устройству
lineDrop
lineClose
lineShutdown
Как известно для того что, бы достучатся к PCI USB и (возможно софт модему) знание номера порта (ключ реестра "AttachedTo") мало.

Все примеры, публикуемые в инете (складывается впечатление, что у них был один и тот же автор) спользуют обращение к модему через порт, на котором находится модем.
У меня никогда не возникало этих проблем пока я писал на DELPHI, поскольку для неё есть чудесная библиотека Async32 в которой есть не менее чудесный компонент TVaComm у которого есть чудесное свойство DeviceName.

Задав ему название порта (список которых можно получить с помощью того же компонента) или имя установленного в системе модема я всегда получал то что хотел.

Но поскольку потребовалось написание ПО на Builder С++, а в библиотеке Async32 есть инталяшка и под Builder, то разрабатывать софт я начал, пребывая в полном спокойствии духа...

Но ни тут то было!!! Когда уже был навернут нехилый парсер (на С++) для работы с довольно сложным девайсом, то обнаружилось ,что порты ,попрежнему, открыть можно но любая попытка открыть модем по имени заканчивается ошибкой!!!!

((((((((((
Насколько я понял Builder всегда был в "отстое" по сравнению с DELPHI и тут тоже имел место остаточный принцып...

((
Возникает вопрос: как работать с PCI и USB модемами
С помощью TAPI можно набрать номер, записать голос и т д, а как получать и отсылать данные в порт которого физически нет

Ведь установленный PCI или USB модем (если он не ставится как ещё один COM наподобие переходников) стоит на приатаченом порту, который открыть обычными средствами невозможно и требуется общаться к драйверу причем не напрямую, а через средства Windows? так как напрямую это и сложнее и глюкавее...
В общем HELP!!! Не то я скоро стану очень больным и бедным!