Здравствуйте, vkilikov, Вы писали:
V>Привет !
V>Я пытаюсь написать программу для обмена данными посредством модема. Для работы с модемом (дозвон, соединение, контроль состояния линии и т.п.) хочу использовать TAPI, а для пересылки и получения данных — стандартную работу через COM-порт с посощью WriteFile/ReadFile. Если я сначала соединяюсь с помощью TAPI, а потом пытаюсь создать файл посредством CreateFile, то получаю ошибку "The process cannot access the file because it is being used by another process". Если пытаюсь сначала создать файл, а потом соединяться с помощью TAPI то вылетаю на lineOpen с загадочной ошибкой LINEERR_OPERATIONFAILED.
V>Можно ли в принципе работать одновременно с TAPI и COM-портом через файл ? Если нет, то как сделать ?
Можно. только CreateFile здесь не нужен, механизм немного другой. Сначала переводим модем в режим LINEBEARERMODE_PASSTHROUGH (см. lineSetCallParams). Потом получаем ID устройства datamodem (см. lineGetID). А уж потом из полученной структуры VARSTRING вылавливаем HANDLE на СОМ-порт. Его и используем в функциях WriteFile, ReadFile.
btw, если кто расскажет мне, как из режима LINEBEARERMODE_PASSTHROUGH ыввести модем обратно в AUTOMATEDVOICE, не делая hangup, буду очень признателен. Потому как в литературе этого момента не нашел, а МСДН по этому поводу такую муть написала, что.... лучше и не знать, что такая муть вообще бывает

Удачи.