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.

ВОПРОС: Как это сделать?
Re: OLE автоматизация Corel Draw из под Builder или Delphi.
От: Sergey__ Россия  
Дата: 12.08.04 04:23
Оценка:
Здравствуйте, Lord_Driver, Вы писали:

1)библиотеку типов CorelDRAW — экспортируйте и посмотрите там на тип !
2)в MSDN BSTR не смотрели ? (у мнея под рукой нет)

если мне не изменяет память то
COM реализует свой тип срок который называется базовым — BSTR.
typedef OLECHAR * BSTR;

Эта строка содержит символы UNICODE с префиксом из четырех байт в котором содержится длина. Хоть эта строка и похожа на обычную строку но для работы с ней следует использовать специальные функции.
Regards, Sergey...(написано в: RSDN@Home 1.1.4 142)
Sergey
Re: OLE автоматизация Corel Draw из под Builder или Delphi.
От: Sergey__ Россия  
Дата: 12.08.04 04:31
Оценка:
Здравствуйте, Lord_Driver, Вы писали:

а если подумать то
используй WideString !!
Regards, Sergey...(написано в: RSDN@Home 1.1.4 142)
Sergey
Re: OLE автоматизация Corel Draw из под Builder или Delphi.
От: Sergey__ Россия  
Дата: 12.08.04 10:10
Оценка:
Здравствуйте, Lord_Driver,

получилось ?
Regards, Sergey...(написано в: RSDN@Home 1.1.4 142)
Sergey
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.