// ************************************************************************ //
// WARNING                                                                    
// -------                                                                    
// The types declared in this file were generated from data read from a       
// Type Library. If this type library is explicitly or indirectly (via        
// another type library referring to this type library) re-imported, or the   
// 'Refresh' command of the Type Library Editor activated while editing the   
// Type Library, the contents of this file will be regenerated and all        
// manual modifications will be lost.                                         
// ************************************************************************ //

// C++ TLBWRTR : $Revision:   1.134.1.39  $
// File generated on 28/02/01 17:27:14 from Type Library described below.

// ************************************************************************ //
// Type Lib: C:\Program Files\Euresys\MultiCam for Picolo\ActiveX\EPicoloACL.dll (1)
// IID\LCID: {0A8ABF70-7A27-11D3-89F7-0050042A3D34}\0
// Helpfile: 
// DepndLst: 
//   (1) v2.0 stdole, (C:\WINNT\System32\STDOLE2.TLB)
//   (2) v4.0 StdVCL, (C:\WINNT\System32\STDVCL40.DLL)
// ************************************************************************ //
#ifndef   __EPICOLOACLLib_OCX_h__
#define   __EPICOLOACLLib_OCX_h__

#pragma option push -b -w-inl

#include <utilcls.h>
#if !defined(__UTILCLS_H_VERSION) || (__UTILCLS_H_VERSION < 0x0500)
//
// The code generated by the TLIBIMP utility or the Import|TypeLibrary 
// and Import|ActiveX feature of C++Builder rely on specific versions of
// the header file UTILCLS.H found in the INCLUDE\VCL directory. If an 
// older version of the file is detected, you probably need an update/patch.
//
#error "This file requires a newer version of the header UTILCLS.H" \
       "You need to apply an update/patch to your copy of C++Builder"
#endif
#include <olectl.h>
#include <ocidl.h>
#if !defined(_NO_VCL)
#include <stdvcl.hpp>
#endif  //   _NO_VCL
#include <ocxproxy.h>

#include "EPICOLOACLLib_TLB.h"
namespace Epicoloacllib_tlb
{

// *********************************************************************//
// HelpString: EureCard Picolo ActiveX Control Library
// Version:    3.3
// *********************************************************************//


// *********************************************************************//
// COM Component Proxy Class Declaration
// Component Name   : TECameraPicolo
// Help String      : ECameraPicolo Class
// Default Interface: IECameraPicolo
// Def. Intf. Object: TCOMIECameraPicolo
// Def. Intf. DISP? : No
// Event   Interface: _IECameraPicoloEvents
// TypeFlags        : (2) CanCreate
// *********************************************************************//

// *********************************************************************//
// Definition of closures to allow VCL handlers to catch OCX events.      
// *********************************************************************//
typedef void __fastcall (__closure * TECameraPicoloSurfaceAvailable)(System::TObject * Sender, 
                                                                     long SurfaceHandle/*[in]*/, 
                                                                     long Data/*[in]*/, 
                                                                     long Flags/*[in]*/, 
                                                                     long TimeCode/*[in]*/, 
                                                                     long ExtendedStatus/*[in]*/);
typedef void __fastcall (__closure * TECameraPicoloError)(System::TObject * Sender, 
                                                          long SurfaceHandle/*[in]*/, 
                                                          Epicoloacllib_tlb::enumECameraError ErrorCode/*[in]*/, 
                                                          long Data/*[in]*/, long Flags/*[in]*/, 
                                                          long TimeCode/*[in]*/, 
                                                          long ExtendedStatus/*[in]*/);
//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
// Proxy class to host ECameraPicolo Class in CBuilder IDE/Applications.
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
class PACKAGE TECameraPicolo : public TOleControl
{
  OVERLOADED_PROP_METHODS;
  static TNoParam  OptParam;
  static GUID      DEF_CTL_INTF;

  // Instance of Closures to expose OCX Events as VCL ones
  //
  TECameraPicoloSurfaceAvailable FOnSurfaceAvailable;
  TECameraPicoloError            FOnError;

  // Default Interace of OCX
  //
  TCOMIECameraPicolo m_OCXIntf;

  // VCL Property Getters/Setters which delegate to OCX
  //

  // Static variables used by all instances of OCX proxy
  //
  static int          EventDispIDs[2];
  static TControlData CControlData;
  static GUID         CTL_DEF_INTF;

  // Method providing access to interface as __property 
  //
  TCOMIECameraPicolo __fastcall GetDefaultInterface();
  TCOMIECameraPicolo __fastcall GetControlInterface()
  { return GetDefaultInterface(); }

protected:
  void     __fastcall CreateControl  ();
  void     __fastcall InitControlData();

public:
  virtual  __fastcall TECameraPicolo(TComponent* AOwner) : TOleControl(AOwner)
  {};
  virtual  __fastcall TECameraPicolo(HWND        Parent) : TOleControl(Parent)
  {};

  // OCX methods
  //
  void            __fastcall AddDisplay(LPDISPATCH EDisplayObject/*[in]*/);
  long            __fastcall CreateVisionSurface(LPDISPATCH EImageName/*[in]*/);
  void            __fastcall Grab(void);
  void            __fastcall Live(void);
  void            __fastcall Stop(void);
  void            __fastcall RemoveDisplay(LPDISPATCH EDisplayName/*[in]*/);
  long            __fastcall CreateNewSurface(long Pointer/*[in]*/, long ImageWidth/*[in]*/, 
                                              long ImageHeight/*[in]*/, long ImagePitch/*[in]*/);
  void            __fastcall AddSurface(long SurfaceHandle/*[in]*/);
  void            __fastcall SetExpParameter(Epicoloacllib_tlb::enumExpParam ExpParameter/*[in]*/, 
                                             long ParameterValue/*[in]*/);
  void            __fastcall SetExpParameterStr(Epicoloacllib_tlb::enumExpParamStr ExpParameter/*[in]*/, 
                                                BSTR ParameterValue/*[in]*/);
  long            __fastcall GetExpParameter(Epicoloacllib_tlb::enumExpParam ExpParameter/*[in]*/);
  BSTR            __fastcall GetExpParameterStr(Epicoloacllib_tlb::enumExpParamStr ExpParameter/*[in]*/);

  // OCX properties
  //
  __property float PixelHue={ read=GetSingleProp, write=SetSingleProp, index=26 };
  __property int lPixelGain={ read=GetIntegerProp, write=SetIntegerProp, index=22 };
  __property int lPixelOffset={ read=GetIntegerProp, write=SetIntegerProp, index=23 };
  __property int lPixelUGain={ read=GetIntegerProp, write=SetIntegerProp, index=24 };
  __property int lPixelVGain={ read=GetIntegerProp, write=SetIntegerProp, index=25 };
  __property int lPixelHue={ read=GetIntegerProp, write=SetIntegerProp, index=27 };
  __property int lPixelNtscHue={ read=GetIntegerProp, write=SetIntegerProp, index=46 };
  __property int lImageScaleX={ read=GetIntegerProp, write=SetIntegerProp, index=29 };
  __property int lImageScaleY={ read=GetIntegerProp, write=SetIntegerProp, index=31 };
  __property TCOMIECameraPicolo ControlInterface={ read=GetDefaultInterface };

  // Published properties
  //
__published:

  // Standard/Extended properties
  //

  // OCX properties
  //
  __property System::WideString BoardId={ read=GetWideStringProp, write=SetWideStringProp, stored=false, index=16 };
  __property int VideoSource={ read=GetIntegerProp, write=SetIntegerProp, stored=false, index=20 };
  __property Activex::TOleEnum Standard={ read=GetTOleEnumProp, write=SetTOleEnumProp, stored=false, index=14 };
  __property Activex::TOleEnum ColorFormat={ read=GetTOleEnumProp, write=SetTOleEnumProp, stored=false, index=19 };
  __property float PixelGain={ read=GetSingleProp, write=SetSingleProp, stored=false, index=12 };
  __property float PixelOffset={ read=GetSingleProp, write=SetSingleProp, stored=false, index=13 };
  __property float PixelUGain={ read=GetSingleProp, write=SetSingleProp, stored=false, index=18 };
  __property float PixelVGain={ read=GetSingleProp, write=SetSingleProp, stored=false, index=21 };
  __property float PixelNtscHue={ read=GetSingleProp, write=SetSingleProp, stored=false, index=47 };
  __property int ImageSizeX={ read=GetIntegerProp, write=SetIntegerProp, stored=false, index=15 };
  __property int ImageSizeY={ read=GetIntegerProp, write=SetIntegerProp, stored=false, index=17 };
  __property float ImageScaleX={ read=GetSingleProp, write=SetSingleProp, stored=false, index=28 };
  __property float ImageScaleY={ read=GetSingleProp, write=SetSingleProp, stored=false, index=30 };
  __property int ImageOffsetX={ read=GetIntegerProp, write=SetIntegerProp, stored=false, index=32 };
  __property int ImageOffsetY={ read=GetIntegerProp, write=SetIntegerProp, stored=false, index=33 };
  __property bool ImageFlipY={ read=GetWordBoolProp, write=SetWordBoolProp, stored=false, index=38 };
  __property Activex::TOleEnum FieldMode={ read=GetTOleEnumProp, write=SetTOleEnumProp, stored=false, index=39 };
  __property Activex::TOleEnum GrabSync={ read=GetTOleEnumProp, write=SetTOleEnumProp, stored=false, index=35 };
  __property Activex::TOleEnum ColorTrap={ read=GetTOleEnumProp, write=SetTOleEnumProp, stored=false, index=36 };
  __property Activex::TOleEnum Coring={ read=GetTOleEnumProp, write=SetTOleEnumProp, stored=false, index=37 };
  __property Activex::TOleEnum GammaCorrection={ read=GetTOleEnumProp, write=SetTOleEnumProp, stored=false, index=40 };
  __property Activex::TOleEnum TriggerMask={ read=GetTOleEnumProp, write=SetTOleEnumProp, stored=false, index=41 };
  __property Activex::TOleEnum TriggerMode={ read=GetTOleEnumProp, write=SetTOleEnumProp, stored=false, index=42 };
  __property int AcquisitionPause={ read=GetIntegerProp, write=SetIntegerProp, stored=false, index=43 };
  __property Activex::TOleEnum AcquisitionTrigger={ read=GetTOleEnumProp, write=SetTOleEnumProp, stored=false, index=44 };
  __property int RepeatGrabCount={ read=GetIntegerProp, write=SetIntegerProp, stored=false, index=45 };

  // OCX Events
  //
  __property TECameraPicoloSurfaceAvailable OnSurfaceAvailable={ read=FOnSurfaceAvailable, write=FOnSurfaceAvailable };
  __property TECameraPicoloError OnError={ read=FOnError, write=FOnError };
};
typedef TECameraPicolo  TECameraPicoloProxy;


// *********************************************************************//
// COM Component Proxy Class Declaration
// Component Name   : TEConfigPicolo
// Help String      : EConfigPicolo Class
// Default Interface: IEConfigPicolo
// Def. Intf. Object: TCOMIEConfigPicolo
// Def. Intf. DISP? : No
// Event   Interface: _IEConfigPicoloEvents
// TypeFlags        : (2) CanCreate
// *********************************************************************//

// *********************************************************************//
// Definition of closures to allow VCL handlers to catch OCX events.      
// *********************************************************************//
//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
// Proxy class to host EConfigPicolo Class in CBuilder IDE/Applications.
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
class PACKAGE TEConfigPicolo : public TOleControl
{
  OVERLOADED_PROP_METHODS;
  static TNoParam  OptParam;
  static GUID      DEF_CTL_INTF;

  // Instance of Closures to expose OCX Events as VCL ones
  //

  // Default Interace of OCX
  //
  TCOMIEConfigPicolo m_OCXIntf;

  // VCL Property Getters/Setters which delegate to OCX
  //
  BSTR            __fastcall Get_BoardName(long Index/*[in]*/);
  long            __fastcall Get_SerialNumber(long Index/*[in]*/);
  Epicoloacllib_tlb::enumBoardType __fastcall Get_BoardType(long Index/*[in]*/);
  long            __fastcall Get_PciPosition(long Index/*[in]*/);
  long            __fastcall Get_SourceCount(long Index/*[in]*/);
  Epicoloacllib_tlb::enumWatchDogSetting __fastcall Get_WatchDogSetting(long Index/*[in]*/);
  void            __fastcall Set_WatchDogSetting(long Index/*[in]*/, 
                                                 Epicoloacllib_tlb::enumWatchDogSetting pVal/*[in]*/);
  long            __fastcall Get_SerialLineSettings(long Index/*[in]*/);
  void            __fastcall Set_SerialLineSettings(long Index/*[in]*/, long pVal/*[in]*/);

  // Static variables used by all instances of OCX proxy
  //
  static TControlData CControlData;
  static GUID         CTL_DEF_INTF;

  // Method providing access to interface as __property 
  //
  TCOMIEConfigPicolo __fastcall GetDefaultInterface();
  TCOMIEConfigPicolo __fastcall GetControlInterface()
  { return GetDefaultInterface(); }

protected:
  void     __fastcall CreateControl  ();
  void     __fastcall InitControlData();

public:
  virtual  __fastcall TEConfigPicolo(TComponent* AOwner) : TOleControl(AOwner)
  {};
  virtual  __fastcall TEConfigPicolo(HWND        Parent) : TOleControl(Parent)
  {};

  // OCX methods
  //
  void            __fastcall SetBoardName(long Index/*[in]*/, BSTR BoardName/*[in]*/);
  void            __fastcall SetOemKey(long BoardId/*[in]*/, TVariantInParam Key/*[in]*/);
  TOLEBOOL        __fastcall CheckOemKey(long BoardId/*[in]*/, TVariantInParam Key/*[in]*/);
  void            __fastcall ResetWatchDogTimer(long Index/*[in]*/);
  TVariant        __fastcall SerialLineGetChar(long Index/*[in]*/);
  void            __fastcall SerialLinePutChar(long Index/*[in]*/, TVariantInParam Data/*[in]*/);

  // OCX properties
  //
  __property int BoardCount={ read=GetIntegerProp, index=1 };
  __property BSTR BoardName[long Index]={ read=Get_BoardName };
  __property long SerialNumber[long Index]={ read=Get_SerialNumber };
  __property Epicoloacllib_tlb::enumBoardType BoardType[long Index]={ read=Get_BoardType };
  __property long PciPosition[long Index]={ read=Get_PciPosition };
  __property long SourceCount[long Index]={ read=Get_SourceCount };
  __property Epicoloacllib_tlb::enumWatchDogSetting WatchDogSetting[long Index]={ read=Get_WatchDogSetting, write=Set_WatchDogSetting };
  __property long SerialLineSettings[long Index]={ read=Get_SerialLineSettings, write=Set_SerialLineSettings };
  __property TCOMIEConfigPicolo ControlInterface={ read=GetDefaultInterface };

  // Published properties
  //
__published:

  // Standard/Extended properties
  //

  // OCX properties
  //

  // OCX Events
  //
};
typedef TEConfigPicolo  TEConfigPicoloProxy;

};     // namespace Epicoloacllib_tlb

#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using  namespace Epicoloacllib_tlb;
#endif

#pragma option pop

#endif // __EPICOLOACLLib_OCX_h__
