Вытащить картинку из Word (OLE)
От: Аноним  
Дата: 29.12.02 22:12
Оценка:
Как вытащить картинку из Word?
Имею IDispatch на InlineShape, при вызове get_Type() возвращает wdInlineShapePicture, картинка вставлена по Shift+Insert.
IDispatch не дает больше ничего интересного, может есть другие варианты?
Re: Вытащить картинку из Word (OLE)
От: filkov СССР  
Дата: 30.12.02 03:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как вытащить картинку из Word?

Что значит "вытащить"?

А>IDispatch не дает больше ничего интересного, может есть другие варианты?

Typelibrary WORD.OLB даёт длинный список методов dispinterface InlineShape.
В том числе Shape* ConvertToShape();
И у dispinterface Shape ещё более длинный список методов...
Санкционный Смотритель.
Re[2]: Вытащить картинку из Word (OLE)
От: Аноним  
Дата: 30.12.02 21:30
Оценка:
Здравствуйте, filkov, Вы писали:

А>>Как вытащить картинку из Word?

F>Что значит "вытащить"?
Вывести на hdc
(хотелось бы, как у OLE IViewObject->Draw(...HDC...))

А>>IDispatch не дает больше ничего интересного, может есть другие варианты?

F>Typelibrary WORD.OLB даёт длинный список методов dispinterface InlineShape.
F>В том числе Shape* ConvertToShape();
F>И у dispinterface Shape ещё более длинный список методов...
Все просмотрел (потратил ~4 недели), при чем при Convert, Word начинает ругаться, что документ изменили,
а результат тот же, нужных интерфейсов нет.
Re[3]: Вытащить картинку из Word (OLE)
От: filkov СССР  
Дата: 31.12.02 01:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>(хотелось бы, как у OLE IViewObject->Draw(...HDC...))

К сожалению не знаю, что это такое, этот Shape/InlineShape, с чем его едят.
Полагаю следовало бы спросить его: QueryInterface() for IViewObject*.
Что он отвечает, поддерживает или не поддерживает?
Санкционный Смотритель.
Re[4]: Вытащить картинку из Word (OLE)
От: Аноним  
Дата: 03.01.03 21:16
Оценка:
Здравствуйте, filkov, Вы писали:

F>Здравствуйте, Аноним, Вы писали:


А>>(хотелось бы, как у OLE IViewObject->Draw(...HDC...))

F>К сожалению не знаю, что это такое, этот Shape/InlineShape, с чем его едят.
F>Полагаю следовало бы спросить его: QueryInterface() for IViewObject*.
F>Что он отвечает, поддерживает или не поддерживает?
Если б держал вопросов не было.
Re[5]: Вытащить картинку из Word (OLE)
От: filkov СССР  
Дата: 03.01.03 22:31
Оценка:
Здравствуйте, Аноним, Вы писали:

F>>QueryInterface() for IViewObject*.

А>Если б держал вопросов не было.

Ну, тогда никакой ->Draw() в лоб невозможен.
А что говорит? Какой HRESULT?
Санкционный Смотритель.
Re: Вытащить картинку из Word (OLE)
От: Shire  
Дата: 30.06.03 23:23
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как вытащить картинку из Word?

А>Имею IDispatch на InlineShape, при вызове get_Type() возвращает wdInlineShapePicture, картинка вставлена по Shift+Insert.
А>IDispatch не дает больше ничего интересного, может есть другие варианты?

Столкнулся с такой же проблемой.
Долго стучал лысиной по полу, но безрезультатно.
Пока сделал полное извращение — вызываю Shape.CopyAsPicture и тут же беру из кляпборда через IDataObject WMF.
Работает, хотя и очень противно.
IMHO нужно копать в направлении свойства OLEFormat и конкретно Object.
Господа, ну неужели никто не знает как получить IViewObject?
Re: Вытащить картинку из Word (OLE)
От: EM Великобритания  
Дата: 01.07.03 11:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как вытащить картинку из Word?



Когда подобная задача стояла у меня, я долго общался с WinWord Automation API и пришел к выводу, что в общем случае там поддержки этого просто нету. Ну тоесть Ворд умеет поддерживать LinkedPictures — это картинка которая в отдельном файле валяется — с такими все тривиально, а картинку, засунутую внутрь вытащить не получилось никак В итоге плюнул я на это и стал их из клипборды доставать — криво, зато работает
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.