BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 22 июн 2025, 11:30

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 18 сен 2014, 11:01 
Не в сети
Аватара пользователя

Зарегистрирован: 02 апр 2014, 12:57
Сообщения: 46
Карма: 0
Доброго времени суток.
Проблема не связана с биллингом, скорее вопрос по Яве.
Писал на форумах, друзьям, коллегам - никто не может помочь, Вы последняя надежда :)
Суть:
Есть у 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...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 сен 2014, 13:00 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
а почему не стрельнуло? не вызывается вообще или что?
я с помощью JACOB делал что-то подобное, вроде работало всё

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 сен 2014, 10:05 
Не в сети
Аватара пользователя

Зарегистрирован: 02 апр 2014, 12:57
Сообщения: 46
Карма: 0
просто я получил структуру в виде класса Объект. и не понял что дальше с ним делать... :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.041s | 23 Queries | GZIP : On ]