// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'UXlsReferences.pas' rev: 5.00

#ifndef UXlsReferencesHPP
#define UXlsReferencesHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Contnrs.hpp>	// Pascal unit
#include <UFlxMessages.hpp>	// Pascal unit
#include <XlsFormulaMessages.hpp>	// Pascal unit
#include <UXlsStrings.hpp>	// Pascal unit
#include <UXlsBaseList.hpp>	// Pascal unit
#include <UXlsBaseRecordLists.hpp>	// Pascal unit
#include <UXlsBaseRecords.hpp>	// Pascal unit
#include <XlsMessages.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Uxlsreferences
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TExternNameRecord;
class PASCALIMPLEMENTATION TExternNameRecord : public Uxlsbaserecords::TBaseRecord 
{
	typedef Uxlsbaserecords::TBaseRecord inherited;
	
public:
	#pragma option push -w-inl
	/* TBaseRecord.Create */ inline __fastcall virtual TExternNameRecord(const Word aId, const Xlsmessages::PArrayOfByte 
		aData, const int aDataSize) : Uxlsbaserecords::TBaseRecord(aId, aData, aDataSize) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TExternNameRecord(void) { }
	#pragma option pop
	
};


class DELPHICLASS TExternNameRecordList;
class PASCALIMPLEMENTATION TExternNameRecordList : public Uxlsbaserecordlists::TBaseRecordList 
{
	typedef Uxlsbaserecordlists::TBaseRecordList inherited;
	
public:
	#pragma option push -w-inl
	/* TObjectList.Create */ inline __fastcall TExternNameRecordList(void)/* overload */ : Uxlsbaserecordlists::TBaseRecordList(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~TExternNameRecordList(void) { }
	#pragma option pop
	
};


class DELPHICLASS TSupBookRecord;
class PASCALIMPLEMENTATION TSupBookRecord : public Uxlsbaserecords::TBaseRecord 
{
	typedef Uxlsbaserecords::TBaseRecord inherited;
	
private:
	TExternNameRecordList* FExternNameList;
	
public:
	bool __fastcall IsLocal(void);
	void __fastcall InsertSheets(const int SheetCount);
	WideString __fastcall BookName();
	WideString __fastcall SheetName(const int SheetIndex, const System::TObject* Globals);
	void __fastcall AddExternName(const TExternNameRecord* ExternNameRecord);
	
protected:
	virtual Uxlsbaserecords::TBaseRecord* __fastcall DoCopyTo(void);
	
public:
	__fastcall virtual TSupBookRecord(const Word aId, const Xlsmessages::PArrayOfByte aData, const int 
		aDataSize);
	__fastcall TSupBookRecord(const int SheetCount);
	__fastcall virtual ~TSupBookRecord(void);
	virtual void __fastcall SaveToStream(const Classes::TStream* Workbook);
	virtual int __fastcall TotalSize(void);
	virtual int __fastcall TotalSizeNoHeaders(void);
};


class DELPHICLASS TExternSheetRecord;
class PASCALIMPLEMENTATION TExternSheetRecord : public Uxlsbaserecords::TBaseRecord 
{
	typedef Uxlsbaserecords::TBaseRecord inherited;
	
public:
	#pragma option push -w-inl
	/* TBaseRecord.Create */ inline __fastcall virtual TExternSheetRecord(const Word aId, const Xlsmessages::PArrayOfByte 
		aData, const int aDataSize) : Uxlsbaserecords::TBaseRecord(aId, aData, aDataSize) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TExternSheetRecord(void) { }
	#pragma option pop
	
};


class DELPHICLASS TExternRef;
class PASCALIMPLEMENTATION TExternRef : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	Word SupBookRecord;
	Word FirstSheet;
	Word LastSheet;
	__fastcall TExternRef(const Word aSupBookRecord, const Word aFirstSheet, const Word aLastSheet);
	void __fastcall SaveToStream(const Classes::TStream* DataStream);
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TExternRef(void) { }
	#pragma option pop
	
};


class DELPHICLASS TSupBookRecordList;
class PASCALIMPLEMENTATION TSupBookRecordList : public Uxlsbaserecordlists::TBaseRecordList 
{
	typedef Uxlsbaserecordlists::TBaseRecordList inherited;
	
private:
	TSupBookRecord* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, const TSupBookRecord* Value);
	
public:
	__property TSupBookRecord* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(TSupBookRecord* aRecord);
	HIDESBASE void __fastcall Insert(int Index, TSupBookRecord* aRecord);
	HIDESBASE __int64 __fastcall TotalSize(void);
public:
	#pragma option push -w-inl
	/* TObjectList.Create */ inline __fastcall TSupBookRecordList(void)/* overload */ : Uxlsbaserecordlists::TBaseRecordList(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~TSupBookRecordList(void) { }
	#pragma option pop
	
};


class DELPHICLASS TExternRefList;
class PASCALIMPLEMENTATION TExternRefList : public Uxlsbaselist::TBaseList 
{
	typedef Uxlsbaselist::TBaseList inherited;
	
private:
	TExternRef* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, const TExternRef* Value);
	
public:
	__property TExternRef* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(TExternRef* aRecord);
	HIDESBASE void __fastcall Insert(int Index, TExternRef* aRecord);
	void __fastcall Load(const TExternSheetRecord* aRecord);
	void __fastcall SaveToStream(const Classes::TStream* DataStream);
	__int64 __fastcall TotalSize(void);
	void __fastcall InsertSheets(const int BeforeSheet, const int SheetCount, int LocalSupBook);
public:
		
	#pragma option push -w-inl
	/* TObjectList.Create */ inline __fastcall TExternRefList(void)/* overload */ : Uxlsbaselist::TBaseList(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~TExternRefList(void) { }
	#pragma option pop
	
};


class DELPHICLASS TReferences;
class PASCALIMPLEMENTATION TReferences : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	TSupBookRecordList* FSupBooks;
	TExternRefList* FExternRefs;
	int LocalSupBook;
	
public:
	__fastcall TReferences(void);
	__fastcall virtual ~TReferences(void);
	__int64 __fastcall TotalSize(void);
	void __fastcall Clear(void);
	void __fastcall SaveToStream(const Classes::TStream* DataStream);
	void __fastcall AddSupBook(const TSupBookRecord* aRecord);
	void __fastcall AddExternRef(const TExternSheetRecord* aRecord);
	void __fastcall AddExternName(const TExternNameRecord* aRecord);
	void __fastcall InsertSheets(const int BeforeSheet, const int SheetCount);
	int __fastcall GetSheet(const Word SheetRef);
	int __fastcall SetSheet(const Word Sheet);
	int __fastcall AddSheet(int SheetCount, int FirstSheet, int LastSheet);
	WideString __fastcall GetSheetName(const Word SheetRef, const System::TObject* Globals);
};


//-- var, const, procedure ---------------------------------------------------

}	/* namespace Uxlsreferences */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Uxlsreferences;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// UXlsReferences
