Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
ВнизAutoObject Найти похожие ветки
← →
АНАТОЛИЙ (2001-12-25 16:49) [20]ПРЕДВАРИТЕЛЬНО СОЗДАЙ PROJECT.TLB(И ТОЛЬКО)
File-New-ActiveX-TypeLibrary
В примере один интерфасе IBOBRIK и у него 3 метода(TEST,TEST1,TEST2)
uses PROJECT_TLB;
TBobrik =class(TAutoIntfObject,IBOBRIK)
Constructor Create;
procedure TEST;safecall;
procedure TEST1;safecall;
procedure TEST2(Param1: OleVariant); safecall;
end;
var
I_B : IBOBRIK;
Constructor TBobrik.Create;
var Buffer: array[0..261] of char;
MName : string;
I_TYPE_LIB : ITypeLib;
begin
SetString(MName,Buffer,Windows.GetModuleFileName(HInstance,Buffer,SizeOf(Buffer)));
OleCheck(LoadTypeLib(PWideChar(WideString(MName)),I_TYPE_LIB));
Inherited Create(I_Type_Lib,IBOBRIK);
end;
procedure TBobrik.TEST;
Begin
ShowMessage("11111");
end;
procedure TBobrik.TEST1;
Begin
ShowMessage("22222222");
end;
procedure TBOBRIK.TEST2(Param1: OleVariant); safecall;
begin
ShowMessage(Param1);
End;
procedure TForm1.Button1Click(Sender: TObject);
begin
// ПОЛУЧАЮ ССЫЛКУ НА ИНТЕРФЕЙС
I_B:=TBOBRIK.Create;
// А ЭТО РАБОТА СО СКРИПТАМИ И УЖЕ ДРУГАЯ ИСТОРИЯ
ScriptEngine.AddGlobalObject("x",IUNKNOWN(I_B));
ScriptEngine.Open;
ScriptEngine.ParseScript("x.TEST");
ScriptEngine.ParseScript("call x.Test2("ПРИВЕТ СКРИПТ")");
ScriptEngine.Close;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c