#c# #c #pinvoke #telephony #tapi
#c# #c #pinvoke #телефония #tapi
Вопрос:
У меня есть приложение, которое программно выполняет вызовы на разные номера. Приложение написано на c # (управляемом), и я использую PInvoke для функций c TAPI. Все работает нормально, за исключением того факта, что мне нужно преобразовать номер телефона в формат, доступный для набора номера.
Чтобы выполнить это преобразование, я должен использовать функцию C lineTranslateAddress, но из C #. Кто-нибудь использовал эту функцию из управляемого кода и может предоставить мне несколько примеров или хотя бы объяснений.
Может быть, какие-то указания на то, как маршалировать / nmarshall последнее поле
LPLINETRANSLATEOUTPUT lpTranslateOutput
Я должен также упомянуть, что приложение предназначено для интеллектуального устройства.
Спасибо,
Ответ №1:
Я использовал этот пример кода, и он работает
[DllImport("coredll", SetLastError = true)]
extern public static int lineTranslateAddress(
IntPtr hLineApp,
int dwDeviceID,
int dwAPIVersion,
string lpszAddressIn,
int dwCard,
int dwTranslateOptions,
byte[] lpTranslateOutput
);
Ответ №2:
Я несколько раз работал с TAPI в C #, и я бы настоятельно рекомендовал использовать вызываемую оболочку во время выполнения (RCW) вместо использования Platform Invoke. C:windowssystem32tapi3.dll
может быть добавлен в качестве ссылки на проект, и VS автоматически сгенерирует сборку взаимодействия, которую вы можете использовать для работы с классами и функциями.
Таким образом, вы сможете вызывать lineTranslateAddress
функцию с большой легкостью; через ITAddressTranslation
интерфейс.
Примечание: Даже если ваш TSP соответствует только TAPI 2.x, вы все равно можете использовать функциональность в tapi3.dll
(при условии, что вы вызываете только подмножество функций, поддерживаемых TAPI 2)
Комментарии:
1. работает ли это также для интеллектуальных устройств? вероятно, нет, как я могу видеть из пути к dll. (Я забыл упомянуть об этом в исходном сообщении)
2. К сожалению, библиотека типов не может использоваться с интеллектуальными устройствами.