Страница 1 из 1

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

Добавлено: 18 мар 2009, 20:35
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)

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

Добавлено: 18 мар 2009, 21:06
LaaLaa
Какой версии у вас Acrobat Reader установлен? На сколько помню в документации пример был сгенерирован для версии Acrobat Reader 5.0 или 6.0. Я както пробовал встроить Acrobat Reader 8.0 для этого мне пришлость перегенерировать VIH и VIP заготовки. Т.к. OCX - Acrobat Reader сильно поменялся.

Добавлено: 19 мар 2009, 10:35
galover
Дело здесь не в Акробате. Пробовал на другом ocx -> такая же ерунда. Может AtlTLB старый и генерит неправильные обертки? Он у меня от 31.07.2008

Добавлено: 19 мар 2009, 12:05
galover
все разобрался, сам накосячил

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