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

// (DO NOT EDIT: machine generated header) 'SMISPSS.pas' rev: 23.00 (Win32)

#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 <System.Classes.hpp>	// Pascal unit
#include <Vcl.Graphics.hpp>	// Pascal unit
#include <Winapi.Windows.hpp>	// Pascal unit
#include <SMCells.hpp>	// Pascal unit
#include <System.Variants.hpp>	// Pascal unit

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

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


struct TSPSSVariable;
typedef TSPSSVariable *PSPSSVariable;

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


#pragma pack(push,1)
struct DECLSPEC_DRECORD 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 DECLSPEC_DRECORD TSPSSDictionaryTermination
{
	
public:
	unsigned RecordID;
	unsigned Filler;
};
#pragma pack(pop)


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


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

class DELPHICLASS TSPSSFile;
class PASCALIMPLEMENTATION TSPSSFile : public Smcells::TSpreadSheetFile
{
	typedef Smcells::TSpreadSheetFile inherited;
	
protected:
	System::Classes::TStream* Stream;
	TSPSSCluster CaseCluster;
	unsigned CurrentPosInOctet;
	unsigned CurrentPosInCluster;
	bool __fastcall LoadNextCase(void);
	void __fastcall LoadNextBlock(void);
	
public:
	TSPSSHeader Header;
	System::Classes::TList* Variables;
	__fastcall virtual TSPSSFile(System::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 */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_SMISPSS)
using namespace Smispss;
#endif
#pragma pack(pop)
#pragma option pop

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