// Borland C++ Builder
// Copyright (c) 1995, 2005 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Xsbuiltins.pas' rev: 10.00

#ifndef XsbuiltinsHPP
#define XsbuiltinsHPP

#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 <Sysutils.hpp>	// Pascal unit
#include <Invokeregistry.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Fmtbcd.hpp>	// Pascal unit
#include <Types.hpp>	// Pascal unit
#include <Xmlintf.hpp>	// Pascal unit

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

namespace Xsbuiltins
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TXSTime;
class PASCALIMPLEMENTATION TXSTime : public Invokeregistry::TRemotableXS 
{
	typedef Invokeregistry::TRemotableXS inherited;
	
private:
	WideString FTimeValue;
	bool FUseZeroMilliseconds;
	
protected:
	System::TDateTime __fastcall GetAsTime(void);
	double __fastcall GetFractionalSeconds(void);
	AnsiString __fastcall GetFractionalSecondString();
	short __fastcall GetHourOffset(void);
	Word __fastcall GetHour(void);
	Word __fastcall GetMillisecond(void);
	Word __fastcall GetMinute(void);
	short __fastcall GetMinuteOffset(void);
	Word __fastcall GetSecond(void);
	void __fastcall SetAsTime(const System::TDateTime Value);
	void __fastcall SetFractionalSeconds(const double Value);
	void __fastcall SetHour(const Word Value);
	void __fastcall SetHourOffset(const short Value);
	void __fastcall SetMillisecond(const Word Value);
	void __fastcall SetMinute(const Word Value);
	void __fastcall SetMinuteOffset(const short Value);
	void __fastcall SetSecond(const Word Value);
	__property AnsiString FractionalSecondString = {read=GetFractionalSecondString};
	
public:
	__property System::TDateTime AsTime = {read=GetAsTime, write=SetAsTime};
	__property double FractionalSeconds = {read=GetFractionalSeconds, write=SetFractionalSeconds};
	__property Word Hour = {read=GetHour, write=SetHour, default=0};
	__property short HourOffset = {read=GetHourOffset, write=SetHourOffset, default=0};
	__property Word Millisecond = {read=GetMillisecond, write=SetMillisecond, default=0};
	__property Word Minute = {read=GetMinute, write=SetMinute, default=0};
	__property short MinuteOffset = {read=GetMinuteOffset, write=SetMinuteOffset, nodefault};
	__property Word Second = {read=GetSecond, write=SetSecond, default=0};
	__property bool UseZeroMilliseconds = {read=FUseZeroMilliseconds, write=FUseZeroMilliseconds, nodefault};
	TXSTime* __fastcall Clone(void);
	virtual void __fastcall XSToNative(WideString Value);
	virtual WideString __fastcall NativeToXS();
public:
	#pragma option push -w-inl
	/* TRemotable.Create */ inline __fastcall virtual TXSTime(void) : Invokeregistry::TRemotableXS() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TRemotable.Destroy */ inline __fastcall virtual ~TXSTime(void) { }
	#pragma option pop
	
};


class DELPHICLASS TXSDate;
class PASCALIMPLEMENTATION TXSDate : public Invokeregistry::TRemotableXS 
{
	typedef Invokeregistry::TRemotableXS inherited;
	
private:
	WideString FDateValue;
	
protected:
	System::TDateTime __fastcall GetAsDate(void);
	Word __fastcall GetDay(void);
	Word __fastcall GetMonth(void);
	int __fastcall GetYear(void);
	void __fastcall SetAsDate(const System::TDateTime Value);
	void __fastcall SetMonth(const Word Value);
	void __fastcall SetDay(const Word Value);
	void __fastcall SetYear(const int Value);
	
public:
	__fastcall virtual TXSDate(void);
	__property Word Month = {read=GetMonth, write=SetMonth, default=0};
	__property Word Day = {read=GetDay, write=SetDay, default=0};
	__property int Year = {read=GetYear, write=SetYear, default=0};
	TXSDate* __fastcall Clone(void);
	virtual void __fastcall XSToNative(WideString Value);
	virtual WideString __fastcall NativeToXS();
	__property System::TDateTime AsDate = {read=GetAsDate, write=SetAsDate};
public:
	#pragma option push -w-inl
	/* TRemotable.Destroy */ inline __fastcall virtual ~TXSDate(void) { }
	#pragma option pop
	
};


class DELPHICLASS TXSCustomDateTime;
class PASCALIMPLEMENTATION TXSCustomDateTime : public Invokeregistry::TRemotableXS 
{
	typedef Invokeregistry::TRemotableXS inherited;
	
protected:
	WideString FDateTime;
	System::TDateTime __fastcall GetAsDateTime(void);
	System::TDateTime __fastcall GetAsUTCDateTime(void);
	Word __fastcall GetDay(void);
	double __fastcall GetFractionalSeconds(void);
	Word __fastcall GetHour(void);
	short __fastcall GetHourOffset(void);
	Word __fastcall GetMonth(void);
	Word __fastcall GetMillisecond(void);
	Word __fastcall GetMinute(void);
	short __fastcall GetMinuteOffset(void);
	Word __fastcall GetSecond(void);
	bool __fastcall GetUseZeroMilliseconds(void);
	int __fastcall GetYear(void);
	void __fastcall SetAsDateTime(const System::TDateTime Value);
	void __fastcall SetAsUTCDateTime(const System::TDateTime Value);
	void __fastcall SetFractionalSeconds(const double Value);
	virtual void __fastcall SetDay(const Word Value);
	virtual void __fastcall SetHour(const Word Value);
	virtual void __fastcall SetHourOffset(const short Value);
	virtual void __fastcall SetMillisecond(const Word Value);
	virtual void __fastcall SetMinute(const Word Value);
	virtual void __fastcall SetMinuteOffset(const short Value);
	virtual void __fastcall SetMonth(const Word Value);
	virtual void __fastcall SetSecond(const Word Value);
	void __fastcall SetUseZeroMilliseconds(const bool Value);
	virtual void __fastcall SetYear(const int Value);
	__property Word Millisecond = {read=GetMillisecond, write=SetMillisecond, default=0};
	
public:
	__fastcall virtual TXSCustomDateTime(void);
	__fastcall virtual ~TXSCustomDateTime(void);
	__property System::TDateTime AsDateTime = {read=GetAsDateTime, write=SetAsDateTime};
	__property System::TDateTime AsUTCDateTime = {read=GetAsUTCDateTime, write=SetAsUTCDateTime};
	__property double FractionalSeconds = {read=GetFractionalSeconds, write=SetFractionalSeconds};
	__property Word Hour = {read=GetHour, write=SetHour, default=0};
	__property short HourOffset = {read=GetHourOffset, write=SetHourOffset, default=0};
	__property Word Minute = {read=GetMinute, write=SetMinute, default=0};
	__property short MinuteOffset = {read=GetMinuteOffset, write=SetMinuteOffset, default=0};
	__property Word Second = {read=GetSecond, write=SetSecond, default=0};
	__property Word Month = {read=GetMonth, write=SetMonth, default=0};
	__property Word Day = {read=GetDay, write=SetDay, default=0};
	__property int Year = {read=GetYear, write=SetYear, default=0};
	__property bool UseZeroMilliseconds = {read=GetUseZeroMilliseconds, write=SetUseZeroMilliseconds, nodefault};
};


class DELPHICLASS TXSDateTime;
class DELPHICLASS TXSDuration;
class PASCALIMPLEMENTATION TXSDateTime : public TXSCustomDateTime 
{
	typedef TXSCustomDateTime inherited;
	
public:
	TXSDateTime* __fastcall Clone(void);
	TXSDuration* __fastcall CompareDateTimeParam(const TXSDateTime* Value1, const TXSDateTime* Value2);
	virtual WideString __fastcall NativeToXS();
	virtual void __fastcall XSToNative(WideString Value);
	__property Word Millisecond = {read=GetMillisecond, write=SetMillisecond, default=0};
public:
	#pragma option push -w-inl
	/* TXSCustomDateTime.Create */ inline __fastcall virtual TXSDateTime(void) : TXSCustomDateTime() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TXSCustomDateTime.Destroy */ inline __fastcall virtual ~TXSDateTime(void) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TXSDuration : public TXSCustomDateTime 
{
	typedef TXSCustomDateTime inherited;
	
protected:
	double __fastcall GetDecimalSecond(void);
	void __fastcall SetDecimalSecond(const double Value);
	
public:
	__fastcall virtual TXSDuration(void);
	virtual void __fastcall XSToNative(WideString Value);
	virtual WideString __fastcall NativeToXS();
	__property double DecimalSecond = {read=GetDecimalSecond, write=SetDecimalSecond};
public:
	#pragma option push -w-inl
	/* TXSCustomDateTime.Destroy */ inline __fastcall virtual ~TXSDuration(void) { }
	#pragma option pop
	
};


class DELPHICLASS EXSDateTimeException;
class PASCALIMPLEMENTATION EXSDateTimeException : public Sysutils::Exception 
{
	typedef Sysutils::Exception inherited;
	
public:
	#pragma option push -w-inl
	/* Exception.Create */ inline __fastcall EXSDateTimeException(const AnsiString Msg) : Sysutils::Exception(Msg) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EXSDateTimeException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EXSDateTimeException(int Ident)/* overload */ : Sysutils::Exception(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EXSDateTimeException(int Ident, System::TVarRec const * Args, const int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EXSDateTimeException(const AnsiString Msg, int AHelpContext) : Sysutils::Exception(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EXSDateTimeException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EXSDateTimeException(int Ident, int AHelpContext)/* overload */ : Sysutils::Exception(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EXSDateTimeException(System::PResStringRec ResStringRec, System::TVarRec const * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EXSDateTimeException(void) { }
	#pragma option pop
	
};


class DELPHICLASS EXSDecimalException;
class PASCALIMPLEMENTATION EXSDecimalException : public Sysutils::Exception 
{
	typedef Sysutils::Exception inherited;
	
public:
	#pragma option push -w-inl
	/* Exception.Create */ inline __fastcall EXSDecimalException(const AnsiString Msg) : Sysutils::Exception(Msg) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EXSDecimalException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EXSDecimalException(int Ident)/* overload */ : Sysutils::Exception(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EXSDecimalException(int Ident, System::TVarRec const * Args, const int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EXSDecimalException(const AnsiString Msg, int AHelpContext) : Sysutils::Exception(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EXSDecimalException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EXSDecimalException(int Ident, int AHelpContext)/* overload */ : Sysutils::Exception(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EXSDecimalException(System::PResStringRec ResStringRec, System::TVarRec const * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EXSDecimalException(void) { }
	#pragma option pop
	
};


class DELPHICLASS EXSHexBinaryException;
class PASCALIMPLEMENTATION EXSHexBinaryException : public Sysutils::Exception 
{
	typedef Sysutils::Exception inherited;
	
public:
	#pragma option push -w-inl
	/* Exception.Create */ inline __fastcall EXSHexBinaryException(const AnsiString Msg) : Sysutils::Exception(Msg) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall EXSHexBinaryException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall EXSHexBinaryException(int Ident)/* overload */ : Sysutils::Exception(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall EXSHexBinaryException(int Ident, System::TVarRec const * Args, const int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall EXSHexBinaryException(const AnsiString Msg, int AHelpContext) : Sysutils::Exception(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall EXSHexBinaryException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall EXSHexBinaryException(int Ident, int AHelpContext)/* overload */ : Sysutils::Exception(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall EXSHexBinaryException(System::PResStringRec ResStringRec, System::TVarRec const * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~EXSHexBinaryException(void) { }
	#pragma option pop
	
};


class DELPHICLASS TXSHexBinary;
class PASCALIMPLEMENTATION TXSHexBinary : public Invokeregistry::TRemotableXS 
{
	typedef Invokeregistry::TRemotableXS inherited;
	
private:
	AnsiString FHexBinaryString;
	void __fastcall SetAsByteArray(const TByteDynArray Value);
	TByteDynArray __fastcall GetAsByteArray();
	
public:
	virtual void __fastcall XSToNative(WideString Value);
	virtual WideString __fastcall NativeToXS();
	__property AnsiString HexBinaryString = {read=FHexBinaryString, write=FHexBinaryString};
	__property TByteDynArray AsByteArray = {read=GetAsByteArray, write=SetAsByteArray};
public:
	#pragma option push -w-inl
	/* TRemotable.Create */ inline __fastcall virtual TXSHexBinary(void) : Invokeregistry::TRemotableXS() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TRemotable.Destroy */ inline __fastcall virtual ~TXSHexBinary(void) { }
	#pragma option pop
	
};


class DELPHICLASS TXSDecimal;
class PASCALIMPLEMENTATION TXSDecimal : public Invokeregistry::TRemotableXS 
{
	typedef Invokeregistry::TRemotableXS inherited;
	
private:
	AnsiString FDecimalString;
	Fmtbcd::TBcd __fastcall GetAsBcd();
	void __fastcall SetAsBcd(const Fmtbcd::TBcd &Value);
	
public:
	virtual void __fastcall XSToNative(WideString Value);
	virtual WideString __fastcall NativeToXS();
	__property AnsiString DecimalString = {read=FDecimalString, write=FDecimalString};
	__property Fmtbcd::TBcd AsBcd = {read=GetAsBcd, write=SetAsBcd};
public:
	#pragma option push -w-inl
	/* TRemotable.Create */ inline __fastcall virtual TXSDecimal(void) : Invokeregistry::TRemotableXS() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TRemotable.Destroy */ inline __fastcall virtual ~TXSDecimal(void) { }
	#pragma option pop
	
};


class DELPHICLASS TXSString;
class PASCALIMPLEMENTATION TXSString : public Invokeregistry::TRemotableXS 
{
	typedef Invokeregistry::TRemotableXS inherited;
	
private:
	WideString FString;
	
public:
	virtual void __fastcall XSToNative(WideString Value);
	virtual WideString __fastcall NativeToXS();
public:
	#pragma option push -w-inl
	/* TRemotable.Create */ inline __fastcall virtual TXSString(void) : Invokeregistry::TRemotableXS() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TRemotable.Destroy */ inline __fastcall virtual ~TXSString(void) { }
	#pragma option pop
	
};


typedef TXSDateTime TXSTimeInstant;
;

//-- var, const, procedure ---------------------------------------------------
static const char SHexMarker = '\x24';
static const char SoapTimePrefix = '\x54';
static const char XMLDateSeparator = '\x2d';
static const char XMLHourOffsetMinusMarker = '\x2d';
static const char XMLHourOffsetPlusMarker = '\x2b';
static const char XMLTimeSeparator = '\x3a';
static const Shortint XMLMonthPos = 0x6;
static const Shortint XMLDayPos = 0x9;
static const Shortint XMLYearPos = 0x1;
static const Shortint XMLMilSecPos = 0xa;
static const Shortint XMLDefaultYearDigits = 0x4;
static const char XMLDurationStart = '\x50';
static const char XMLDurationYear = '\x59';
static const char XMLDurationMonth = '\x4d';
static const char XMLDurationDay = '\x44';
static const char XMLDurationHour = '\x48';
static const char XMLDurationMinute = '\x4d';
static const char XMLDurationSecond = '\x53';
#define SNAN "NAN"
extern PACKAGE char SSciNotationMarker;
extern PACKAGE char SDecimal;
extern PACKAGE char SNegative;
extern PACKAGE char SPlus;
static const char SLocalTimeMarker = '\x5a';
static const Shortint MaxMonth = 0xc;
static const Shortint MinMonth = 0x1;
static const Shortint MaxDay = 0x1f;
static const Shortint MinDay = 0x1;
static const char SoapDecimalSeparator = '\x2e';
extern PACKAGE int IncrementAmount[2];
extern PACKAGE AnsiString __fastcall SoapFloatToStr(double Value);
extern PACKAGE double __fastcall SoapStrToFloat(AnsiString Value);
extern PACKAGE WideString __fastcall DateTimeToXMLTime(System::TDateTime Value, bool ApplyLocalBias = true);
extern PACKAGE System::TDateTime __fastcall XMLTimeToDateTime(const WideString XMLDateTime, bool AsUTCTime = false);
extern PACKAGE TXSDateTime* __fastcall DateTimeToXSDateTime(const System::TDateTime Value, bool ApplyLocalBias = false);
extern PACKAGE AnsiString __fastcall GetDataFromFile(AnsiString AFileName);
extern PACKAGE void __fastcall InitXSTypes(void);

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

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