// CodeGear C++Builder
// Copyright (c) 1995, 2013 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'FMX.UXlsReferences.pas' rev: 26.00 (Windows)

#ifndef Fmx_UxlsreferencesHPP
#define Fmx_UxlsreferencesHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <FMX.XlsMessages.hpp>	// Pascal unit
#include <FMX.UXlsBaseRecords.hpp>	// Pascal unit
#include <FMX.UXlsBaseRecordLists.hpp>	// Pascal unit
#include <FMX.UXlsBaseList.hpp>	// Pascal unit
#include <FMX.UXlsStrings.hpp>	// Pascal unit
#include <FMX.XlsFormulaMessages.hpp>	// Pascal unit
#include <FMX.UFlxMessages.hpp>	// Pascal unit
#include <FMX.UOle2Impl.hpp>	// Pascal unit
#include <System.Contnrs.hpp>	// Pascal unit

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

namespace Fmx
{
namespace Uxlsreferences
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TExternNameRecord;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TExternNameRecord : public Fmx::Uxlsbaserecords::TBaseRecord
{
	typedef Fmx::Uxlsbaserecords::TBaseRecord inherited;
	
public:
	System::UnicodeString __fastcall Name(void);
	System::Byte __fastcall NameLength(void);
public:
	/* TBaseRecord.Create */ inline __fastcall virtual TExternNameRecord(const System::Word aId, const Fmx::Xlsmessages::PArrayOfByte aData, const int aDataSize) : Fmx::Uxlsbaserecords::TBaseRecord(aId, aData, aDataSize) { }
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TExternNameRecord(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TExternNameRecordList;
class PASCALIMPLEMENTATION TExternNameRecordList : public Fmx::Uxlsbaserecordlists::TBaseRecordList
{
	typedef Fmx::Uxlsbaserecordlists::TBaseRecordList inherited;
	
public:
	/* TObjectList.Create */ inline __fastcall TExternNameRecordList(void)/* overload */ : Fmx::Uxlsbaserecordlists::TBaseRecordList() { }
	/* TObjectList.Create */ inline __fastcall TExternNameRecordList(bool AOwnsObjects)/* overload */ : Fmx::Uxlsbaserecordlists::TBaseRecordList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TExternNameRecordList(void) { }
	
};


class DELPHICLASS TSupBookRecord;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TSupBookRecord : public Fmx::Uxlsbaserecords::TBaseRecord
{
	typedef Fmx::Uxlsbaserecords::TBaseRecord inherited;
	
private:
	TExternNameRecordList* FExternNameList;
	
public:
	bool __fastcall IsLocal(void);
	bool __fastcall IsAddIn(void);
	void __fastcall InsertSheets(const int SheetCount);
	System::UnicodeString __fastcall BookName(void);
	System::UnicodeString __fastcall SheetName(const int SheetIndex, System::TObject* const Globals);
	void __fastcall AddExternName(TExternNameRecord* const ExternNameRecord);
	
protected:
	virtual Fmx::Uxlsbaserecords::TBaseRecord* __fastcall DoCopyTo(void);
	
public:
	__fastcall virtual TSupBookRecord(const System::Word aId, const Fmx::Xlsmessages::PArrayOfByte aData, const int aDataSize);
	__fastcall TSupBookRecord(const int SheetCount);
	__fastcall virtual ~TSupBookRecord(void);
	virtual void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const Workbook);
	virtual int __fastcall TotalSize(void);
	virtual int __fastcall TotalSizeNoHeaders(void);
};

#pragma pack(pop)

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

#pragma pack(pop)

class DELPHICLASS TExternRef;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TExternRef : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	System::Word SupBookRecord;
	System::Word FirstSheet;
	System::Word LastSheet;
	__fastcall TExternRef(const System::Word aSupBookRecord, const System::Word aFirstSheet, const System::Word aLastSheet);
	void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream);
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TExternRef(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TSupBookRecordList;
class PASCALIMPLEMENTATION TSupBookRecordList : public Fmx::Uxlsbaserecordlists::TBaseRecordList
{
	typedef Fmx::Uxlsbaserecordlists::TBaseRecordList inherited;
	
public:
	TSupBookRecord* operator[](int index) { return Items[index]; }
	
private:
	TSupBookRecord* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, TSupBookRecord* const 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:
	/* TObjectList.Create */ inline __fastcall TSupBookRecordList(void)/* overload */ : Fmx::Uxlsbaserecordlists::TBaseRecordList() { }
	/* TObjectList.Create */ inline __fastcall TSupBookRecordList(bool AOwnsObjects)/* overload */ : Fmx::Uxlsbaserecordlists::TBaseRecordList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TSupBookRecordList(void) { }
	
};


class DELPHICLASS TExternRefList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TExternRefList : public Fmx::Uxlsbaselist::TBaseList
{
	typedef Fmx::Uxlsbaselist::TBaseList inherited;
	
public:
	TExternRef* operator[](int index) { return Items[index]; }
	
private:
	TExternRef* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, TExternRef* const 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(TExternSheetRecord* const aRecord);
	void __fastcall SaveToStream(Fmx::Uole2impl::TOle2File* const DataStream);
	__int64 __fastcall TotalSize(void);
	void __fastcall InsertSheets(const int BeforeSheet, const int SheetCount, int LocalSupBook);
public:
	/* TObjectList.Create */ inline __fastcall TExternRefList(void)/* overload */ : Fmx::Uxlsbaselist::TBaseList() { }
	/* TObjectList.Create */ inline __fastcall TExternRefList(bool AOwnsObjects)/* overload */ : Fmx::Uxlsbaselist::TBaseList(AOwnsObjects) { }
	
public:
	/* TList.Destroy */ inline __fastcall virtual ~TExternRefList(void) { }
	
};

#pragma pack(pop)

class DELPHICLASS TReferences;
#pragma pack(push,4)
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(Fmx::Uole2impl::TOle2File* const DataStream);
	void __fastcall AddSupBook(TSupBookRecord* const aRecord);
	void __fastcall AddExternRef(TExternSheetRecord* const aRecord);
	void __fastcall AddExternName(TExternNameRecord* const aRecord);
	void __fastcall InsertSheets(const int BeforeSheet, const int SheetCount);
	int __fastcall GetSheet(const System::Word SheetRef);
	int __fastcall SetSheet(const System::Word Sheet);
	int __fastcall AddSheet(int SheetCount, int FirstSheet, int LastSheet);
	System::UnicodeString __fastcall GetSheetName(const System::Word SheetRef, System::TObject* const Globals);
	System::UnicodeString __fastcall GetName(const int SheetRef, const int NameIndex, System::TObject* const Globals);
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
}	/* namespace Uxlsreferences */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_UXLSREFERENCES)
using namespace Fmx::Uxlsreferences;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX)
using namespace Fmx;
#endif
#pragma pack(pop)
#pragma option pop

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