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

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

#ifndef IwkloochHPP
#define IwkloochHPP

#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

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

namespace Iwklooch
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TBorlandIDEType { itUnknown, itDelphi9Personal, itDelphi9Professional, itDelphi9Enterprise, itDelphi9Architect, itDelphi9ArchitectTrial, itDelphi10Enterprise, itDelphi10Architect, itDelphi10Professional, itDelphi10Personal, itDelphi10ArchitectTrial };
#pragma option pop

struct TRC4Data
{
	
public:
	Byte Key[256];
	Byte OrgKey[256];
} ;

#pragma option push -b-
enum TLicenseType { ltUnknown, ltEval, ltPersonal, ltDeveloper, ltEnterprise, ltPackagedEnterprise, ltPackagedPage, ltPackagedEnterpriseD9, ltPackagedPageD9, ltIntraWebStudio, ltPackagedEnterpriseD10, ltPackagedPageD10 };
#pragma option pop

#pragma option push -b-
enum TLicenseAbility { laSetPort, laBoundLocalhost, laCSDS, laUnlimitedConnections, laDaemon, laDSO, laISAPI, laPageMode, laService, laSSL, laKylix, laDynGrid, laDynChart, laProcessDispatch };
#pragma option pop

typedef Set<TLicenseAbility, laSetPort, laProcessDispatch>  TLicenseAbilities;

class DELPHICLASS TRC4;
class PASCALIMPLEMENTATION TRC4 : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	/*         class method */ static void __fastcall Burn(TMetaClass* vmt, TRC4Data &VData);
	/*         class method */ static void __fastcall Crypt(TMetaClass* vmt, TRC4Data &Data, void * InData, void * OutData, int Len);
	/*         class method */ static void __fastcall EncDec(TMetaClass* vmt, void * ABuffer, unsigned ABufferSize, void * AKey, unsigned ALen);
	/*         class method */ static void __fastcall Init(TMetaClass* vmt, TRC4Data &Data, void * Key, int Len);
	/*         class method */ static bool __fastcall SelfTest(TMetaClass* vmt);
public:
	#pragma option push -w-inl
	/* TObject.Create */ inline __fastcall TRC4(void) : System::TObject() { }
	#pragma option pop
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TRC4(void) { }
	#pragma option pop
	
};


class DELPHICLASS TIWLicense;
class PASCALIMPLEMENTATION TIWLicense : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	bool FA;
	AnsiString FAddress;
	TLicenseAbilities FAbilities;
	Classes::TStringList* FBannedList;
	System::TDateTime FBuildDate;
	AnsiString FCompany;
	int FCount;
	TLicenseType FType;
	bool FForceEval;
	bool FIsOldKey;
	AnsiString FRegisteredName;
	AnsiString FDeveloperName;
	int FSerialNo;
	Classes::TStringList* FThirdPartyText;
	AnsiString FIWLicenseKeys;
	Classes::TStrings* FBase;
	AnsiString __fastcall GetThirdPartyText();
	AnsiString __fastcall GetCompany();
	System::TDateTime __fastcall GetExpireDate(void);
	System::TDateTime __fastcall GetFGGRDDFDDAS(void);
	TLicenseType __fastcall GetLicense(void);
	AnsiString __fastcall GetLicenseString();
	AnsiString __fastcall GetRegisteredName();
	int __fastcall GetSerialNo(void);
	AnsiString __fastcall GetThirdPartyHTMLText();
	AnsiString __fastcall GetDeveloperName();
	AnsiString __fastcall GetEdition();
	AnsiString __fastcall GetRestrict();
	AnsiString __fastcall GetUp();
	AnsiString __fastcall Getup7();
	void __fastcall Reset(void);
	void __fastcall SetLicenseKey(AnsiString AKey);
	AnsiString __fastcall GetUp10();
	
public:
	bool __fastcall CanIDoThis(TLicenseAbility AAbility);
	__fastcall TIWLicense(void);
	__fastcall virtual ~TIWLicense(void);
	void __fastcall ThirdPartyHook(const AnsiString AText, bool AEval);
	AnsiString __fastcall SetSystemLocal();
	__property System::TDateTime BuildDateVal = {read=FBuildDate};
	__property AnsiString CompanyVal = {read=GetCompany};
	__property AnsiString EditionVal = {read=GetEdition};
	__property AnsiString DeveloperNameVal = {read=GetDeveloperName};
	__property System::TDateTime ExpireDateVal = {read=GetExpireDate};
	__property bool IsOldKeyVal = {read=FIsOldKey, nodefault};
	__property TLicenseType LicenseVal = {read=GetLicense, nodefault};
	__property AnsiString LicenseStringVal = {read=GetLicenseString};
	__property AnsiString LicenseKeyVal = {write=SetLicenseKey};
	__property AnsiString RegisteredNameVal = {read=GetRegisteredName};
	__property int SerialNoVal = {read=GetSerialNo, nodefault};
	__property AnsiString RestrictVal = {read=GetRestrict};
	__property AnsiString ThirdPartyTextVal = {read=GetThirdPartyText};
	__property AnsiString ThirdPartyHTMLTextVal = {read=GetThirdPartyHTMLText};
	__property System::TDateTime FGGRDDFDDASVal = {read=GetFGGRDDFDDAS};
	__property AnsiString UpVal = {read=GetUp};
	__property AnsiString Up7Val = {read=Getup7};
	__property AnsiString Up10Val = {read=GetUp10};
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE TIWLicense* GLicense;
extern PACKAGE AnsiString __fastcall GetDelphiID();
extern PACKAGE TBorlandIDEType __fastcall GetBorlandIDEType(void);

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

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