library game; uses control; //////////////////////////////////////////////////////////////////////////////// function Version : Integer; stdcall; begin Result:=1; end; //////////////////////////////////////////////////////////////////////////////// function Open : Integer; stdcall; begin Result:=Integer(TControl.Create); end; //////////////////////////////////////////////////////////////////////////////// procedure Close(Hnd : Integer); stdcall; begin TControl(Hnd).Free; end; //////////////////////////////////////////////////////////////////////////////// function Query(Hnd : Integer) : Integer; stdcall; begin Result:=TControl(Hnd).Query; end; //////////////////////////////////////////////////////////////////////////////// function Execute(Hnd : Integer) : Integer; stdcall; begin Result:=TControl(Hnd).Execute; end; //////////////////////////////////////////////////////////////////////////////// function GetTop(Hnd : Integer) : Integer; stdcall; begin Result:=TControl(Hnd).Stack.GetTop; end; //////////////////////////////////////////////////////////////////////////////// function GetType(Hnd,Index : Integer) : Integer; stdcall; begin Result:=TControl(Hnd).Stack.GetType(Index); end; //////////////////////////////////////////////////////////////////////////////// procedure Insert(Hnd,Index : Integer); stdcall; begin TControl(Hnd).Stack.Insert(Index); end; //////////////////////////////////////////////////////////////////////////////// procedure PushNil(Hnd : Integer); stdcall; begin TControl(Hnd).Stack.PushNil; end; //////////////////////////////////////////////////////////////////////////////// procedure PushBoolean(Hnd : Integer; Value : LongBool); stdcall; begin TControl(Hnd).Stack.PushBoolean(Value); end; //////////////////////////////////////////////////////////////////////////////// procedure PushInteger(Hnd,Value : Integer); stdcall; begin TControl(Hnd).Stack.PushInteger(Value); end; //////////////////////////////////////////////////////////////////////////////// procedure PushDouble(Hnd : Integer; Value : Double); stdcall; begin TControl(Hnd).Stack.PushDouble(Value); end; //////////////////////////////////////////////////////////////////////////////// procedure PushStrRef(Hnd : Integer; Value : PChar); stdcall; begin TControl(Hnd).Stack.PushStrRef(Value); end; //////////////////////////////////////////////////////////////////////////////// procedure PushStrVal(Hnd : Integer; Value : PChar); stdcall; begin TControl(Hnd).Stack.PushStrVal(Value); end; //////////////////////////////////////////////////////////////////////////////// procedure PushValue(Hnd,Index : Integer); stdcall; begin TControl(Hnd).Stack.PushValue(Index); end; //////////////////////////////////////////////////////////////////////////////// function GetBoolean(Hnd,Index : Integer) : LongBool; stdcall; begin Result:=TControl(Hnd).Stack.GetBoolean(Index); end; //////////////////////////////////////////////////////////////////////////////// function GetInteger(Hnd,Index : Integer) : Integer; stdcall; begin Result:=TControl(Hnd).Stack.GetInteger(Index); end; //////////////////////////////////////////////////////////////////////////////// function GetDouble(Hnd,Index : Integer) : Double; stdcall; begin Result:=TControl(Hnd).Stack.GetDouble(Index); end; //////////////////////////////////////////////////////////////////////////////// function GetString(Hnd,Index : Integer) : PChar; stdcall; begin Result:=TControl(Hnd).Stack.GetString(Index); end; //////////////////////////////////////////////////////////////////////////////// procedure Remove(Hnd,Index : Integer); stdcall; begin TControl(Hnd).Stack.Remove(Index); end; //////////////////////////////////////////////////////////////////////////////// procedure SetTop(Hnd,Index : Integer); stdcall; begin TControl(Hnd).Stack.SetTop(Index); end; //////////////////////////////////////////////////////////////////////////////// procedure Mark(Hnd : Integer); stdcall; begin TControl(Hnd).Stack.Mark; end; //////////////////////////////////////////////////////////////////////////////// procedure Clean(Hnd : Integer); stdcall; begin TControl(Hnd).Stack.Clean; end; //////////////////////////////////////////////////////////////////////////////// exports Version, Version name '_Version@0', Open, Open name '_Open@0', Close, Close name '_Close@4', Query, Query name '_Query@4', Execute, Execute name '_Execute@4', GetTop, GetTop name '_GetTop@4', GetType, GetType name '_GetType@8', Insert, Insert name '_Insert@8', PushNil, PushNil name '_PushNil@4', PushBoolean, PushBoolean name '_PushBoolean@8', PushInteger, PushInteger name '_PushInteger@8', PushDouble, PushDouble name '_PushDouble@12', PushStrRef, PushStrRef name '_PushStrRef@8', PushStrVal, PushStrVal name '_PushStrVal@8', PushValue, PushValue name '_PushValue@8', GetBoolean, GetBoolean name '_GetBoolean@8', GetInteger, GetInteger name '_GetInteger@8', GetDouble, GetDouble name '_GetDouble@8', GetString, GetString name '_GetString@8', Remove, Remove name '_Remove@8', SetTop, SetTop name '_SetTop@8', Mark, Mark name '_Mark@4', Clean, Clean name '_Clean@4'; //////////////////////////////////////////////////////////////////////////////// begin IsMultiThread:=True; //IMPORTANT: Activates multi-threading support for Delphi stack end.