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

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

#ifndef UXlsHyperLinkHPP
#define UXlsHyperLinkHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Contnrs.hpp>	// Pascal unit
#include <UXlsBaseList.hpp>	// Pascal unit
#include <UFlxMessages.hpp>	// Pascal unit
#include <XlsMessages.hpp>	// Pascal unit
#include <UXlsBaseRecords.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 Uxlshyperlink
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS THLinkRecord;
class DELPHICLASS TScreenTipRecord;
class PASCALIMPLEMENTATION TScreenTipRecord : public Uxlsbaserecords::TBaseRecord 
{
	typedef Uxlsbaserecords::TBaseRecord inherited;
	
protected:
	int __fastcall GetFirstRow(void);
	int __fastcall GetLastRow(void);
	int __fastcall GetFirstCol(void);
	int __fastcall GetLastCol(void);
	WideString __fastcall GetText();
	void __fastcall SetFirstRow(int Value);
	void __fastcall SetLastRow(int Value);
	void __fastcall SetFirstCol(int Value);
	void __fastcall SetLastCol(int Value);
	void __fastcall SetText(WideString Value);
	
public:
	__fastcall virtual TScreenTipRecord(const Word aId, const Xlsmessages::PArrayOfByte aData, const int 
		aDataSize);
	__fastcall TScreenTipRecord(WideString aDescription);
	__property int FirstRow = {read=GetFirstRow, write=SetFirstRow, nodefault};
	__property int LastRow = {read=GetLastRow, write=SetLastRow, nodefault};
	__property int FirstCol = {read=GetFirstCol, write=SetFirstCol, nodefault};
	__property int LastCol = {read=GetLastCol, write=SetLastCol, nodefault};
	__property WideString Text = {read=GetText, write=SetText};
public:
	#pragma option push -w-inl
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~TScreenTipRecord(void) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION THLinkRecord : public Uxlsbaserecords::TBaseRecord 
{
	typedef Uxlsbaserecords::TBaseRecord inherited;
	
private:
	WideString __fastcall ReadString(int &Pos, const int OptMask, const int ByteSize);
	WideString __fastcall ReadLocalFile(int &Pos);
	void __fastcall SetString(int &Pos, const int OptMask, const WideString value);
	void __fastcall SetString2(int &Pos, const Xlsmessages::PArrayOfByte GUID, const WideString value, 
		const int ByteCount);
	void __fastcall SetLocalFile(int &Pos, const WideString value);
	bool __fastcall IsUrl(int pos);
	bool __fastcall IsFile(int pos);
	bool __fastcall IsUNC(int pos);
	WideString __fastcall GetText(int &pos, Uflxmessages::THyperLinkType &HType);
	void __fastcall SetText(int &pos, WideString Text, Uflxmessages::THyperLinkType HType);
	void __fastcall ClearData(void);
	
public:
	TScreenTipRecord* Hint;
	int __fastcall GetFirstRow(void);
	int __fastcall GetLastRow(void);
	int __fastcall GetFirstCol(void);
	int __fastcall GetLastCol(void);
	int __fastcall GetOptionFlags(void);
	void __fastcall SetFirstRow(int Value);
	void __fastcall SetLastRow(int Value);
	void __fastcall SetFirstCol(int Value);
	void __fastcall SetLastCol(int Value);
	void __fastcall SetOptionFlags(int Value);
	virtual Uxlsbaserecords::TBaseRecord* __fastcall DoCopyTo(void);
	__fastcall virtual THLinkRecord(const Word aId, const Xlsmessages::PArrayOfByte aData, const int aDataSize
		);
	__fastcall THLinkRecord(const Uflxmessages::TXlsCellRange &CellRange, const Uflxmessages::THyperLink 
		&HLink);
	__property int FirstRow = {read=GetFirstRow, write=SetFirstRow, nodefault};
	__property int LastRow = {read=GetLastRow, write=SetLastRow, nodefault};
	__property int FirstCol = {read=GetFirstCol, write=SetFirstCol, nodefault};
	__property int LastCol = {read=GetLastCol, write=SetLastCol, nodefault};
	__property int OptionFlags = {read=GetOptionFlags, write=SetOptionFlags, nodefault};
	virtual void __fastcall SaveToStream(const Classes::TStream* Workbook);
	void __fastcall SaveRangeToStream(const Classes::TStream* Workbook, const Uflxmessages::TXlsCellRange 
		&CellRange);
	int __fastcall TotalRangeSize(const Uflxmessages::TXlsCellRange &CellRange);
	virtual int __fastcall TotalSize(void);
	virtual int __fastcall TotalSizeNoHeaders(void);
	Uflxmessages::THyperLink __fastcall GetProperties();
	void __fastcall SetProperties(const Uflxmessages::THyperLink &value);
	Uflxmessages::TXlsCellRange __fastcall GetCellRange();
	void __fastcall SetCellRange(const Uflxmessages::TXlsCellRange &CellRange);
	void __fastcall ArrangeInsertRange(const Uflxmessages::TXlsCellRange &CellRange, int aRowCount, int 
		aColCount, const Xlsmessages::TSheetInfo &SheetInfo);
	THLinkRecord* __fastcall Offset(int DeltaRow, int DeltaCol);
public:
	#pragma option push -w-inl
	/* TBaseRecord.Destroy */ inline __fastcall virtual ~THLinkRecord(void) { }
	#pragma option pop
	
};


class DELPHICLASS THLinkList;
class PASCALIMPLEMENTATION THLinkList : public Uxlsbaselist::TBaseList 
{
	typedef Uxlsbaselist::TBaseList inherited;
	
private:
	THLinkRecord* __fastcall GetItems(int index);
	void __fastcall SetItems(int index, const THLinkRecord* Value);
	
public:
	__property THLinkRecord* Items[int index] = {read=GetItems, write=SetItems/*, default*/};
	HIDESBASE int __fastcall Add(THLinkRecord* aRecord);
	HIDESBASE void __fastcall Insert(int Index, THLinkRecord* aRecord);
	
private:
	bool Sorted;
	
public:
	HIDESBASE void __fastcall Sort(void);
	void __fastcall CopyFrom(THLinkList* aHLinkList);
	void __fastcall CopyObjectsFrom(THLinkList* aHLinkList, const Uflxmessages::TXlsCellRange &CopyRange
		, int RowOfs, int ColOfs);
	void __fastcall SaveToStream(Classes::TStream* DataStream);
	void __fastcall SaveRangeToStream(Classes::TStream* DataStream, const Uflxmessages::TXlsCellRange &
		CellRange);
	__int64 __fastcall TotalSize(void);
	__int64 __fastcall TotalRangeSize(const Uflxmessages::TXlsCellRange &CellRange);
	void __fastcall InsertAndCopyRange(const Uflxmessages::TXlsCellRange &SourceRange, int DestRow, int 
		DestCol, int aRowCount, int aColCount, const Xlsmessages::TSheetInfo &SheetInfo);
	void __fastcall DeleteRange(const Uflxmessages::TXlsCellRange &CellRange, int aRowCount, int aColCount
		, const Xlsmessages::TSheetInfo &SheetInfo);
public:
	#pragma option push -w-inl
	/* TObjectList.Create */ inline __fastcall THLinkList(void)/* overload */ : Uxlsbaselist::TBaseList(
		) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TList.Destroy */ inline __fastcall virtual ~THLinkList(void) { }
	#pragma option pop
	
};


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

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

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