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

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

#ifndef IdglobalprotocolsHPP
#define IdglobalprotocolsHPP

#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 <Windows.hpp>	// Pascal unit
#include <Idcharsets.hpp>	// Pascal unit
#include <Idbasecomponent.hpp>	// Pascal unit
#include <Idglobal.hpp>	// Pascal unit
#include <Idexception.hpp>	// Pascal unit
#include <Idobjs.hpp>	// Pascal unit
#include <Idsys.hpp>	// Pascal unit

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

namespace Idglobalprotocols
{
//-- type declarations -------------------------------------------------------
typedef AnsiString IdGlobalProtocols__1[7];

typedef AnsiString IdGlobalProtocols__2[12];

typedef AnsiString __fastcall (__closure *TIdReadLnFunction)(void);

typedef void __fastcall (*TStringEvent)(Classes::TComponent* ASender, const AnsiString AString);

class DELPHICLASS TIdMimeTable;
class PASCALIMPLEMENTATION TIdMimeTable : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	bool FLoadTypesFromOS;
	Classes::TNotifyEvent FOnBuildCache;
	Classes::TStringList* FMIMEList;
	Classes::TStringList* FFileExt;
	virtual void __fastcall BuildDefaultCache(void);
	
public:
	__property bool LoadTypesFromOS = {read=FLoadTypesFromOS, write=FLoadTypesFromOS, nodefault};
	virtual void __fastcall BuildCache(void);
	void __fastcall AddMimeType(const AnsiString Ext, const AnsiString MIMEType);
	AnsiString __fastcall GetFileMIMEType(const AnsiString AFileName);
	AnsiString __fastcall GetDefaultFileExt(const AnsiString MIMEType);
	void __fastcall LoadFromStrings(const Classes::TStrings* AStrings, const char MimeSeparator = '\x3d');
	void __fastcall SaveToStrings(const Classes::TStrings* AStrings, const char MimeSeparator = '\x3d');
	__fastcall virtual TIdMimeTable(const bool AutoFill);
	__fastcall virtual ~TIdMimeTable(void);
	__property Classes::TNotifyEvent OnBuildCache = {read=FOnBuildCache, write=FOnBuildCache};
};


class DELPHICLASS TIdInterfacedObject;
class PASCALIMPLEMENTATION TIdInterfacedObject : public System::TInterfacedObject 
{
	typedef System::TInterfacedObject inherited;
	
public:
	HIDESBASE int __fastcall _AddRef(void);
	HIDESBASE int __fastcall _Release(void);
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TIdInterfacedObject(void) : System::TInterfacedObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TIdInterfacedObject(void) { }
	#pragma option pop
	
};


#pragma option push -b-
enum TIdWin32Type { Win32s, WindowsNT40PreSP6Workstation, WindowsNT40PreSP6Server, WindowsNT40PreSP6AdvancedServer, WindowsNT40Workstation, WindowsNT40Server, WindowsNT40AdvancedServer, Windows95, Windows95OSR2, Windows98, Windows98SE, Windows2000Pro, Windows2000Server, Windows2000AdvancedServer, WindowsMe, WindowsXPPro, Windows2003Server, Windows2003AdvancedServer };
#pragma option pop

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


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


typedef DynamicArray<AnsiString >  IdGlobalProtocols__7;

typedef DynamicArray<AnsiString >  IdGlobalProtocols__8;

//-- var, const, procedure ---------------------------------------------------
#define LWS "\t "
extern PACKAGE AnsiString wdays[7];
extern PACKAGE AnsiString monthnames[12];
extern PACKAGE DynamicArray<AnsiString >  IndyFalseBoolStrs;
extern PACKAGE DynamicArray<AnsiString >  IndyTrueBoolStrs;
extern PACKAGE System::TDateTime UNIXSTARTDATE;
static const Shortint TIME_BASEDATE = 0x2;
extern PACKAGE AnsiString __fastcall WrapText(const AnsiString ALine, const AnsiString ABreakStr, const AnsiString ABreakChars, int MaxCol);
extern PACKAGE AnsiString __fastcall CharRange(const char AMin, const char AMax);
extern PACKAGE bool __fastcall StartsWith(const AnsiString ANSIStr, const AnsiString APattern);
extern PACKAGE System::TDateTime __fastcall UnixDateTimeToDelphiDateTime(unsigned UnixDateTime);
extern PACKAGE unsigned __fastcall DateTimeToUnix(System::TDateTime ADateTime);
extern PACKAGE void __fastcall CopyBytesToHostWord(const Idglobal::TBytes ASource, const int ASourceIndex, Word &VDest);
extern PACKAGE void __fastcall CopyBytesToHostCardinal(const Idglobal::TBytes ASource, const int ASourceIndex, unsigned &VDest);
extern PACKAGE void __fastcall CopyTIdNetworkWord(const Word ASource, Idglobal::TBytes &VDest, const int ADestIndex);
extern PACKAGE void __fastcall CopyTIdNetworkCardinal(const unsigned ASource, Idglobal::TBytes &VDest, const int ADestIndex);
extern PACKAGE void __fastcall MoveChars(const System::ShortString &ASource, int ASourceStart,  SmallString<255>  &ADest, const int ADest_Size, int ADestStart, int ALen);
extern PACKAGE System::ShortString __fastcall CharToHex(const AnsiString APrefix, const char c);
extern PACKAGE AnsiString __fastcall CardinalToFourChar(unsigned ACardinal);
extern PACKAGE void __fastcall WordToTwoBytes(Word AWord, Idglobal::TBytes ByteArray, int Index);
extern PACKAGE Word __fastcall StrToWord(const AnsiString Value);
extern PACKAGE AnsiString __fastcall WordToStr(const Word Value);
extern PACKAGE unsigned __fastcall OrdFourByteToCardinal(Byte AByte1, Byte AByte2, Byte AByte3, Byte AByte4);
extern PACKAGE Word __fastcall TwoCharToWord(char AChar1, char AChar2);
extern PACKAGE TIdWin32Type __fastcall Win32Type(void);
extern PACKAGE int __fastcall CompareDateTime(const System::TDateTime ADateTime1, const System::TDateTime ADateTime2);
extern PACKAGE int __fastcall Max(int AValueOne, int AValueTwo);
extern PACKAGE System::TDateTime __fastcall StrInternetToDateTime(AnsiString Value);
extern PACKAGE System::TDateTime __fastcall FTPMLSToGMTDateTime(const AnsiString ATimeStamp);
extern PACKAGE System::TDateTime __fastcall FTPMLSToLocalDateTime(const AnsiString ATimeStamp);
extern PACKAGE AnsiString __fastcall FTPGMTDateTimeToMLS(const System::TDateTime ATimeStamp, const bool AIncludeMSecs = true);
extern PACKAGE AnsiString __fastcall FTPLocalDateTimeToMLS(const System::TDateTime ATimeStamp, const bool AIncludeMSecs = true);
extern PACKAGE Classes::TStrings* __fastcall BreakApart(AnsiString BaseString, AnsiString BreakString, Classes::TStrings* StringList);
extern PACKAGE void __fastcall CommaSeparatedToStringList(Classes::TStrings* AList, const AnsiString Value);
extern PACKAGE bool __fastcall CopyFileTo(const AnsiString Source, const AnsiString Destination);
extern PACKAGE AnsiString __fastcall MakeTempFilename(const AnsiString APath = "");
extern PACKAGE AnsiString __fastcall GetUniqueFileName(const AnsiString APath, const AnsiString APrefix, const AnsiString AExt);
extern PACKAGE int __fastcall RPos(const AnsiString ASub, const AnsiString AIn, int AStart = 0xffffffff);
extern PACKAGE __int64 __fastcall FileSizeByName(const AnsiString AFilename);
extern PACKAGE System::TDateTime __fastcall GetGMTDateByName(const AnsiString AFileName);
extern PACKAGE AnsiString __fastcall RightStr(const AnsiString AStr, int Len);
extern PACKAGE unsigned __fastcall StrToCard(const AnsiString AStr);
extern PACKAGE System::TDateTime __fastcall TimeZoneBias(void);
extern PACKAGE bool __fastcall IndyStrToBool(const AnsiString AString);
extern PACKAGE bool __fastcall SetLocalTime(System::TDateTime Value);
extern PACKAGE Byte __fastcall StrToDay(const AnsiString ADay);
extern PACKAGE Byte __fastcall StrToMonth(const AnsiString AMonth);
extern PACKAGE AnsiString __fastcall UpCaseFirst(const AnsiString AStr);
extern PACKAGE bool __fastcall IsHex(const char AChar);
extern PACKAGE bool __fastcall IsBinary(const char AChar);
extern PACKAGE int __fastcall BinStrToInt(const AnsiString ABinary);
extern PACKAGE AnsiString __fastcall ABNFToText(const AnsiString AText);
extern PACKAGE AnsiString __fastcall GetMIMETypeFromFile(const AnsiString AFile);
extern PACKAGE AnsiString __fastcall GetMIMEDefaultFileExt(const AnsiString MIMEType);
extern PACKAGE System::TDateTime __fastcall GmtOffsetStrToDateTime(AnsiString S);
extern PACKAGE System::TDateTime __fastcall GMTToLocalDateTime(AnsiString S);
extern PACKAGE AnsiString __fastcall IntToBin(unsigned Value);
extern PACKAGE bool __fastcall IsValidIP(const AnsiString S);
extern PACKAGE bool __fastcall IsHostname(const AnsiString S);
extern PACKAGE bool __fastcall IsTopDomain(const AnsiString AStr);
extern PACKAGE bool __fastcall IsDomain(const AnsiString S);
extern PACKAGE AnsiString __fastcall DomainName(const AnsiString AHost);
extern PACKAGE bool __fastcall IsFQDN(const AnsiString S);
extern PACKAGE AnsiString __fastcall ProcessPath(const AnsiString ABasePath, const AnsiString APath, const AnsiString APathDelim = "/");
extern PACKAGE AnsiString __fastcall EnsureMsgIDBrackets(const AnsiString AMsgID);
extern PACKAGE __int64 __fastcall GetClockValue(void);
extern PACKAGE unsigned __fastcall ROL(unsigned AVal, Byte AShift);
extern PACKAGE unsigned __fastcall ROR(unsigned AVal, Byte AShift);
extern PACKAGE AnsiString __fastcall IndyComputerName();
extern PACKAGE bool __fastcall IsLeadChar(char ACh);
extern PACKAGE Idcharsets::TIdCharSet __fastcall IdGetDefaultCharSet(void);
extern PACKAGE AnsiString __fastcall RemoveHeaderEntry(AnsiString AHeader, AnsiString AEntry);

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

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