TObject = class public constructor Create; procedure Free; procedure DisposeOf; {$IFNDEF AUTOREFCOUNT} inline; {$ENDIF} class function InitInstance(Instance: Pointer): TObject {$IFDEF AUTOREFCOUNT} unsafe {$ENDIF}; procedure CleanupInstance; function ClassType: TClass; inline; class function ClassName: string; class function ClassNameIs(const Name: string): Boolean; class function ClassParent: TClass; class function ClassInfo: Pointer; inline; class function InstanceSize: Integer; inline; class function InheritsFrom(AClass: TClass): Boolean; class function MethodAddress(const Name: _ShortStr): Pointer; overload; class function MethodAddress(const Name: string): Pointer; overload; class function MethodName(Address: Pointer): string; class function QualifiedClassName: string; function FieldAddress(const Name: _ShortStr): Pointer; overload; function FieldAddress(const Name: string): Pointer; overload; function GetInterface(const IID: TGUID; out Obj): Boolean; class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry; class function GetInterfaceTable: PInterfaceTable; inline; class function UnitName: string; class function UnitScope: string; {$IFDEF AUTOREFCOUNT} function __ObjAddRef: Integer; virtual; function __ObjRelease: Integer; virtual; {$ENDIF} function Equals(Obj: TObject): Boolean; virtual; function GetHashCode: Integer; virtual; function ToString: string; virtual; 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 {$IFDEF AUTOREFCOUNT} unsafe {$ENDIF}; virtual; procedure FreeInstance; virtual; {$IFDEF AUTOREFCOUNT} protected {$ENDIF} destructor Destroy; virtual; {$IFDEF CPP_ABI_SUPPORT} procedure CPP_ABI_1; virtual; procedure CPP_ABI_2; virtual; procedure CPP_ABI_3; virtual; {$ENDIF !CPP_ABI_SUPPORT} protected function GetDisposed: Boolean; inline; procedure CheckDisposed; {$IFNDEF AUTOREFCOUNT} inline; {$ENDIF} {$IFDEF AUTOREFCOUNT} private const objDestroyingFlag = Integer($80000000); objDisposedFlag = Integer($40000000); protected [Volatile] FRefCount: Integer; class procedure __MarkDestroying(const Obj); static; inline; class function __SetDisposed(const Obj): Boolean; static; inline; public property RefCount: Integer read FRefCount; {$ENDIF AUTOREFCOUNT} property Disposed: Boolean read GetDisposed; end;