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

// (DO NOT EDIT: machine generated header) 'Xc12FileData5.pas' rev: 28.00 (Windows)

#ifndef Xc12filedata5HPP
#define Xc12filedata5HPP

#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 <System.Contnrs.hpp>	// Pascal unit
#include <System.IniFiles.hpp>	// Pascal unit
#include <Xc12Utils5.hpp>	// Pascal unit
#include <XLSUtils5.hpp>	// Pascal unit
#include <xpgPSimpleDOM.hpp>	// Pascal unit
#include <XLSReadWriteOPC5.hpp>	// Pascal unit
#include <Xc12DefaultData5.hpp>	// Pascal unit
#include <xpgParseContentType.hpp>	// Pascal unit
#include <xpgParseDocPropsApp.hpp>	// Pascal unit

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

namespace Xc12filedata5
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TXLSSavedFileData;
class DELPHICLASS TXLSSavedFileDataList;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TXLSSavedFileData : public System::TObject
{
	typedef System::TObject inherited;
	
protected:
	System::UnicodeString FType;
	System::UnicodeString FTarget;
	System::UnicodeString FContent;
	System::Classes::TStream* FData;
	TXLSSavedFileDataList* FChilds;
	
public:
	__fastcall TXLSSavedFileData(void);
	__fastcall virtual ~TXLSSavedFileData(void);
	void __fastcall AddChilds(void);
	__property System::UnicodeString Type_ = {read=FType, write=FType};
	__property System::UnicodeString Target = {read=FTarget, write=FTarget};
	__property System::UnicodeString Content = {read=FContent, write=FContent};
	__property System::Classes::TStream* Data = {read=FData, write=FData};
	__property TXLSSavedFileDataList* Childs = {read=FChilds};
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TXLSSavedFileDataList : public System::Contnrs::TObjectList
{
	typedef System::Contnrs::TObjectList inherited;
	
public:
	TXLSSavedFileData* operator[](int Index) { return Items[Index]; }
	
private:
	TXLSSavedFileData* __fastcall GetItems(int Index);
	
protected:
	bool FHasVBA;
	bool FHasSignedVBA;
	
public:
	__fastcall TXLSSavedFileDataList(void);
	__fastcall virtual ~TXLSSavedFileDataList(void);
	TXLSSavedFileData* __fastcall FindByType(System::UnicodeString AType);
	HIDESBASE void __fastcall Add(System::UnicodeString AType, System::UnicodeString ATarget, System::UnicodeString AContent, System::Classes::TStream* AData);
	__property bool HasMacros = {read=FHasVBA, nodefault};
	__property bool HasSignedVBA = {read=FHasSignedVBA, nodefault};
	__property TXLSSavedFileData* Items[int Index] = {read=GetItems/*, default*/};
};

#pragma pack(pop)

class DELPHICLASS TXLSSavedFileDataSheet;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TXLSSavedFileDataSheet : public System::TObject
{
	typedef System::TObject inherited;
	
protected:
	TXLSSavedFileDataList* FSheetData;
	TXLSSavedFileDataList* FTableData;
	
public:
	__fastcall TXLSSavedFileDataSheet(void);
	__fastcall virtual ~TXLSSavedFileDataSheet(void);
	__property TXLSSavedFileDataList* SheetData = {read=FSheetData};
	__property TXLSSavedFileDataList* TableData = {read=FTableData};
};

#pragma pack(pop)

class DELPHICLASS TXc12FileData;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TXc12FileData : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	void __fastcall SetUseAlternateZip(const bool Value);
	bool __fastcall GetHasMacros(void);
	
protected:
	Xpgparsecontenttype::TXPGDocContentType* FContentType;
	Xpgparsedocpropsapp::TXPGDocDocPropsApp* FDocPropsApp;
	Xpgpsimpledom::TXpgSimpleDOM* FDocPropsCore;
	Xlsreadwriteopc5::TOPC_XLSX* FOPC;
	TXLSSavedFileDataList* FSavedRoot;
	TXLSSavedFileDataList* FSavedWorkbook;
	System::Inifiles::THashedStringList* FSavedSheets;
	bool FUseAlternateZip;
	void __fastcall SetDefaultData(void);
	void __fastcall ClearSavedSheets(void);
	void __fastcall ReadContentTypes(void);
	void __fastcall ReadDocPropsApp(void);
	void __fastcall ReadDocPropsCore(void);
	void __fastcall ReadTheme(void);
	void __fastcall WriteDocPropsCore(void);
	void __fastcall WriteTheme(void);
	
public:
	__fastcall TXc12FileData(void);
	__fastcall virtual ~TXc12FileData(void);
	void __fastcall Clear(void);
	void __fastcall LoadFromStream(System::Classes::TStream* AZIPStream);
	void __fastcall ReadUnusedData(void);
	void __fastcall WriteUnusedData(void);
	void __fastcall WriteUnusedDataSheet(int AIndex, Xlsreadwriteopc5::TOPCItem* AOPCSheet);
	void __fastcall BeginSaveToStream(System::Classes::TStream* AZIPStream);
	void __fastcall CommitSaveToStream(void);
	void __fastcall AddSaveSheet(System::UnicodeString AId);
	System::Classes::TStream* __fastcall StreamByName(const System::UnicodeString AName);
	__property Xlsreadwriteopc5::TOPC_XLSX* OPC = {read=FOPC};
	__property Xpgparsedocpropsapp::TXPGDocDocPropsApp* DocPropsApp = {read=FDocPropsApp};
	__property Xpgpsimpledom::TXpgSimpleDOM* DocPropsCore = {read=FDocPropsCore};
	__property bool HasMacros = {read=GetHasMacros, nodefault};
	__property bool UseAlternateZip = {read=FUseAlternateZip, write=SetUseAlternateZip, nodefault};
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
}	/* namespace Xc12filedata5 */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_XC12FILEDATA5)
using namespace Xc12filedata5;
#endif
#pragma pack(pop)
#pragma option pop

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