Форум: "Основная";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];
Вниз
OleVariant без автоматического подключения Variants Найти похожие ветки
← →
Dmitry S (2007-10-11 05:33) [0]Необходимо передать параметр в функцию
OleLoadPictureFile
который имеет тип OleVariant :function OleLoadPictureFile(varFileName: OleVariant;
var lpdispPicture: IDispatch): HResult; stdcall;
external "oleaut32.dll";
Вот так:OleLoadPictureFile("my.jpg", IDispatch(PicD));
Но дельфи при этом приписывает еще 40Кб к коду, молча подключая модуль Variants и SysUtils.
Варианты я больше нигде не использую - есть ли способ обойтись без вариантов в данном случае?
← →
Dmitry S (2007-10-11 05:45) [1]Вопрос решен. Прошу прощения за поспешный вопрос.
Кому интересно:
Меняем в определении OleValiant на TVariantArg (из модуля ActiveX):function OleLoadPictureFile(varFileName: TVariantArg;
var lpdispPicture: IDispatch): HResult; stdcall;
external "oleaut32.dll";
и используем следующим образом:var ov:TVariantArg;
begin
FillChar(ov, sizeof(ov),0);
ov.vt := VT_BSTR;
ov.bstrVal := "my.jpg";
writeln(sizeof(ov));
OleLoadPictureFile(ov, ...);
end;
← →
Dmitry S (2007-10-11 05:46) [2]writeln - лишний :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c