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

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

#ifndef ReqimplHPP
#define ReqimplHPP

#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 <Messages.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Httpapp.hpp>	// Pascal unit
#include <Weblib.hpp>	// Pascal unit
#include <Comobj.hpp>	// Pascal unit

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

namespace Reqimpl
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TWebRequestImpl;
class PASCALIMPLEMENTATION TWebRequestImpl : public System::TInterfacedObject 
{
	typedef System::TInterfacedObject inherited;
	
private:
	Httpapp::TWebRequest* FWebRequest;
	Httpapp::TWebResponse* FWebResponse;
	bool FUsingStub;
	
public:
	__fastcall TWebRequestImpl(Httpapp::TWebRequest* AWebRequest, Httpapp::TWebResponse* AWebResponse, bool AUsingStub);
	HRESULT __safecall GetFieldByName(const WideString Name, WideString &GetFieldByName_result);
	HRESULT __safecall ReadClient(OleVariant &ABuffer, int ACount, int &ReadClient_result);
	HRESULT __safecall ReadString(OleVariant &ABuffer, int ACount, int &ReadString_result);
	HRESULT __safecall TranslateURI(const WideString Value, WideString &TranslateURI_result);
	HRESULT __safecall WriteClient(const OleVariant Buffer, int &WriteClient_result);
	HRESULT __safecall GetStringVariable(int Index, OleVariant &GetStringVariable_result);
	HRESULT __safecall WriteHeaders(int StatusCode, const OleVariant StatusText, const OleVariant Headers, Word &WriteHeaders_result);
	HRESULT __safecall UsingStub(Word &UsingStub_result);
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~TWebRequestImpl(void) { }
	#pragma option pop
	
private:
	void *__IWebRequest;	/* Weblib::IWebRequest */
	
public:
	operator IWebRequest*(void) { return (IWebRequest*)&__IWebRequest; }
	
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE bool __fastcall SearchForCoClass(Httpapp::TWebRequest* Request, AnsiString &ID, GUID &ClsID);
extern PACKAGE bool __fastcall FileNameToClassID(const AnsiString AFileName, GUID &AGuid);

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

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