forum.bitel.ru http://forum.bitel.ru/ |
|
Как получить данные (структура) из COM-объекта http://forum.bitel.ru/viewtopic.php?f=19&t=9729 |
Страница 1 из 1 |
Автор: | Lesto [ 18 сен 2014, 11:01 ] |
Заголовок сообщения: | Как получить данные (структура) из COM-объекта |
Доброго времени суток. Проблема не связана с биллингом, скорее вопрос по Яве. Писал на форумах, друзьям, коллегам - никто не может помочь, Вы последняя надежда ![]() Суть: Есть у COMа метод: Код: // код С++ long PeekMessage(VARIANT* Msg); Описание из документации: Цитата: Параметры Msg Указатель на структуру VARIANT, в которую будет помещено сообщение. Эта структура будет иметь тип массива байт (VT_ARRAY|VT_UI1). мне нужно поймать сообщение: SPR_MSG_C_ANI_DETECT, и структуру: CHANNELMSGPHONENUMBER код структуры из документации: Код: // код С++ typedef struct _CHANNELMSGPHONENUMBER { MSGHEADER mh; wchar_t cbPhoneNumber[MAX_PHONE_NUMBER_CHARS]; wchar_t cbSubPhoneNumber[MAX_SUBPHONE_NUMBER_CHARS]; } CHANNELMSGPHONENUMBER, *PCHANNELMSGPHONENUMBER, *LPCHANNELMSGPHONENUMBER; еще немного документации: Цитата: Для чтения сообщений используйте метод PeekMessage интерфейсов ISpRecordClientW и ISpRecordChannelClientW. Сообщение возвращается в структуре VARIANT, данные которой записаны в виде массива байт (VT_ARRAY|VT_UI1). Чтобы получить доступ к сообщению получите указатель на данные сохраненные в массиве с помощью функции VarArrayLock в Delphi и C++ Builder или функции SafeArrayAccessData в Microsoft Visual C++, предавая ей в качестве первого параметра поле Msg.parray. Этот указатель и будет являться указателем на структуру сообщения. Любое сообщение начинается с заголовка имеющего структуру MSGHEADER. для подключения к COM использую JACOB. Попытался сделать так: Код: if ( Dispatch.call(aXChannel, "WaitMessage", 10000) == (int)SPR_S_OK ) { Variant v = new Variant(new Object(), true); Dispatch.call(aXChannel, "PeekMessage", v) ; } не стрельнуло. сейчас копаю в сторону JNK... |
Автор: | dimOn [ 18 сен 2014, 13:00 ] |
Заголовок сообщения: | Re: Как получить данные (структура) из COM-объекта |
а почему не стрельнуло? не вызывается вообще или что? я с помощью JACOB делал что-то подобное, вроде работало всё |
Автор: | Lesto [ 19 сен 2014, 10:05 ] |
Заголовок сообщения: | Re: Как получить данные (структура) из COM-объекта |
просто я получил структуру в виде класса Объект. и не понял что дальше с ним делать... ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |