Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TOleContainer - страницы / 4 сообщений из 4, страница 1 из 1
03.09.2003, 01:26
    #32254162
LVU
LVU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TOleContainer - страницы
Итак, есть OleContainer, в который грузится вордовский документ. Хочется сделать чтобы, если в нем несколько страниц, то можно было их посмотреть, не активизируя документ (т. е., не делая DoVerb(ovShow) или чего-то в этом роде).
Казалось бы, это должно делаться через OLE Automation. Но: OleObjectInterface возвращает объект, реализующий IDispatch только после активации документа, до этого данный интерфейс не реализуется.
Сам TOleContainer для отрисовки неактивного документа использует OleDraw(), которая, судя по MSDN, вызывает, в свою очередь, IViewObject::Draw(). У последнего же есть некий параметр LONG lindex, описание которого мне найти не удалось. Возможно, можно что-то сделать с его помощью? Или есть еще какие-нибудь пути?
...
Рейтинг: 0 / 0
03.09.2003, 09:03
    #32254248
Mihail R.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TOleContainer - страницы
привет!
да уж вопрос...
у меня тоже было много вопросов по ОлеКонтэйнеру, но увы до сих пор без ответа. пробовал сам копать и писать свой контэйнер - не осилил, то времени нет то инфы не хватает то еще чего :-)

если что узнаешь, напиши пожалста - меня эта проблема тоже очень интересует.

ЗЫ: то что показывает олеконтайнер не активированный это просто в нем хранится как набор пикселов или все же нет?
...
Рейтинг: 0 / 0
03.09.2003, 10:27
    #32254334
LVU
LVU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TOleContainer - страницы
2 Mihail R.
Если узнаю - напишу. А по поводу того, что он показывает - нет, это не набор писелов (тем более, он же все равно должен откуда-то эти пиксели брать, правильно?). Просто объект, возвращаемый OleObjectInterface при неактивном документе все равно реализует интерфейс IViewObject, у которого есть метод Draw(). По сути, именно он и занимается отрисовкой - ему передаются всякие там HDC, прямоугольник, в который надо рисовать и проч. А вот что обозначает его параметр lindex - непонятно. Вроде пишут, что он обозначает, какую часть документа выводить, а подробнее - смотрите где-то там... в общем, там этого я не нашел. Если бы это было то, что нужно - можно было бы спокойно написать своего наследника TOleContainer'а и переписать в нем Paint. Наверное, попробую так сделать.
...
Рейтинг: 0 / 0
04.09.2003, 22:21
    #32256443
LVU
LVU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TOleContainer - страницы
Увы, не получилось. Если передавать lindex!=-1, то возвращает DV_E_LINDEX: Invalid value for lindex; currently only -1 is supported. Похоже, это сделать нельзя.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TOleContainer - страницы / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]