![]() |
|
|
![]()
|
|
| Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: нет Всего: 1 |
Есть сервер-объект OLE и контейнер клиент.
Как в контейнере нарисовать представление объекта? Никак не могу понять откуда извлекается интерфейс IViewObject в переменную член класса COleClientItem m_lpViewObject. Что нужно изменить в сервере чтобы перегрузить метод этого интефейса Draw? Может это как-то по-другому делаетя? Мне говорят надо юзать COleCotrol, но я не пойму как его привязать к серверу. |
|||
|
||||
| JoyEx |
|
|||
|
Дядя ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 21.6.2005 Где: Москва, РФ Репутация: 1 Всего: 12 |
Обычно перед созданием окна (например, ActiveX'a) клиент через IOleObject:: SetClientSite() передает свой IOleInPlaceSite серверу ( коклассу ), ну и тебе остается токо IOleInPlaceSite::GetWindow() и т.п..
-------------------- Если ты уже никого не боишься, значит ты самый страшный |
|||
|
||||
| Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: нет Всего: 1 |
Спасибо за ответ , но я не очень понял..
У меня сейчас такая проблема Контейнер должен получить представление объекта, но у объекта метод COleServerItem::OnDraw вызывается только один раз , а у меня после его вызова появляются диалоги настройки отображения объекта.(Насколько я понял в него передается контекст метафайла ) То есть можно ли как нибудь обновить этот метафайл? Может я что-то не так понимаю? И где вызывается COleServerItem::OnDraw? Уже несколько дней не могу решить эту проблему... |
|||
|
||||
| JoyEx |
|
|||
|
Дядя ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 21.6.2005 Где: Москва, РФ Репутация: 1 Всего: 12 |
Получи интерфейс IViewObject и обновляй окно:
-------------------- Если ты уже никого не боишься, значит ты самый страшный |
|||
|
||||
| Leksey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 12.12.2004 Репутация: нет Всего: 1 |
Этого мало.
Я посылаю серверу OLECMDID_PRINTPREVIEW в обработчике делаю NotifyChanged() lz СServerItem, вроде бы все заработало но... Короче теперь другие проблемы. |
|||
|
||||
| JoyEx |
|
||||
|
Дядя ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 21.6.2005 Где: Москва, РФ Репутация: 1 Всего: 12 |
Обычно интерфейсы получают через IUnknown::QueryInterface()
-------------------- Если ты уже никого не боишься, значит ты самый страшный |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |