home *** CD-ROM | disk | FTP | other *** search
-
- {*******************************************************}
- { }
- { Borland Delphi Runtime Library }
- { System Unit }
- { }
- { Copyright (C) 1988,99 Inprise Corporation }
- { }
- {*******************************************************}
-
- unit System; { Predefined constants, types, procedures, }
- { and functions (such as True, Integer, or }
- { Writeln) do not have actual declarations.}
- { Instead they are built into the compiler }
- { and are treated as if they were declared }
- { at the beginning of the System unit. }
-
- {$H+,I-,S-}
-
- { L- should never be specified.
-
- The IDE needs to find debug hook (through the C++
- compiler sometimes) for integrated debugging to
- function properly.
-
- ILINK will generate debug info for DebugHook if
- the object module has not been compiled with debug info.
-
- ILINK will not generate debug info for DebugHook if
- the object module has been compiled with debug info.
-
- Thus, the Pascal compiler must be responsible for
- generating the debug information for that symbol
- when a debug-enabled object file is produced.
- }
-
- interface
-
- const
-
- { Variant type codes (wtypes.h) }
-
- varEmpty = $0000; { vt_empty }
- varNull = $0001; { vt_null }
- varSmallint = $0002; { vt_i2 }
- varInteger = $0003; { vt_i4 }
- varSingle = $0004; { vt_r4 }
- varDouble = $0005; { vt_r8 }
- varCurrency = $0006; { vt_cy }
- varDate = $0007; { vt_date }
- varOleStr = $0008; { vt_bstr }
- varDispatch = $0009; { vt_dispatch }
- varError = $000A; { vt_error }
- varBoolean = $000B; { vt_bool }
- varVariant = $000C; { vt_variant }
- varUnknown = $000D; { vt_unknown }
- { vt_decimal $e }
- { undefined $f }
- { vt_i1 $10 }
- varByte = $0011; { vt_ui1 }
- { vt_ui2 $12 }
- { vt_ui4 $13 }
- { vt_i8 $14 }
- { if adding new items, update varLast, BaseTypeMap and OpTypeMap }
- varStrArg = $0048; { vt_clsid }
- varString = $0100; { Pascal string; not OLE compatible }
- varAny = $0101;
- varTypeMask = $0FFF;
- varArray = $2000;
- varByRef = $4000;
-
- { TVarRec.VType values }
-
- vtInteger = 0;
- vtBoolean = 1;
- vtChar = 2;
- vtExtended = 3;
- vtString = 4;
- vtPointer = 5;
- vtPChar = 6;
- vtObject = 7;
- vtClass = 8;
- vtWideChar = 9;
- vtPWideChar = 10;
- vtAnsiString = 11;
- vtCurrency = 12;
- vtVariant = 13;
- vtInterface = 14;
- vtWideString = 15;
- vtInt64 = 16;
-
- { Virtual method table entries }
-
- vmtSelfPtr = -76;
- vmtIntfTable = -72;
- vmtAutoTable = -68;
- vmtInitTable = -64;
- vmtTypeInfo = -60;
- vmtFieldTable = -56;
- vmtMethodTable = -52;
- vmtDynamicTable = -48;
- vmtClassName = -44;
- vmtInstanceSize = -40;
- vmtParent = -36;
- vmtSafeCallException = -32;
- vmtAfterConstruction = -28;
- vmtBeforeDestruction = -24;
- vmtDispatch = -20;
- vmtDefaultHandler = -16;
- vmtNewInstance = -12;
- vmtFreeInstance = -8;
- vmtDestroy = -4;
-
- vmtQueryInterface = 0;
- vmtAddRef = 4;
- vmtRelease = 8;
- vmtCreateObject = 12;
-
- type
-
- TObject = class;
-
- TClass = class of TObject;
-
- {$EXTERNALSYM HRESULT}
- HRESULT = type Longint; { from WTYPES.H }
-
- {$EXTERNALSYM IUnknown}
- {$EXTERNALSYM IDispatch}
-
- PGUID = ^TGUID;
- TGUID = packed record
- D1: LongWord;
- D2: Word;
- D3: Word;
- D4: array[0..7] of Byte;
- end;
-
- PInterfaceEntry = ^TInterfaceEntry;
- TInterfaceEntry = packed record
- IID: TGUID;
- VTable: Pointer;
- IOffset: Integer;
- ImplGetter: Integer;
- end;
-
- PInterfaceTable = ^TInterfaceTable;
- TInterfaceTable = packed record
- EntryCount: Integer;
- Entries: array[0..9999] of TInterfaceEntry;
- end;
-
- TObject = class
- constructor Create;
- procedure Free;
- class function InitInstance(Instance: Pointer): TObject;
- procedure CleanupInstance;
- function ClassType: TClass;
- class function ClassName: ShortString;
- class function ClassNameIs(const Name: string): Boolean;
- class function ClassParent: TClass;
- class function ClassInfo: Pointer;
- class function InstanceSize: Longint;
- class function InheritsFrom(AClass: TClass): Boolean;
- class function MethodAddress(const Name: ShortString): Pointer;
- class function MethodName(Address: Pointer): ShortString;
- function FieldAddress(const Name: ShortString): Pointer;
- function GetInterface(const IID: TGUID; out Obj): Boolean;
- class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry;
- class function GetInterfaceTable: PInterfaceTable;
- function SafeCallException(ExceptObject: TObject;
- ExceptAddr: Pointer): HResult; virtual;
- procedure AfterConstruction; virtual;
- procedure BeforeDestruction; virtual;
- procedure Dispatch(var Message); virtual;
- procedure DefaultHandler(var Message); virtual;
- class function NewInstance: TObject; virtual;
- procedure FreeInstance; virtual;
- destructor Destroy; virtual;
- end;
-
- IUnknown = interface
- ['{00000000-0000-0000-C000-000000000046}']
- function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
- function _AddRef: Integer; stdcall;
- function _Release: Integer; stdcall;
- end;
-
- IDispatch = interface(IUnknown)
- ['{00020400-0000-0000-C000-000000000046}']
- function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
- function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
- function GetIDsOfNames(const IID: TGUID; Names: Pointer;
- NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
- function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
- Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
- end;
-
- TInterfacedObject = class(TObject, IUnknown)
- protected
- FRefCount: Integer;
- function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
- function _AddRef: Integer; stdcall;
- function _Release: Integer; stdcall;
- public
- procedure AfterConstruction; override;
- procedure BeforeDestruction; override;
- class function NewInstance: TObject; override;
- property RefCount: Integer;
- end;
-
- TInterfacedClass = class of TInterfacedObject;
-
- TVarArrayBound = packed record
- ElementCount: Integer;
- LowBound: Integer;
- end;
-
- PVarArray = ^TVarArray;
- TVarArray = packed record
- DimCount: Word;
- Flags: Word;
- ElementSize: Integer;
- LockCount: Integer;
- Data: Pointer;
- Bounds: array[0..255] of TVarArrayBound;
- end;
-
- PVarData = ^TVarData;
- TVarData = packed record
- VType: Word;
- Reserved1, Reserved2, Reserved3: Word;
- case Integer of
- varSmallint: (VSmallint: Smallint);
- varInteger: (VInteger: Integer);
- varSingle: (VSingle: Single);
- varDouble: (VDouble: Double);
- varCurrency: (VCurrency: Currency);
- varDate: (VDate: Double);
- varOleStr: (VOleStr: PWideChar);
- varDispatch: (VDispatch: Pointer);
- varError: (VError: LongWord);
- varBoolean: (VBoolean: WordBool);
- varUnknown: (VUnknown: Pointer);
- varByte: (VByte: Byte);
- varString: (VString: Pointer);
- varAny: (VAny: Pointer);
- varArray: (VArray: PVarArray);
- varByRef: (VPointer: Pointer);
- end;
-
- PShortString = ^ShortString;
- PAnsiString = ^AnsiString;
- PWideString = ^WideString;
- PString = PAnsiString;
-
- PExtended = ^Extended;
- PCurrency = ^Currency;
- PVariant = ^Variant;
- POleVariant = ^OleVariant;
- PInt64 = ^Int64;
-
- TDateTime = type Double;
- PDateTime = ^TDateTime;
-
- PVarRec = ^TVarRec;
- TVarRec = record { do not pack this record; it is compiler-generated }
- case Byte of
- vtInteger: (VInteger: Integer; VType: Byte);
- vtBoolean: (VBoolean: Boolean);
- vtChar: (VChar: Char);
- vtExtended: (VExtended: PExtended);
- vtString: (VString: PShortString);
- vtPointer: (VPointer: Pointer);
- vtPChar: (VPChar: PChar);
- vtObject: (VObject: TObject);
- vtClass: (VClass: TClass);
- vtWideChar: (VWideChar: WideChar);
- vtPWideChar: (VPWideChar: PWideChar);
- vtAnsiString: (VAnsiString: Pointer);
- vtCurrency: (VCurrency: PCurrency);
- vtVariant: (VVariant: PVariant);
- vtInterface: (VInterface: Pointer);
- vtWideString: (VWideString: Pointer);
- vtInt64: (VInt64: PInt64);
- end;
-
- PMemoryManager = ^TMemoryManager;
- TMemoryManager = record
- GetMem: function(Size: Integer): Pointer;
- FreeMem: function(P: Pointer): Integer;
- ReallocMem: function(P: Pointer; Size: Integer): Pointer;
- end;
-
- THeapStatus = record
- TotalAddrSpace: Cardinal;
- TotalUncommitted: Cardinal;
- TotalCommitted: Cardinal;
- TotalAllocated: Cardinal;
- TotalFree: Cardinal;
- FreeSmall: Cardinal;
- FreeBig: Cardinal;
- Unused: Cardinal;
- Overhead: Cardinal;
- HeapErrorCode: Cardinal;
- end;
-
- PackageUnitEntry = packed record
- Init, FInit : procedure;
- end;
-
- { Compiler generated table to be processed sequentially to init & finit all package units }
- { Init: 0..Max-1; Final: Last Initialized..0 }
- UnitEntryTable = array [0..9999999] of PackageUnitEntry;
- PUnitEntryTable = ^UnitEntryTable;
-
- PackageInfoTable = packed record
- UnitCount : Integer; { number of entries in UnitInfo array; always > 0 }
- UnitInfo : PUnitEntryTable;
- end;
-
- PackageInfo = ^PackageInfoTable;
-
- { Each package exports a '@GetPackageInfoTable' which can be used to retrieve }
- { the table which contains compiler generated information about the package DLL }
- GetPackageInfoTable = function : PackageInfo;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function RaiseList: Pointer; { Stack of current exception objects }
- function SetRaiseList(NewPtr: Pointer): Pointer; { returns previous value }
- procedure SetInOutRes(NewValue: Integer);
-
- var
-
- ExceptProc: Pointer; { Unhandled exception handler }
- ErrorProc: Pointer; { Error handler procedure }
- ExceptClsProc: Pointer; { Map an OS Exception to a Delphi class reference }
- ExceptObjProc: Pointer; { Map an OS Exception to a Delphi class instance }
- ExceptionClass: TClass; { Exception base class (must be Exception) }
- SafeCallErrorProc: Pointer; { Safecall error handler }
- AssertErrorProc: Pointer; { Assertion error handler }
- AbstractErrorProc: Pointer; { Abstract method error handler }
- HPrevInst: LongWord; { Handle of previous instance - HPrevInst cannot be tested for multiple instances in Win32}
- MainInstance: LongWord; { Handle of the main(.EXE) HInstance }
- MainThreadID: LongWord; { ThreadID of thread that module was initialized in }
- IsLibrary: Boolean; { True if module is a DLL }
- CmdShow: Integer; { CmdShow parameter for CreateWindow }
- CmdLine: PChar; { Command line pointer }
- InitProc: Pointer; { Last installed initialization procedure }
- ExitCode: Integer; { Program result }
- ExitProc: Pointer; { Last installed exit procedure }
- ErrorAddr: Pointer; { Address of run-time error }
- RandSeed: Longint; { Base for random number generator }
- IsConsole: Boolean; { True if compiled as console app }
- IsMultiThread: Boolean; { True if more than one thread }
- FileMode: Byte; { Standard mode for opening files }
- Test8086: Byte; { Will always be 2 (386 or later) }
- Test8087: Byte; { Will always be 3 (387 or later) }
- TestFDIV: Shortint; { -1: Flawed Pentium, 0: Not determined, 1: Ok }
- Input: Text; { Standard input }
- Output: Text; { Standard output }
-
- ClearAnyProc: Pointer; { Handler clearing a varAny }
- ChangeAnyProc: Pointer; { Handler to change any to variant }
- RefAnyProc: Pointer; { Handler to add a reference to an varAny }
-
- var
- Default8087CW: Word = $1332;{ Default 8087 control word. FPU control
- register is set to this value.
- CAUTION: Setting this to an invalid value
- could cause unpredictable behavior. }
-
- HeapAllocFlags: Word = 2; { Heap allocation flags, gmem_Moveable }
- DebugHook: Byte = 0; { 1 to notify debugger of non-Delphi exceptions
- >1 to notify debugger of exception unwinding }
- JITEnable: Byte = 0; { 1 to call UnhandledExceptionFilter if the exception
- is not a Pascal exception.
- >1 to call UnhandledExceptionFilter for all exceptions }
- NoErrMsg: Boolean = False; { True causes the base RTL to not display the message box
- when a run-time error occurs }
-
- var
- Unassigned: Variant; { Unassigned standard constant }
- Null: Variant; { Null standard constant }
- EmptyParam: OleVariant; { "Empty parameter" standard constant which can be
- passed as an optional parameter on a dual interface. }
-
- AllocMemCount: Integer; { Number of allocated memory blocks }
- AllocMemSize: Integer; { Total size of allocated memory blocks }
-
- { Memory manager support }
-
- procedure GetMemoryManager(var MemMgr: TMemoryManager);
- procedure SetMemoryManager(const MemMgr: TMemoryManager);
- function IsMemoryManagerSet: Boolean;
-
- function SysGetMem(Size: Integer): Pointer;
- function SysFreeMem(P: Pointer): Integer;
- function SysReallocMem(P: Pointer; Size: Integer): Pointer;
-
- function GetHeapStatus: THeapStatus;
-
- { Thread support }
- type
- TThreadFunc = function(Parameter: Pointer): Integer;
-
- function BeginThread(SecurityAttributes: Pointer; StackSize: LongWord;
- ThreadFunc: TThreadFunc; Parameter: Pointer; CreationFlags: LongWord;
- var ThreadId: LongWord): Integer;
-
- procedure EndThread(ExitCode: Integer);
-
- { Standard procedures and functions }
-
- procedure _ChDir(const S: string);
- procedure __Flush(var F: Text);
- procedure _LGetDir(D: Byte; var S: string);
- procedure _SGetDir(D: Byte; var S: ShortString);
- function IOResult: Integer;
- procedure _MkDir(const S: string);
- procedure Move(const Source; var Dest; Count: Integer);
- function ParamCount: Integer;
- function ParamStr(Index: Integer): string;
- procedure Randomize;
- procedure _RmDir(const S: string);
- function UpCase(Ch: Char): Char;
-
- { Control 8087 control word }
-
- procedure Set8087CW(NewCW: Word);
-
- { Wide character support procedures and functions }
-
- function WideCharToString(Source: PWideChar): string;
- function WideCharLenToString(Source: PWideChar; SourceLen: Integer): string;
- procedure WideCharToStrVar(Source: PWideChar; var Dest: string);
- procedure WideCharLenToStrVar(Source: PWideChar; SourceLen: Integer;
- var Dest: string);
- function StringToWideChar(const Source: string; Dest: PWideChar;
- DestSize: Integer): PWideChar;
-
- { OLE string support procedures and functions }
-
- function OleStrToString(Source: PWideChar): string;
- procedure OleStrToStrVar(Source: PWideChar; var Dest: string);
- function StringToOleStr(const Source: string): PWideChar;
-
- { Variant support procedures and functions }
-
- procedure _VarClear(var V : Variant);
- procedure _VarCopy(var Dest : Variant; const Source: Variant);
- procedure _VarCast(var Dest : Variant; const Source: Variant; VarType: Integer);
- procedure _VarCastOle(var Dest : Variant; const Source: Variant; VarType: Integer);
- procedure VarCopyNoInd(var Dest: Variant; const Source: Variant);
- function VarType(const V: Variant): Integer;
- function VarAsType(const V: Variant; VarType: Integer): Variant;
- function VarIsEmpty(const V: Variant): Boolean;
- function VarIsNull(const V: Variant): Boolean;
- function VarToStr(const V: Variant): string;
- function VarFromDateTime(DateTime: TDateTime): Variant;
- function VarToDateTime(const V: Variant): TDateTime;
-
- { Variant array support procedures and functions }
-
- function VarArrayCreate(const Bounds: array of Integer;
- VarType: Integer): Variant;
- function VarArrayOf(const Values: array of Variant): Variant;
- procedure _VarArrayRedim(var A : Variant; HighBound: Integer);
- function VarArrayDimCount(const A: Variant): Integer;
- function VarArrayLowBound(const A: Variant; Dim: Integer): Integer;
- function VarArrayHighBound(const A: Variant; Dim: Integer): Integer;
- function VarArrayLock(const A: Variant): Pointer;
- procedure VarArrayUnlock(const A: Variant);
- function VarArrayRef(const A: Variant): Variant;
- function VarIsArray(const A: Variant): Boolean;
-
- { Variant IDispatch call support }
-
- procedure _DispInvokeError;
-
- var
- VarDispProc: Pointer = @_DispInvokeError;
- DispCallByIDProc: Pointer = @_DispInvokeError;
-
- { Package/Module registration and unregistration }
-
- type
- PLibModule = ^TLibModule;
- TLibModule = record
- Next: PLibModule;
- Instance: LongWord;
- CodeInstance: LongWord;
- DataInstance: LongWord;
- ResInstance: LongWord;
- Reserved: Integer;
- end;
-
- TEnumModuleFunc = function (HInstance: Integer; Data: Pointer): Boolean;
- {$EXTERNALSYM TEnumModuleFunc}
- TEnumModuleFuncLW = function (HInstance: LongWord; Data: Pointer): Boolean;
- {$EXTERNALSYM TEnumModuleFuncLW}
- TModuleUnloadProc = procedure (HInstance: Integer);
- {$EXTERNALSYM TModuleUnloadProc}
- TModuleUnloadProcLW = procedure (HInstance: LongWord);
- {$EXTERNALSYM TModuleUnloadProcLW}
-
- PModuleUnloadRec = ^TModuleUnloadRec;
- TModuleUnloadRec = record
- Next: PModuleUnloadRec;
- Proc: TModuleUnloadProcLW;
- end;
-
- var
- LibModuleList: PLibModule = nil;
- ModuleUnloadList: PModuleUnloadRec = nil;
-
- procedure RegisterModule(LibModule: PLibModule);
- procedure UnregisterModule(LibModule: PLibModule);
- function FindHInstance(Address: Pointer): LongWord;
- function FindClassHInstance(ClassType: TClass): LongWord;
- function FindResourceHInstance(Instance: LongWord): LongWord;
- function LoadResourceModule(ModuleName: PChar): LongWord;
- procedure EnumModules(Func: TEnumModuleFunc; Data: Pointer); overload;
- procedure EnumResourceModules(Func: TEnumModuleFunc; Data: Pointer); overload;
- procedure EnumModules(Func: TEnumModuleFuncLW; Data: Pointer); overload;
- procedure EnumResourceModules(Func: TEnumModuleFuncLW; Data: Pointer); overload;
- procedure AddModuleUnloadProc(Proc: TModuleUnloadProc); overload;
- procedure RemoveModuleUnloadProc(Proc: TModuleUnloadProc); overload;
- procedure AddModuleUnloadProc(Proc: TModuleUnloadProcLW); overload;
- procedure RemoveModuleUnloadProc(Proc: TModuleUnloadProcLW); overload;
-
- { ResString support function/record }
-
- type
- PResStringRec = ^TResStringRec;
- TResStringRec = packed record
- Module: ^Longint;
- Identifier: Integer;
- end;
-
- function LoadResString(ResStringRec: PResStringRec): string;
-
- { Procedures and functions that need compiler magic }
-
- procedure _COS;
- procedure _EXP;
- procedure _INT;
- procedure _SIN;
- procedure _FRAC;
- procedure _ROUND;
- procedure _TRUNC;
-
- procedure _AbstractError;
- procedure _Assert(const Message, Filename: AnsiString; LineNumber: Integer);
- procedure _Append;
- procedure _Assign(var T: Text; S: ShortString);
- procedure _BlockRead;
- procedure _BlockWrite;
- procedure _Close;
- procedure _PStrCat;
- procedure _PStrNCat;
- procedure _PStrCpy;
- procedure _PStrNCpy;
- procedure _EofFile;
- procedure _EofText;
- procedure _Eoln;
- procedure _Erase;
- procedure _FilePos;
- procedure _FileSize;
- procedure _FillChar;
- procedure _FreeMem;
- procedure _GetMem;
- procedure _ReallocMem;
- procedure _Halt;
- procedure _Halt0;
- procedure _Mark;
- procedure _PStrCmp;
- procedure _AStrCmp;
- procedure _RandInt;
- procedure _RandExt;
- procedure _ReadRec;
- procedure _ReadChar;
- procedure _ReadLong;
- procedure _ReadString;
- procedure _ReadCString;
- procedure _ReadLString;
- procedure _ReadExt;
- procedure _ReadLn;
- procedure _Rename;
- procedure _Release;
- procedure _ResetText(var T: Text);
- procedure _ResetFile;
- procedure _RewritText(var T: Text);
- procedure _RewritFile;
- procedure _RunError;
- procedure _Run0Error;
- procedure _Seek;
- procedure _SeekEof;
- procedure _SeekEoln;
- procedure _SetTextBuf;
- procedure _StrLong;
- procedure _Str0Long;
- procedure _Truncate;
- procedure _ValLong;
- procedure _WriteRec;
- procedure _WriteChar;
- procedure _Write0Char;
- procedure _WriteBool;
- procedure _Write0Bool;
- procedure _WriteLong;
- procedure _Write0Long;
- procedure _WriteString;
- procedure _Write0String;
- procedure _WriteCString;
- procedure _Write0CString;
- procedure _WriteLString;
- procedure _Write0LString;
- function _WriteVariant(var T: Text; const V: Variant; Width: Integer): Pointer;
- function _Write0Variant(var T: Text; const V: Variant): Pointer;
- procedure _Write2Ext;
- procedure _Write1Ext;
- procedure _Write0Ext;
- procedure _WriteLn;
-
- procedure __CToPasStr;
- procedure __CLenToPasStr;
- procedure __ArrayToPasStr;
- procedure __PasToCStr;
-
- procedure __IOTest;
- procedure _Flush(var F: Text);
-
- procedure _SetElem;
- procedure _SetRange;
- procedure _SetEq;
- procedure _SetLe;
- procedure _SetIntersect;
- procedure _SetIntersect3; { BEG only }
- procedure _SetUnion;
- procedure _SetUnion3; { BEG only }
- procedure _SetSub;
- procedure _SetSub3; { BEG only }
- procedure _SetExpand;
-
- procedure _Str2Ext;
- procedure _Str0Ext;
- procedure _Str1Ext;
- procedure _ValExt;
- procedure _Pow10;
- procedure _Real2Ext;
- procedure _Ext2Real;
-
- procedure _ObjSetup;
- procedure _ObjCopy;
- procedure _Fail;
- procedure _BoundErr;
- procedure _IntOver;
- procedure _StartExe;
- procedure _StartLib;
- procedure _PackageLoad (const Table : PackageInfo);
- procedure _PackageUnload(const Table : PackageInfo);
- procedure _InitResStrings;
- procedure _InitResStringImports;
- procedure _InitImports;
- procedure _InitWideStrings;
-
- procedure _ClassCreate;
- procedure _ClassDestroy;
- procedure _AfterConstruction;
- procedure _BeforeDestruction;
- procedure _IsClass;
- procedure _AsClass;
-
- procedure _RaiseExcept;
- procedure _RaiseAgain;
- procedure _DoneExcept;
- procedure _TryFinallyExit;
-
- procedure _CallDynaInst;
- procedure _CallDynaClass;
- procedure _FindDynaInst;
- procedure _FindDynaClass;
-
- procedure _LStrClr(var S: AnsiString);
- procedure _LStrArrayClr{var str: AnsiString; cnt: longint};
- procedure _LStrAsg{var dest: AnsiString; source: AnsiString};
- procedure _LStrLAsg{var dest: AnsiString; source: AnsiString};
- procedure _LStrFromPCharLen(var Dest: AnsiString; Source: PAnsiChar; Length: Integer);
- procedure _LStrFromPWCharLen(var Dest: AnsiString; Source: PWideChar; Length: Integer);
- procedure _LStrFromChar(var Dest: AnsiString; Source: AnsiChar);
- procedure _LStrFromWChar(var Dest: AnsiString; Source: WideChar);
- procedure _LStrFromPChar(var Dest: AnsiString; Source: PAnsiChar);
- procedure _LStrFromPWChar(var Dest: AnsiString; Source: PWideChar);
- procedure _LStrFromString(var Dest: AnsiString; const Source: ShortString);
- procedure _LStrFromArray(var Dest: AnsiString; Source: PAnsiChar; Length: Integer);
- procedure _LStrFromWArray(var Dest: AnsiString; Source: PWideChar; Length: Integer);
- procedure _LStrFromWStr(var Dest: AnsiString; const Source: WideString);
- procedure _LStrToString{(var Dest: ShortString; const Source: AnsiString; MaxLen: Integer)};
- function _LStrLen{str: AnsiString}: Longint;
- procedure _LStrCat{var dest: AnsiString; source: AnsiString};
- procedure _LStrCat3{var dest:AnsiString; source1: AnsiString; source2: AnsiString};
- procedure _LStrCatN{var dest:AnsiString; argCnt: Integer; ...};
- procedure _LStrCmp{left: AnsiString; right: AnsiString};
- procedure _LStrAddRef{str: AnsiString};
- procedure _LStrToPChar{str: AnsiString): PChar};
- procedure _Copy{ s : ShortString; index, count : Integer ) : ShortString};
- procedure _Delete{ var s : openstring; index, count : Integer };
- procedure _Insert{ source : ShortString; var s : openstring; index : Integer };
- procedure _Pos{ substr : ShortString; s : ShortString ) : Integer};
- procedure _SetLength{var s: ShortString; newLength: Integer};
- procedure _SetString{var s: ShortString: buffer: PChar; len: Integer};
-
- procedure UniqueString(var str: string);
- procedure _NewAnsiString{length: Longint}; { for debugger purposes only }
-
- procedure _LStrCopy { const s : AnsiString; index, count : Integer) : AnsiString};
- procedure _LStrDelete{ var s : AnsiString; index, count : Integer };
- procedure _LStrInsert{ const source : AnsiString; var s : AnsiString; index : Integer };
- procedure _LStrPos{ const substr : AnsiString; const s : AnsiString ) : Integer};
- procedure _LStrSetLength{ var str: AnsiString; newLength: Integer};
- procedure _LStrOfChar{ c: Char; count: Integer): AnsiString };
-
- procedure _WStrClr(var S: WideString);
- procedure _WStrArrayClr(var StrArray; Count: Integer);
- procedure _WStrAsg(var Dest: WideString; const Source: WideString);
- procedure _WStrFromPCharLen(var Dest: WideString; Source: PAnsiChar; Length: Integer);
- procedure _WStrFromPWCharLen(var Dest: WideString; Source: PWideChar; Length: Integer);
- procedure _WStrFromChar(var Dest: WideString; Source: AnsiChar);
- procedure _WStrFromWChar(var Dest: WideString; Source: WideChar);
- procedure _WStrFromPChar(var Dest: WideString; Source: PAnsiChar);
- procedure _WStrFromPWChar(var Dest: WideString; Source: PWideChar);
- procedure _WStrFromString(var Dest: WideString; const Source: ShortString);
- procedure _WStrFromArray(var Dest: WideString; Source: PAnsiChar; Length: Integer);
- procedure _WStrFromWArray(var Dest: WideString; Source: PWideChar; Length: Integer);
- procedure _WStrFromLStr(var Dest: WideString; const Source: AnsiString);
- procedure _WStrToString(Dest: PShortString; const Source: WideString; MaxLen: Integer);
- function _WStrToPWChar(const S: WideString): PWideChar;
- function _WStrLen(const S: WideString): Integer;
- procedure _WStrCat(var Dest: WideString; const Source: WideString);
- procedure _WStrCat3(var Dest: WideString; const Source1, Source2: WideString);
- procedure _WStrCatN{var dest:WideString; argCnt: Integer; ...};
- procedure _WStrCmp{left: WideString; right: WideString};
- function _NewWideString(Length: Integer): PWideChar;
- function _WStrCopy(const S: WideString; Index, Count: Integer): WideString;
- procedure _WStrDelete(var S: WideString; Index, Count: Integer);
- procedure _WStrInsert(const Source: WideString; var Dest: WideString; Index: Integer);
- procedure _WStrPos{ const substr : WideString; const s : WideString ) : Integer};
- procedure _WStrSetLength(var S: WideString; NewLength: Integer);
- function _WStrOfWChar(Ch: WideChar; Count: Integer): WideString;
- procedure _WStrAddRef{var str: WideString};
-
- procedure _Initialize;
- procedure _InitializeArray;
- procedure _InitializeRecord;
- procedure _Finalize;
- procedure _FinalizeArray;
- procedure _FinalizeRecord;
- procedure _AddRef;
- procedure _AddRefArray;
- procedure _AddRefRecord;
- procedure _CopyArray;
- procedure _CopyRecord;
- procedure _CopyObject;
-
- procedure _New;
- procedure _Dispose;
-
- procedure _DispInvoke; cdecl;
- procedure _IntfDispCall; cdecl;
- procedure _IntfVarCall; cdecl;
-
- procedure _VarToInt;
- procedure _VarToBool;
- procedure _VarToReal;
- procedure _VarToCurr;
- procedure _VarToPStr(var S; const V: Variant);
- procedure _VarToLStr(var S: string; const V: Variant);
- procedure _VarToWStr(var S: WideString; const V: Variant);
- procedure _VarToIntf(var Unknown: IUnknown; const V: Variant);
- procedure _VarToDisp(var Dispatch: IDispatch; const V: Variant);
- procedure _VarToDynArray(var DynArray: Pointer; const V: Variant; TypeInfo: Pointer);
-
- procedure _VarFromInt;
- procedure _VarFromBool;
- procedure _VarFromReal;
- procedure _VarFromTDateTime;
- procedure _VarFromCurr;
- procedure _VarFromPStr(var V: Variant; const Value: ShortString);
- procedure _VarFromLStr(var V: Variant; const Value: string);
- procedure _VarFromWStr(var V: Variant; const Value: WideString);
- procedure _VarFromIntf(var V: Variant; const Value: IUnknown);
- procedure _VarFromDisp(var V: Variant; const Value: IDispatch);
- procedure _VarFromDynArray(var V: Variant; const DynArray: Pointer; TypeInfo: Pointer);
- procedure _OleVarFromPStr(var V: OleVariant; const Value: ShortString);
- procedure _OleVarFromLStr(var V: OleVariant; const Value: string);
- procedure _OleVarFromVar(var V: OleVariant; const Value: Variant);
-
- procedure _VarAdd;
- procedure _VarSub;
- procedure _VarMul;
- procedure _VarDiv;
- procedure _VarMod;
- procedure _VarAnd;
- procedure _VarOr;
- procedure _VarXor;
- procedure _VarShl;
- procedure _VarShr;
- procedure _VarRDiv;
- procedure _VarCmp;
-
- procedure _VarNeg;
- procedure _VarNot;
-
- procedure _VarCopyNoInd;
- procedure _VarClr;
- procedure _VarAddRef;
-
- { 64-bit Integer helper routines }
-
- procedure __llmul;
- procedure __lldiv;
- procedure __lludiv;
- procedure __llmod;
- procedure __llmulo;
- procedure __lldivo;
- procedure __llmodo;
- procedure __llumod;
- procedure __llshl;
- procedure __llushr;
- procedure _WriteInt64;
- procedure _Write0Int64;
- procedure _ReadInt64;
- function _StrInt64(val: Int64; width: Integer): ShortString;
- function _Str0Int64(val: Int64): ShortString;
- function _ValInt64(const s: AnsiString; var code: Integer): Int64;
-
- { Dynamic array helper functions }
-
- procedure _DynArrayHigh;
- procedure _DynArrayClear(var a: Pointer; typeInfo: Pointer);
- procedure _DynArrayLength;
- procedure _DynArraySetLength;
- procedure _DynArrayCopy(a: Pointer; typeInfo: Pointer; var Result: Pointer);
- procedure _DynArrayCopyRange(a: Pointer; typeInfo: Pointer; index, count : Integer; var Result: Pointer);
- procedure _DynArrayAsg;
- procedure _DynArrayAddRef;
- procedure DynArrayToVariant(var V: Variant; const DynArray: Pointer; TypeInfo: Pointer);
- procedure DynArrayFromVariant(var DynArray: Pointer; const V: Variant; TypeInfo: Pointer);
-
- procedure _IntfClear(var Dest: IUnknown);
- procedure _IntfCopy(var Dest: IUnknown; const Source: IUnknown);
- procedure _IntfCast(var Dest: IUnknown; const Source: IUnknown; const IID: TGUID);
- procedure _IntfAddRef(const Dest: IUnknown);
-
- function _VarArrayGet(var A: Variant; IndexCount: Integer;
- Indices: Integer): Variant; cdecl;
- procedure _VarArrayPut(var A: Variant; const Value: Variant;
- IndexCount: Integer; Indices: Integer); cdecl;
-
- procedure _HandleAnyException;
- procedure _HandleOnException;
- procedure _HandleFinally;
- procedure _HandleAutoException;
-
- procedure _FSafeDivide;
- procedure _FSafeDivideR;
-
- procedure _CheckAutoResult;
-
- procedure FPower10;
-
- procedure TextStart;
-
- function CompToDouble(acomp: Comp): Double; cdecl;
- procedure DoubleToComp(adouble: Double; var result: Comp); cdecl;
- function CompToCurrency(acomp: Comp): Currency; cdecl;
- procedure CurrencyToComp(acurrency: Currency; var result: Comp); cdecl;
-
- function GetMemory(Size: Integer): Pointer; cdecl;
- function FreeMemory(P: Pointer): Integer; cdecl;
- function ReallocMemory(P: Pointer; Size: Integer): Pointer; cdecl;
-
- (* =================================================================== *)
-
- implementation
-