OLE автоматизация Corel Draw из под Builder или Delphi. BSTR
От: Lord_Driver Россия http://www.vadim.aspu.ru/
Дата: 11.08.04 21:37
Оценка:
Я уже достаточно долго мучаюсь с этой проблемой. Не могу пользоваться OLE функциями в которых есть входные параметры типа: BSTR, описания которых взяты из CorelDrw110.tlb например таких как: long FileOpen(BSTR FileName ); long FileImport(BSTR FileName, long FilterID, VARIANT_BOOL MaintainLayersAndPages );....

Из под того же Builder — a до CorelDraw добраться через OLE непроблема:

Variant Eapp,Sh;
Eapp = CreateOleObject("CorelDRAW.Application");
Eapp.OleFunction("CorelScript").OleFunction("FileNew");
Eapp.OlePropertySet("Visible",v);
//можно даже елипс нарисовать:
Sh=Eapp.OlePropertyGet("ActivePage");
Sh.OlePropertyGet("ActiveLayer").OleFunction("CreateEllipse",3,3,2,1);
//описание в CorelDrw110.tlb: long CreateEllipse(long Top, long Left, long Bottom, long Right, long StartAngle, long EndAngle, VARIANT_BOOL Arc );
//Работает !!!
// А вот тут проблема:
Eapp.OleFunction("CorelScript").OleFunction("FileOpen","c:\\123.jpg");
//Вываливается ошибка "Не совпадение или не соответствие типов"
// Описание в CorelDrw110.tlb: long FileOpen(BSTR FileName );
-----------------
Как я понял "c:\\123.jpg" или String sPath который можно туда подставить, должны представлять из себя данные в формате BSTR.

ВОПРОС: Как это сделать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.