Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2012, 19:26   #1
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию работа с LPDISPATCH

Как из LPDISPATCH перевести в AnsiString?
koljsch вне форума Ответить с цитированием
Старый 18.09.2012, 20:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А ты знаешь что за интерфейс возвращается в переменку LPDISPATCH ?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2012, 21:48   #3
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Сообщение, точно строковое
koljsch вне форума Ответить с цитированием
Старый 18.09.2012, 22:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не я имею ввиду знаешь ли ты его спецификацию - какие у него свойства или методы есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2012, 22:23   #5
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Нет.
Это событие COM объекта, выглядит так:ModGetMessageEvent(TObject *Sender, LPDISPATCH Message)
Методы если по Builder'у смотреть, то там:GetTypeInfo, GetTypeInfoCount, GetIDsOfNames, Invoke, QueryInterface, AddRef, Release и QueryInterface<Q>-все это функции
koljsch вне форума Ответить с цитированием
Старый 18.09.2012, 22:59   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... ИМХО без знания структуры интерфейса ничего не поймешь.
Неужели нет никакого описания для него?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.09.2012, 23:03   #7
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Нет походу дела. В header файле имеется вот такое:
Код:
interface ModEvents  : public IDispatch
{
public:
  virtual HRESULT STDMETHODCALLTYPE GetMessageEvent(LPDISPATCH Message/*[in]*/) = 0; // [-1]
#if !defined(__TLB_NO_INTERFACE_WRAPPERS)

#endif
};
Больше ничего
koljsch вне форума Ответить с цитированием
Старый 19.09.2012, 08:30   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мдя...
Ну может быть просто тип привести будет достаточно: (PAnsiChar)Message
?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2012, 16:43   #9
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Да, Вы правы))
Спасибо!

А зная интерфейс его(т.е. что за объект передается), то как к данному интерфейсу привязать это сообщение?

Последний раз редактировалось Stilet; 21.09.2012 в 07:25.
koljsch вне форума Ответить с цитированием
Старый 21.09.2012, 07:28   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если я правильно понимаю GetMessageEvent, это callback.
Соответственно его нужно переопределить в классе-наследнике от ModEvents.
Тогда получишь обработчик события.
Я честно говоря не очень умею делать это на Си.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00