![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OleVariant без автоматического подключения Variants [D7]
Dmitry S © (2007-10-11 05:33:00)Необходимо передать параметр в функцию
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:46:00) [1]writeln - лишний :)
Dmitry S (2007-10-11 05:45:00) [2]Вопрос решен. Прошу прощения за поспешный вопрос.
Кому интересно:
Меняем в определении 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;