// ************************************************************************ //
// 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)
// ************************************************************************ //

#include <vcl.h>
#pragma hdrstop

#if defined(USING_ATL)
#include <atl\atlvcl.h>
#endif

#include "EPICOLOACLLib_OCX.h"

#if !defined(__PRAGMA_PACKAGE_SMART_INIT)
#define      __PRAGMA_PACKAGE_SMART_INIT
#pragma package(smart_init)
#endif

namespace Epicoloacllib_tlb
{



// *********************************************************************//
// OCX PROXY CLASS IMPLEMENTATION
// (The following variables/methods implement the class TECameraPicolo which
// allows "ECameraPicolo Class" to be hosted in CBuilder IDE/apps).
// *********************************************************************//
int   TECameraPicolo::EventDispIDs[2] = {
    0x00000001, 0x00000002};

TControlData TECameraPicolo::CControlData =
{
  // GUID of CoClass and Event Interface of Control
  {0x0A8ABF80, 0x7A27, 0x11D3,{ 0x89, 0xF7, 0x00, 0x50, 0x04, 0x2A, 0x3D, 0x34} }, // CoClass
  {0x0A8ABF81, 0x7A27, 0x11D3,{ 0x89, 0xF7, 0x00, 0x50, 0x04, 0x2A, 0x3D, 0x34} }, // Events

  // Count of Events and array of their DISPIDs
  2, &EventDispIDs,

  // Pointer to Runtime License string
  NULL,  // HRESULT(0x80040154)

  // Flags for OnChanged PropertyNotification
  0x00000000,
  300,// (IDE Version)

  // Count of Font Prop and array of their DISPIDs
  0, NULL,

  // Count of Pict Prop and array of their DISPIDs
  0, NULL,
  0, // Reserved
  0, // Instance count (used internally)
  0, // List of Enum descriptions (internal)
};

GUID     TECameraPicolo::DEF_CTL_INTF = {0x0A8ABF7F, 0x7A27, 0x11D3,{ 0x89, 0xF7, 0x00, 0x50, 0x04, 0x2A, 0x3D, 0x34} };
TNoParam TECameraPicolo::OptParam;

static inline void ValidCtrCheck(TECameraPicolo *)
{
   delete new TECameraPicolo((TComponent*)(0));
};

void __fastcall TECameraPicolo::InitControlData()
{
  ControlData = &CControlData;
};

void __fastcall TECameraPicolo::CreateControl()
{
  if (!m_OCXIntf)
  {
    _ASSERTE(DefaultDispatch);
    DefaultDispatch->QueryInterface(DEF_CTL_INTF, (LPVOID*)&m_OCXIntf);
  }
};

TCOMIECameraPicolo __fastcall TECameraPicolo::GetDefaultInterface()
{
  CreateControl();
  return m_OCXIntf;
};

void __fastcall TECameraPicolo::AddDisplay(LPDISPATCH EDisplayObject/*[in]*/)
{
  GetDefaultInterface()->AddDisplay(EDisplayObject/*[in]*/);
}

long __fastcall TECameraPicolo::CreateVisionSurface(LPDISPATCH EImageName/*[in]*/)
{
  return GetDefaultInterface()->CreateVisionSurface(EImageName/*[in]*/);
}

void __fastcall TECameraPicolo::Grab(void)
{
  GetDefaultInterface()->Grab();
}

void __fastcall TECameraPicolo::Live(void)
{
  GetDefaultInterface()->Live();
}

void __fastcall TECameraPicolo::Stop(void)
{
  GetDefaultInterface()->Stop();
}

void __fastcall TECameraPicolo::RemoveDisplay(LPDISPATCH EDisplayName/*[in]*/)
{
  GetDefaultInterface()->RemoveDisplay(EDisplayName/*[in]*/);
}

long __fastcall TECameraPicolo::CreateNewSurface(long Pointer/*[in]*/, long ImageWidth/*[in]*/, 
                                                 long ImageHeight/*[in]*/, long ImagePitch/*[in]*/)
{
  return GetDefaultInterface()->CreateNewSurface(Pointer/*[in]*/, ImageWidth/*[in]*/, 
                                                 ImageHeight/*[in]*/, ImagePitch/*[in]*/);
}

void __fastcall TECameraPicolo::AddSurface(long SurfaceHandle/*[in]*/)
{
  GetDefaultInterface()->AddSurface(SurfaceHandle/*[in]*/);
}

void __fastcall TECameraPicolo::SetExpParameter(Epicoloacllib_tlb::enumExpParam ExpParameter/*[in]*/, 
                                                long ParameterValue/*[in]*/)
{
  GetDefaultInterface()->SetExpParameter(ExpParameter/*[in]*/, ParameterValue/*[in]*/);
}

void __fastcall TECameraPicolo::SetExpParameterStr(Epicoloacllib_tlb::enumExpParamStr ExpParameter/*[in]*/, 
                                                   BSTR ParameterValue/*[in]*/)
{
  GetDefaultInterface()->SetExpParameterStr(ExpParameter/*[in]*/, ParameterValue/*[in]*/);
}

long __fastcall TECameraPicolo::GetExpParameter(Epicoloacllib_tlb::enumExpParam ExpParameter/*[in]*/)
{
  return GetDefaultInterface()->GetExpParameter(ExpParameter/*[in]*/);
}

BSTR __fastcall TECameraPicolo::GetExpParameterStr(Epicoloacllib_tlb::enumExpParamStr ExpParameter/*[in]*/)
{
  return GetDefaultInterface()->GetExpParameterStr(ExpParameter/*[in]*/);
}



// *********************************************************************//
// OCX PROXY CLASS IMPLEMENTATION
// (The following variables/methods implement the class TEConfigPicolo which
// allows "EConfigPicolo Class" to be hosted in CBuilder IDE/apps).
// *********************************************************************//
TControlData TEConfigPicolo::CControlData =
{
  // GUID of CoClass and Event Interface of Control
  {0x0A8ABF83, 0x7A27, 0x11D3,{ 0x89, 0xF7, 0x00, 0x50, 0x04, 0x2A, 0x3D, 0x34} }, // CoClass
  {0x0A8ABF84, 0x7A27, 0x11D3,{ 0x89, 0xF7, 0x00, 0x50, 0x04, 0x2A, 0x3D, 0x34} }, // Events

  // Count of Events and array of their DISPIDs
  0, NULL,

  // Pointer to Runtime License string
  NULL,  // HRESULT(0x80040154)

  // Flags for OnChanged PropertyNotification
  0x00000000,
  300,// (IDE Version)

  // Count of Font Prop and array of their DISPIDs
  0, NULL,

  // Count of Pict Prop and array of their DISPIDs
  0, NULL,
  0, // Reserved
  0, // Instance count (used internally)
  0, // List of Enum descriptions (internal)
};

GUID     TEConfigPicolo::DEF_CTL_INTF = {0x0A8ABF82, 0x7A27, 0x11D3,{ 0x89, 0xF7, 0x00, 0x50, 0x04, 0x2A, 0x3D, 0x34} };
TNoParam TEConfigPicolo::OptParam;

static inline void ValidCtrCheck(TEConfigPicolo *)
{
   delete new TEConfigPicolo((TComponent*)(0));
};

void __fastcall TEConfigPicolo::InitControlData()
{
  ControlData = &CControlData;
};

void __fastcall TEConfigPicolo::CreateControl()
{
  if (!m_OCXIntf)
  {
    _ASSERTE(DefaultDispatch);
    DefaultDispatch->QueryInterface(DEF_CTL_INTF, (LPVOID*)&m_OCXIntf);
  }
};

TCOMIEConfigPicolo __fastcall TEConfigPicolo::GetDefaultInterface()
{
  CreateControl();
  return m_OCXIntf;
};

void __fastcall TEConfigPicolo::SetBoardName(long Index/*[in]*/, BSTR BoardName/*[in]*/)
{
  GetDefaultInterface()->SetBoardName(Index/*[in]*/, BoardName/*[in]*/);
}

void __fastcall TEConfigPicolo::SetOemKey(long BoardId/*[in]*/, TVariantInParam Key/*[in]*/)
{
  GetDefaultInterface()->SetOemKey(BoardId/*[in]*/, Key/*[in]*/);
}

TOLEBOOL __fastcall TEConfigPicolo::CheckOemKey(long BoardId/*[in]*/, TVariantInParam Key/*[in]*/)
{
  return GetDefaultInterface()->CheckOemKey(BoardId/*[in]*/, Key/*[in]*/);
}

void __fastcall TEConfigPicolo::ResetWatchDogTimer(long Index/*[in]*/)
{
  GetDefaultInterface()->ResetWatchDogTimer(Index/*[in]*/);
}

TVariant __fastcall TEConfigPicolo::SerialLineGetChar(long Index/*[in]*/)
{
  return GetDefaultInterface()->SerialLineGetChar(Index/*[in]*/);
}

void __fastcall TEConfigPicolo::SerialLinePutChar(long Index/*[in]*/, TVariantInParam Data/*[in]*/)
{
  GetDefaultInterface()->SerialLinePutChar(Index/*[in]*/, Data/*[in]*/);
}

BSTR __fastcall TEConfigPicolo::Get_BoardName(long Index/*[in]*/)
{
  return GetDefaultInterface()->get_BoardName(Index/*[in]*/);
}

long __fastcall TEConfigPicolo::Get_SerialNumber(long Index/*[in]*/)
{
  return GetDefaultInterface()->get_SerialNumber(Index/*[in]*/);
}

Epicoloacllib_tlb::enumBoardType __fastcall TEConfigPicolo::Get_BoardType(long Index/*[in]*/)
{
  return GetDefaultInterface()->get_BoardType(Index/*[in]*/);
}

long __fastcall TEConfigPicolo::Get_PciPosition(long Index/*[in]*/)
{
  return GetDefaultInterface()->get_PciPosition(Index/*[in]*/);
}

long __fastcall TEConfigPicolo::Get_SourceCount(long Index/*[in]*/)
{
  return GetDefaultInterface()->get_SourceCount(Index/*[in]*/);
}

Epicoloacllib_tlb::enumWatchDogSetting __fastcall TEConfigPicolo::Get_WatchDogSetting(long Index/*[in]*/)
{
  return GetDefaultInterface()->get_WatchDogSetting(Index/*[in]*/);
}

void __fastcall TEConfigPicolo::Set_WatchDogSetting(long Index/*[in]*/, 
                                                    Epicoloacllib_tlb::enumWatchDogSetting pVal/*[in]*/)
{
  GetDefaultInterface()->set_WatchDogSetting(Index/*[in]*/, pVal/*[in]*/);
}

long __fastcall TEConfigPicolo::Get_SerialLineSettings(long Index/*[in]*/)
{
  return GetDefaultInterface()->get_SerialLineSettings(Index/*[in]*/);
}

void __fastcall TEConfigPicolo::Set_SerialLineSettings(long Index/*[in]*/, long pVal/*[in]*/)
{
  GetDefaultInterface()->set_SerialLineSettings(Index/*[in]*/, pVal/*[in]*/);
}


};     // namespace Epicoloacllib_tlb


// *********************************************************************//
// The Register function is invoked by the IDE when this module is 
// installed in a Package. It provides the list of Components (including
// OCXes) implemented by this module. The following implementation
// informs the IDE of the OCX proxy classes implemented here.
// *********************************************************************//
namespace Epicoloacllib_ocx
{

void __fastcall PACKAGE Register()
{
  // [2]
  TComponentClass cls_ocx[] = {
                              __classid(Epicoloacllib_tlb::TECameraPicolo), 
                              __classid(Epicoloacllib_tlb::TEConfigPicolo)
                           };
  RegisterComponents("ActiveX", cls_ocx,
                     sizeof(cls_ocx)/sizeof(cls_ocx[0])-1);
}

};     // namespace Epicoloacllib_ocx
