Доброго времени суток.
Проблема не связана с биллингом, скорее вопрос по Яве.
Писал на форумах, друзьям, коллегам - никто не может помочь, Вы последняя надежда

Суть:
Есть у 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...