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

// (DO NOT EDIT: machine generated header) 'wclWinUsb.pas' rev: 6.00

#ifndef wclWinUsbHPP
#define wclWinUsbHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <wclSync.hpp>	// Pascal unit
#include <wclErrors.hpp>	// Pascal unit
#include <wclWinAPI.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Wclwinusb
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TwclWinUsbDevice;
class PASCALIMPLEMENTATION TwclWinUsbDevice : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Wclsync::TwclCriticalSection* FCS;
	AnsiString FDevicePath;
	unsigned FDevHandle;
	unsigned FUsbHandle;
	bool __fastcall GetActive(void);
	
public:
	__fastcall virtual TwclWinUsbDevice(void);
	__fastcall virtual ~TwclWinUsbDevice(void);
	int __fastcall Close(void);
	int __fastcall Open(const AnsiString DevicePath);
	int __fastcall ConstrolTranser(const Byte RequestType, const Byte Request, const Word Value, const Word Index, const Word Length, const void * Data, /* out */ unsigned &Transferred);
	int __fastcall ReadPipe(const Byte PipeId, const void * Data, const unsigned Length, /* out */ unsigned &Received);
	__property bool Active = {read=GetActive, nodefault};
	__property AnsiString DevicePath = {read=FDevicePath};
};


//-- var, const, procedure ---------------------------------------------------

}	/* namespace Wclwinusb */
using namespace Wclwinusb;
#pragma option pop	// -w-
#pragma option pop	// -Vx

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