Units
Class Hierarchy
Classes, Interfaces and Objects
Types
Variables
Constants
Functions and Procedures
Identifiers

Unit ifps3

Description

Execute part of the script engine

The execute part of the script engine

Classes, Interfaces and Objects

NameDescription
Class EIFPS3Exception  
Class TIFExternalProcRec  
Class TIFInternalProcRec  
Class TIFProcRec  
Class TIFPSAttributeType Attribute type info
Class TIFPSExec  
Class TIFPSRuntimeAttribute Runtime attributes
Class TIFPSRuntimeAttributes List of attributes
Class TIFPSRuntimeClass  
Class TIFPSRuntimeClassImporter  
Class TIFPSStack stack type to store runtime information in
Class TIFTypeRec TIFTypeRec contains type info
Class TIFTypeRec_Array dynamic array type typeinfo
Class TIFTypeRec_Class Class type typeinfo
Class TIFTypeRec_Interface Interface type typeinfo
Class TIFTypeRec_Record record type typeinfo
Class TIFTypeRec_Set Set type typeinfo
Class TIFTypeRec_StaticArray Static array type typeinfo

Functions and Procedures

Overview

function CreateHeapVariant(aType: TIFTypeRec): PIFPSVariant;
procedure DestroyHeapVariant(v: PIFPSVariant);
procedure DisposePIFPSvariantIFC(aVar: PIFPSVariantIFC);
procedure DisposePIFPSVariantIFCList(list: TIfList);
procedure FreePIFVariantList(l: TIFList);
function GetIFPSArrayLength(Arr: PIFVariant): Longint;
function GetMethodInfoRec(SE: TIFPSExec; ProcNo: Cardinal): Pointer;
function IDispatchInvoke(Self: IDispatch; PropertySet: Boolean; const Name: WideString; const Par: array of Variant): Variant;
function IFPSDynArrayGetLength(arr: Pointer; aType: TIFTypeRec): Longint;
procedure IFPSDynArraySetLength(var arr: Pointer; aType: TIfTypeRec; NewLength: Longint);
function IFPSGetArrayField(const avar: TIFPSVariantIFC; Fieldno: Longint): TIFPSVariantIFC;
function IFPSGetCurrency(Src: Pointer; aType: TIFTypeRec): Currency;
function IFPSGetInt(Src: Pointer; aType: TIFTypeRec): Longint;
function IFPSGetInt64(Src: Pointer; aType: TIFTypeRec): Int64;
function IFPSGetObject(Src: Pointer; aType: TIFTypeRec): TObject;
function IFPSGetReal(Src: Pointer; aType: TIFTypeRec): Extended;
function IFPSGetRecField(const avar: TIFPSVariantIFC; Fieldno: Longint): TIFPSVariantIFC;
function IFPSGetString(Src: Pointer; aType: TIFTypeRec): String;
function IFPSGetUInt(Src: Pointer; aType: TIFTypeRec): Cardinal;
function IFPSGetWideString(Src: Pointer; aType: TIFTypeRec): WideString;
procedure IFPSSetCurrency(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: Currency);
procedure IFPSSetInt(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: Longint);
procedure IFPSSetInt64(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: Int64);
procedure IFPSSetObject(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; Const val: TObject);
procedure IFPSSetReal(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: Extended);
procedure IFPSSetString(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: String);
procedure IFPSSetUInt(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: Cardinal);
procedure IFPSSetWideString(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: WideString);
function IFPSVariantToString(const p: TIFPSVariantIFC; const ClassProperties: string): string;
function MakeString(const s: string): string;
function MakeWString(const s: widestring): string;
function MkMethod(FSE: TIFPSExec; No: Cardinal): TMethod;
procedure MyAllMethodsHandler;
function NewPIFPSVariantIFC(avar: PIFPSvariant; varparam: boolean): PIFPSVariantIFC;
function NewTIFPSVariantIFC(avar: PIFPSvariant; varparam: boolean): TIFPSVariantIFC;
function NewTIFPSVariantRecordIFC(avar: PIFPSVariant; Fieldno: Longint): TIFPSVariantIFC;
function PIFVariantToVariant(Src: PIFVariant; var Dest: Variant): Boolean;
procedure RegisterClassLibraryRuntime(SE: TIFPSExec; Importer: TIFPSRuntimeClassImporter);
procedure SetIFPSArrayLength(Arr: PIFVariant; NewLength: Longint);
procedure SetVariantToClass(V: PIFVariant; Cl: TObject);
procedure SetVariantToInterface(V: PIFVariant; Cl: IUnknown);
function TIFErrorToString(x: TIFError; const Param: string): string;
function VariantToPIFVariant(Exec: TIFPSExec; const Src: Variant; Dest: PIFVariant): Boolean;
function VGetCurrency(const Src: PIFVariant): Currency;
function VGetInt(const Src: PIFVariant): Longint;
function VGetInt64(const Src: PIFVariant): Int64;
function VGetReal(const Src: PIFVariant): Extended;
function VGetString(const Src: PIFVariant): String;
function VGetUInt(const Src: PIFVariant): Cardinal;
function VGetWideString(const Src: PIFVariant): WideString;
function VNGetCurrency(const Src: TIFPSVariantIFC): Currency;
function VNGetInt(const Src: TIFPSVariantIFC): Longint;
function VNGetInt64(const Src: TIFPSVariantIFC): Int64;
function VNGetReal(const Src: TIFPSVariantIFC): Extended;
function VNGetString(const Src: TIFPSVariantIFC): String;
function VNGetUInt(const Src: TIFPSVariantIFC): Cardinal;
function VNGetWideString(const Src: TIFPSVariantIFC): WideString;
procedure VNSetCurrency(const Src: TIFPSVariantIFC; const Val: Currency);
procedure VNSetInt(const Src: TIFPSVariantIFC; const Val: Longint);
procedure VNSetInt64(const Src: TIFPSVariantIFC; const Val: Int64);
procedure VNSetPointerTo(const Src: TIFPSVariantIFC; Data: Pointer; aType: TIFTypeRec);
procedure VNSetReal(const Src: TIFPSVariantIFC; const Val: Extended);
procedure VNSetString(const Src: TIFPSVariantIFC; const Val: String);
procedure VNSetUInt(const Src: TIFPSVariantIFC; const Val: Cardinal);
procedure VNSetWideString(const Src: TIFPSVariantIFC; const Val: WideString);
procedure VSetCurrency(const Src: PIFVariant; const Val: Currency);
procedure VSetInt(const Src: PIFVariant; const Val: Longint);
procedure VSetInt64(const Src: PIFVariant; const Val: Int64);
procedure VSetPointerTo(const Src: PIFVariant; Data: Pointer; aType: TIFTypeRec);
procedure VSetReal(const Src: PIFVariant; const Val: Extended);
procedure VSetString(const Src: PIFVariant; const Val: String);
procedure VSetUInt(const Src: PIFVariant; const Val: Cardinal);
procedure VSetWideString(const Src: PIFVariant; const Val: WideString);

Description

function CreateHeapVariant(aType: TIFTypeRec): PIFPSVariant;

 

procedure DestroyHeapVariant(v: PIFPSVariant);

 

procedure DisposePIFPSvariantIFC(aVar: PIFPSVariantIFC);

Dispose a PIFPSVariantIFC

procedure DisposePIFPSVariantIFCList(list: TIfList);

Dispose a list of PIFPSVariantIFC

procedure FreePIFVariantList(l: TIFList);

 

function GetIFPSArrayLength(Arr: PIFVariant): Longint;

 

function GetMethodInfoRec(SE: TIFPSExec; ProcNo: Cardinal): Pointer;

Internal Function: Returns the Data pointer of a TMethod for a ProcNo

function IDispatchInvoke(Self: IDispatch; PropertySet: Boolean; const Name: WideString; const Par: array of Variant): Variant;

 

function IFPSDynArrayGetLength(arr: Pointer; aType: TIFTypeRec): Longint;

 

procedure IFPSDynArraySetLength(var arr: Pointer; aType: TIfTypeRec; NewLength: Longint);

 

function IFPSGetArrayField(const avar: TIFPSVariantIFC; Fieldno: Longint): TIFPSVariantIFC;

 

function IFPSGetCurrency(Src: Pointer; aType: TIFTypeRec): Currency;

 

function IFPSGetInt(Src: Pointer; aType: TIFTypeRec): Longint;

 

function IFPSGetInt64(Src: Pointer; aType: TIFTypeRec): Int64;

 

function IFPSGetObject(Src: Pointer; aType: TIFTypeRec): TObject;

 

function IFPSGetReal(Src: Pointer; aType: TIFTypeRec): Extended;

 

function IFPSGetRecField(const avar: TIFPSVariantIFC; Fieldno: Longint): TIFPSVariantIFC;

 

function IFPSGetString(Src: Pointer; aType: TIFTypeRec): String;

 

function IFPSGetUInt(Src: Pointer; aType: TIFTypeRec): Cardinal;

 

function IFPSGetWideString(Src: Pointer; aType: TIFTypeRec): WideString;

 

procedure IFPSSetCurrency(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: Currency);

 

procedure IFPSSetInt(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: Longint);

 

procedure IFPSSetInt64(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: Int64);

 

procedure IFPSSetObject(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; Const val: TObject);

 

procedure IFPSSetReal(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: Extended);

 

procedure IFPSSetString(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: String);

 

procedure IFPSSetUInt(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: Cardinal);

 

procedure IFPSSetWideString(Src: Pointer; aType: TIFTypeRec; var Ok: Boolean; const Val: WideString);

 

function IFPSVariantToString(const p: TIFPSVariantIFC; const ClassProperties: string): string;

 

function MakeString(const s: string): string;

 

function MakeWString(const s: widestring): string;

 

function MkMethod(FSE: TIFPSExec; No: Cardinal): TMethod;

Make a method pointer of a script engine + function number, not that this doesn't work unless the proc was exported with ExportMode etExportDecl

procedure MyAllMethodsHandler;

Internal function: Script Event Handler
Supported Parameter Types:
u8,s8,u16,s16,u32,s32,s64,single,double,extended,class,variant,string,char
Supported Result Types:
u8,s8,u16,s16,u32,s32,string,variant

function NewPIFPSVariantIFC(avar: PIFPSvariant; varparam: boolean): PIFPSVariantIFC;

Create a new PIFPSVariantIFC

function NewTIFPSVariantIFC(avar: PIFPSvariant; varparam: boolean): TIFPSVariantIFC;

Create a new TIFPSVariantIFC

function NewTIFPSVariantRecordIFC(avar: PIFPSVariant; Fieldno: Longint): TIFPSVariantIFC;

 

function PIFVariantToVariant(Src: PIFVariant; var Dest: Variant): Boolean;

Convert a PIFvariant to a real variant

procedure RegisterClassLibraryRuntime(SE: TIFPSExec; Importer: TIFPSRuntimeClassImporter);

Register the classes at runtime

procedure SetIFPSArrayLength(Arr: PIFVariant; NewLength: Longint);

 

procedure SetVariantToClass(V: PIFVariant; Cl: TObject);

Set a runtime variant

procedure SetVariantToInterface(V: PIFVariant; Cl: IUnknown);

 

function TIFErrorToString(x: TIFError; const Param: string): string;

Convert an error to a string

function VariantToPIFVariant(Exec: TIFPSExec; const Src: Variant; Dest: PIFVariant): Boolean;

 

function VGetCurrency(const Src: PIFVariant): Currency;

 

function VGetInt(const Src: PIFVariant): Longint;

 

function VGetInt64(const Src: PIFVariant): Int64;

 

function VGetReal(const Src: PIFVariant): Extended;

 

function VGetString(const Src: PIFVariant): String;

 

function VGetUInt(const Src: PIFVariant): Cardinal;

 

function VGetWideString(const Src: PIFVariant): WideString;

 

function VNGetCurrency(const Src: TIFPSVariantIFC): Currency;

 

function VNGetInt(const Src: TIFPSVariantIFC): Longint;

 

function VNGetInt64(const Src: TIFPSVariantIFC): Int64;

 

function VNGetReal(const Src: TIFPSVariantIFC): Extended;

 

function VNGetString(const Src: TIFPSVariantIFC): String;

 

function VNGetUInt(const Src: TIFPSVariantIFC): Cardinal;

 

function VNGetWideString(const Src: TIFPSVariantIFC): WideString;

 

procedure VNSetCurrency(const Src: TIFPSVariantIFC; const Val: Currency);

 

procedure VNSetInt(const Src: TIFPSVariantIFC; const Val: Longint);

 

procedure VNSetInt64(const Src: TIFPSVariantIFC; const Val: Int64);

 

procedure VNSetPointerTo(const Src: TIFPSVariantIFC; Data: Pointer; aType: TIFTypeRec);

 

procedure VNSetReal(const Src: TIFPSVariantIFC; const Val: Extended);

 

procedure VNSetString(const Src: TIFPSVariantIFC; const Val: String);

 

procedure VNSetUInt(const Src: TIFPSVariantIFC; const Val: Cardinal);

 

procedure VNSetWideString(const Src: TIFPSVariantIFC; const Val: WideString);

 

procedure VSetCurrency(const Src: PIFVariant; const Val: Currency);

 

procedure VSetInt(const Src: PIFVariant; const Val: Longint);

 

procedure VSetInt64(const Src: PIFVariant; const Val: Int64);

 

procedure VSetPointerTo(const Src: PIFVariant; Data: Pointer; aType: TIFTypeRec);

 

procedure VSetReal(const Src: PIFVariant; const Val: Extended);

 

procedure VSetString(const Src: PIFVariant; const Val: String);

 

procedure VSetUInt(const Src: PIFVariant; const Val: Cardinal);

 

procedure VSetWideString(const Src: PIFVariant; const Val: WideString);

 

Types

NameDescription
PBTReturnAddress TBTReturnAddress PBTReturnAddress is a pointer to an TBTReturnAddress record
PByteArray Pointer to array of bytes
PClassItem Pointer to a TClassItem
PDWordArray Pointer to array of words
PIFProcRec  
PIFPSResource Pointer to a resource info record
PIFPSVariant Pointer to a variant
PIFPSVariantAChar Pointer to an ansichar variant
PIFPSVariantAString Pointer to an ansistring variant
PIFPSVariantClass Pointer to a class variant
PIFPSVariantCurrency Pointer to a currency variant
PIFPSVariantData Pointer to an abstract variant
PIFPSVariantDouble Pointer to a double variant
PIFPSVariantDynamicArray Pointer to a dynamic array variant
PIFPSVariantExtended Pointer to an extended variant
PIFPSVariantIFC Pointer to a temporary variant info record
PIFPSVariantInterface Pointer to an Interface variant
PIFPSVariantPointer Pointer to a pointer variant
PIFPSVariantRecord Pointer to a record variant
PIFPSVariantReturnAddress Pointer to a return address variant
PIFPSVariantS16 Pointer to an S16 variant
PIFPSVariantS32 Pointer to an S32 variant
PIFPSVariantS64 Pointer to an S64 variant
PIFPSVariantS8 Pointer to an S8 variant
PIFPSVariantSet Pointer to an Set variant
PIFPSVariantSingle Pointer to an single variant
PIFPSVariantStaticArray Pointer to a static array variant
PIFPSVariantU16 Pointer to an U16 variant
PIFPSVariantU32 Pointer to an U32 variant
PIFPSVariantU8 Pointer to an U8 variant
PIFPSVariantVariant Pointer to a variant variant
PIFPSVariantWChar Pointer to an widechar variant
PIFPSVariantWString Pointer to a widestring variant
PIFTypeRec  
PIFVariant Pointer to a variant
PProcRec  
TBTReturnAddress TBTReturnAddress is a record used to store return information
TByteArray Array of bytes
TClassItem TClass item contains runtime class type info
TDWordArray Array of dwords
TIFError TIFError contains all possible errors
TIFFreeProc PProcRec FreeProc is called when a PProcRec is freed
TIFProc TIFPSExec PIFProcRec TIfList TIFProc is is the procedure definition of all external functions
TIFPSAttributeUseProc Use proc for an attribute
TIFPSCallingConvention Alias to TIFPSCallingConvention
TIFPSOnException See TIFPSExec.OnException
TIFPSOnLineEvent See TIFPSExec.OnRunLine
TIFPSOnSpecialProcImport See TIFPSExec.AddSpecialProcImport
TIFPSResource A resource in IFPS3 is stored as a pointer to the proc and a tag (p)
TIFPSResourceFreeProc  
TIFPSResultData Free it, the actual thing you need to free is at Pointer(IPointer(p)-4)
TIFPSVarFreeType Freetype, vtTempVAr means the var should be freed as a tempvar
TIFPSVariant variant type
TIFPSVariantAChar ansichar variant
TIFPSVariantAString ansistring variant
TIFPSVariantClass class variant
TIFPSVariantCurrency Currency variant
TIFPSVariantData Abstract variant
TIFPSVariantDouble double variant
TIFPSVariantDynamicArray dynamic array variant
TIFPSVariantExtended extended variant
TIFPSVariantIFC Temporary variant into record
TIFPSVariantInterface Interface variant
TIFPSVariantPointer pointer variant
TIFPSVariantRecord record variant
TIFPSVariantReturnAddress return address variant
TIFPSVariantS16 S16 variant
TIFPSVariantS32 S32 variant
TIFPSVariantS64 S64 variant
TIFPSVariantS8 U8 variant
TIFPSVariantSet Set variant
TIFPSVariantSingle single variant
TIFPSVariantStaticArray static arrayvariant
TIFPSVariantU16 U16 variant
TIFPSVariantU32 U32 variant
TIFPSVariantU8 U8 variant
TIFPSVariantVariant variant variant
TIFPSVariantWChar Widechar variant
TIFPSVariantWString Widestring variant
TIFStatus The current status of the script
TProcRec TProcrec is used to store an external function that could be used by the script executer

Constants

NameDescription
cdCdecl Alias to ifps3utl.cdCdecl
cdPascal Alias to ifps3utl.cdPascal
cdRegister Alias to ifps3utl.cdRegister
cdStdCall Alias to ifps3utl.cdStdCall
ENoError  
InvalidVal Invalid results

Author

Carlo Kok <ck@carlo-kok.com>