Встроить ActiveX компонент в интерфейс

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Встроить ActiveX компонент в интерфейс

Сообщение galover »

Безуспешно пытаюсь запустить пример, описанный в документации. Код такой:

Код: Выделить всё

#component "Foo"

interface Bar;

embedded scr1 ole;
end;
	
var pPDF: com_DPdf;

handleEvent
		cmInit:
		{ 
		  pPDF := com_DPdf(new(coPdf));
		  pPDF.comOptions := ooAllowInPlace + ooAllowDirectPaint;
		  OleEmbed (pPDF.comHandle, scr1); 
		  pPDF.LoadFile ('c:\1.pdf');
		}
	end;
end.
ocx зарегистрирован, обертки для COM (vih и vip) получил.
Но при запуске получаю:
---------------------------
Предупреждение
---------------------------
Возникло необработанное исключение
ExObjIfcNoLoad (ExRef)
ошибка загрузки объекта из ресурсного файла(coPdf)

"Да" - Продолжить, "Нет" - Отлаживать в окне отладчика
"Отмена" - Не выдавать больше это сообщение
---------------------------
Да Нет Отмена
---------------------------
Куда копать?
LaaLaa

Сообщение LaaLaa »

Какой версии у вас Acrobat Reader установлен? На сколько помню в документации пример был сгенерирован для версии Acrobat Reader 5.0 или 6.0. Я както пробовал встроить Acrobat Reader 8.0 для этого мне пришлость перегенерировать VIH и VIP заготовки. Т.к. OCX - Acrobat Reader сильно поменялся.
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

Дело здесь не в Акробате. Пробовал на другом ocx -> такая же ерунда. Может AtlTLB старый и генерит неправильные обертки? Он у меня от 31.07.2008
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

все разобрался, сам накосячил
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

вопрос! как передать отсутствующие значения для параметров функции ActiveX компонента. Скажем функция принимает 2 параметра, оба variant, второй параметр указывать необязательно. Так вот что туда передать? Eсть ли аналог System.Reflection.Missing.Value?
Ответить