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

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

#ifndef WebscriptasHPP
#define WebscriptasHPP

#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 <Classes.hpp>	// Pascal unit
#include <Contnrs.hpp>	// Pascal unit
#include <Httpapp.hpp>	// Pascal unit
#include <Httpprod.hpp>	// Pascal unit
#include <Ascrlib.hpp>	// Pascal unit
#include <Activex.hpp>	// Pascal unit
#include <Sitecomp.hpp>	// Pascal unit
#include <Webauto.hpp>	// Pascal unit
#include <Webcntxt.hpp>	// Pascal unit
#include <Webscript.hpp>	// Pascal unit
#include <Websnapobjs.hpp>	// Pascal unit

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

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


class DELPHICLASS ECannotCreateScriptEngine;
class PASCALIMPLEMENTATION ECannotCreateScriptEngine : public EActiveScriptError 
{
	typedef EActiveScriptError inherited;
	
private:
	AnsiString FProgID;
	HRESULT FHR;
	
public:
	__fastcall ECannotCreateScriptEngine(const AnsiString AProgID, HRESULT AHR);
	__property AnsiString ProgID = {read=FProgID};
	__property HRESULT HR = {read=FHR, nodefault};
public:
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall ECannotCreateScriptEngine(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size) : EActiveScriptError(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall ECannotCreateScriptEngine(int Ident)/* overload */ : EActiveScriptError(Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall ECannotCreateScriptEngine(int Ident, System::TVarRec const * Args, const int Args_Size)/* overload */ : EActiveScriptError(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall ECannotCreateScriptEngine(const AnsiString Msg, int AHelpContext) : EActiveScriptError(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall ECannotCreateScriptEngine(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size, int AHelpContext) : EActiveScriptError(Msg, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall ECannotCreateScriptEngine(int Ident, int AHelpContext)/* overload */ : EActiveScriptError(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall ECannotCreateScriptEngine(System::PResStringRec ResStringRec, System::TVarRec const * Args, const int Args_Size, int AHelpContext)/* overload */ : EActiveScriptError(ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~ECannotCreateScriptEngine(void) { }
	#pragma option pop
	
};


class DELPHICLASS TActiveScriptGlobalObjects;
class PASCALIMPLEMENTATION TActiveScriptGlobalObjects : public Webscript::TScriptGlobalObjects 
{
	typedef Webscript::TScriptGlobalObjects inherited;
	
protected:
	virtual Webscript::TAbstractScriptEngine* __fastcall GetScriptEngine(void);
public:
	#pragma option push -w-inl
	/* TScriptGlobalObjects.Create */ inline __fastcall TActiveScriptGlobalObjects(Httpprod::_di_IScriptProducer AProducer) : Webscript::TScriptGlobalObjects(AProducer) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TScriptGlobalObjects.Destroy */ inline __fastcall virtual ~TActiveScriptGlobalObjects(void) { }
	#pragma option pop
	
};


class DELPHICLASS TActiveScriptSite;
class PASCALIMPLEMENTATION TActiveScriptSite : public System::TInterfacedObject 
{
	typedef System::TInterfacedObject inherited;
	
private:
	TActiveScriptGlobalObjects* FGlobalObjects;
	
protected:
	HRESULT __stdcall GetLCID(/* out */ unsigned &plcid);
	HRESULT __stdcall GetItemInfo(WideChar * pstrName, unsigned dwReturnMask, /* out */ System::_di_IInterface &ppiunkItem, /* out */ System::_di_IInterface &ppti);
	HRESULT __stdcall GetDocVersionString(/* out */ WideString &pbstrVersion);
	HRESULT __stdcall OnScriptTerminate(OleVariant &pvarResult, tagEXCEPINFO &pexcepinfo);
	HRESULT __stdcall OnStateChange(Activex::TOleEnum ssScriptState);
	HRESULT __stdcall OnScriptError(const Ascrlib::_di_IActiveScriptError pscripterror);
	HRESULT __stdcall OnEnterScript(void);
	HRESULT __stdcall OnLeaveScript(void);
	__property TActiveScriptGlobalObjects* GlobalObjects = {read=FGlobalObjects};
	
public:
	virtual void __fastcall RunExpression(Webscript::TScriptFile* AScriptFile, System::_di_IInterface AEngine);
	__fastcall TActiveScriptSite(Httpprod::_di_IScriptProducer AProducer);
	__fastcall virtual ~TActiveScriptSite(void);
private:
	void *__IActiveScriptSite;	/* Ascrlib::IActiveScriptSite */
	
public:
	operator IActiveScriptSite*(void) { return (IActiveScriptSite*)&__IActiveScriptSite; }
	
};


class DELPHICLASS TActiveScriptError;
class PASCALIMPLEMENTATION TActiveScriptError : public Webscript::TScriptError 
{
	typedef Webscript::TScriptError inherited;
	
public:
	__fastcall TActiveScriptError(const Ascrlib::_di_IActiveScriptError ScriptError, Webscript::TLineNumberMap* ALineNumberMap)/* overload */;
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TActiveScriptError(void) { }
	#pragma option pop
	
};


class DELPHICLASS TActiveScriptProducer;
class PASCALIMPLEMENTATION TActiveScriptProducer : public Webscript::TScriptProducer 
{
	typedef Webscript::TScriptProducer inherited;
	
protected:
	virtual AnsiString __fastcall EvaluateExpression(Webscript::TScriptFile* AScriptFile);
	virtual HRESULT __fastcall ImplHandleScriptError(const System::_di_IInterface ScriptError);
public:
	#pragma option push -w-inl
	/* TScriptProducer.Create */ inline __fastcall virtual TActiveScriptProducer(System::TObject* AWebModuleContext, bool AStripParamQuotes, Httpprod::THandleTagProc AHandleTag, const AnsiString AScriptEngine, Httpprod::_di_ILocateFileService ALocateFileService) : Webscript::TScriptProducer(AWebModuleContext, AStripParamQuotes, AHandleTag, AScriptEngine, ALocateFileService) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TScriptProducer.Destroy */ inline __fastcall virtual ~TActiveScriptProducer(void) { }
	#pragma option pop
	
};


typedef TMetaClass* TActiveScriptSiteClass;

class DELPHICLASS TActiveScriptEngine;
class PASCALIMPLEMENTATION TActiveScriptEngine : public Webscript::TAbstractScriptEngine 
{
	typedef Webscript::TAbstractScriptEngine inherited;
	
private:
	TMetaClass* FScriptSiteClass;
	
public:
	__fastcall TActiveScriptEngine(void);
	virtual bool __fastcall SupportsLanguage(const AnsiString AName);
	virtual void __fastcall ListLanguageNames(Classes::TStrings* ANames);
	__property TMetaClass* ScriptSiteClass = {read=FScriptSiteClass, write=FScriptSiteClass};
public:
	#pragma option push -w-inl
	/* TAbstractScriptEngine.Destroy */ inline __fastcall virtual ~TActiveScriptEngine(void) { }
	#pragma option pop
	
};


class DELPHICLASS TActiveScriptObjectFactory;
class PASCALIMPLEMENTATION TActiveScriptObjectFactory : public Webscript::TAbstractScriptObjectFactory 
{
	typedef Webscript::TAbstractScriptObjectFactory inherited;
	
protected:
	virtual Webscript::TAbstractScriptEngine* __fastcall GetScriptEngine(void);
	virtual System::_di_IInterface __fastcall CreateProducerObject(Webscript::TGlobalScriptVariables AVariable, Httpprod::_di_IScriptProducer AProducer);
	virtual System::_di_IInterface __fastcall CreateComponentObject(System::TObject* AComponent, TMetaClass* AClassKey);
	virtual void __fastcall AddGlobalObjects(Webscript::TScriptGlobalObjects* AScriptGlobalObjects);
	
public:
	virtual System::_di_IInterface __fastcall CreateGlobalObject(Webscript::TGlobalScriptVariables AVariable, Httpprod::_di_IScriptContext AContext);
	__fastcall TActiveScriptObjectFactory(void);
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TActiveScriptObjectFactory(void) { }
	#pragma option pop
	
};


class DELPHICLASS TAbstractActiveScriptLanguages;
class PASCALIMPLEMENTATION TAbstractActiveScriptLanguages : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	virtual Classes::TStrings* __fastcall List(void) = 0 ;
	__fastcall virtual TAbstractActiveScriptLanguages(void);
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TAbstractActiveScriptLanguages(void) { }
	#pragma option pop
	
};


typedef TMetaClass* TActiveScriptLanguagesClass;

//-- var, const, procedure ---------------------------------------------------
extern PACKAGE TActiveScriptEngine* ActiveScriptEngine;
extern PACKAGE TMetaClass* ActiveScriptLanguagesClass;
#define sActiveScriptEngine "ActiveScript"

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

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