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

// (DO NOT EDIT: machine generated header) 'Smispss.pas' rev: 21.00

#ifndef SmispssHPP
#define SmispssHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Smcells.hpp>	// Pascal unit
#include <Variants.hpp>	// Pascal unit

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

namespace Smispss
{
//-- type declarations -------------------------------------------------------
#pragma pack(push,1)
struct TSPSSHeader
{
	
public:
	StaticArray<System::WideChar, 4> RecordID;
	StaticArray<System::WideChar, 60> ProductName;
	unsigned LayoutCode;
	unsigned CaseSize;
	unsigned Compressed;
	unsigned WeightIndex;
	System::Comp nCases;
	unsigned bias;
	StaticArray<System::WideChar, 9> CreationDate;
	StaticArray<System::WideChar, 8> CreationTime;
	StaticArray<System::WideChar, 64> FileLabel;
	StaticArray<System::Byte, 3> Padding;
};
#pragma pack(pop)


struct TSPSSVariable;
typedef TSPSSVariable *PSPSSVariable;

#pragma pack(push,1)
struct TSPSSVariable
{
	
public:
	unsigned RecordID;
	unsigned VariableType;
	unsigned HasVarLabel;
	unsigned nMissingValues;
	unsigned PrintFormat;
	unsigned WriteFormat;
	StaticArray<System::WideChar, 8> Name;
};
#pragma pack(pop)


#pragma pack(push,1)
struct TSPSSMachine32Info
{
	
public:
	unsigned RecordID;
	unsigned SubTypeID;
	unsigned Size;
	unsigned Count;
	unsigned MajorVersion;
	unsigned MinorVersion;
	unsigned RevisionVersion;
	unsigned MachineCode;
	unsigned FloatingPointRep;
	unsigned CompressionCode;
	unsigned Endianness;
	unsigned CharacterCode;
};
#pragma pack(pop)


#pragma pack(push,1)
struct TSPSSDictionaryTermination
{
	
public:
	unsigned RecordID;
	unsigned Filler;
};
#pragma pack(pop)


#pragma pack(push,1)
struct TSPSSEndOfFile
{
	
public:
	unsigned RecordID;
	unsigned Filler;
};
#pragma pack(pop)


typedef StaticArray<System::WideChar, 72> TSPSSCluster;

class DELPHICLASS TSPSSFile;
class PASCALIMPLEMENTATION TSPSSFile : public Smcells::TSpreadSheetFile
{
	typedef Smcells::TSpreadSheetFile inherited;
	
protected:
	Classes::TStream* Stream;
	TSPSSCluster CaseCluster;
	unsigned CurrentPosInOctet;
	unsigned CurrentPosInCluster;
	bool __fastcall LoadNextCase(void);
	void __fastcall LoadNextBlock(void);
	
public:
	TSPSSHeader Header;
	Classes::TList* Variables;
	__fastcall virtual TSPSSFile(Classes::TComponent* AOwner);
	__fastcall virtual ~TSPSSFile(void);
	virtual void __fastcall LoadFromFile(const System::WideString FileName);
	virtual void __fastcall BeforeLoad(void);
	virtual void __fastcall AfterLoad(void);
};


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

}	/* namespace Smispss */
using namespace Smispss;
#pragma pack(pop)
#pragma option pop

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