如下的c++代码在delphi中怎么声明和传递

如下的c++代码在delphi中如何声明和传递?
struct CapInfoStruct  
  {  
  UCHAR *Buffer; // 用户分配,用于返回原始数据8bit 
  ULONG Height; // 采集高度  
  ULONG Width; // 采集宽度  
  ULONG OffsetX; // 水平偏移  
  ULONG OffsetY; // 垂直偏移  
  ULONG Exposure; // 曝光值  
  UCHAR Gain[3]; // R G B 增益 1-63  
  };  
   
  HQDL_API  
  HqDLInitialize( IN LPCTSTR pFilterName,  
  OUT int *pIndex,  
  IN CapInfoStruct *pCapInfo,  
  OUT HANDLE *hCamera  
  ); 

再提供点调用情况: memset( &m_CamFeature, 0, sizeof( CAMFEATURE ) ); 

m_pRawData = NULL; 
m_pRawData = ( BYTE* ) new BYTE [ MAXWIDTH * MAXHEIGHT + 512 ]; 
m_pRgbData = NULL; 
m_pRgbData = ( BYTE* ) new BYTE [ MAXWIDTH * MAXHEIGHT * 3 ]; 
memset( &m_CapInfo, 0, sizeof( CapInfoStruct ) ); 
m_CapInfo.Buffer = m_pRawData; 
m_CapInfo.Width = 2048; 
m_CapInfo.Height = 1536; 
m_CapInfo.Exposure = 60; 
memset( m_CapInfo.Gain, 44, 3 ); 

m_comboSize.SetCurSel( 2 ); 
m_comboColor.SetCurSel( 0 ); 

int nIndex; 
ResSuccess = HqDLInitialize(_T("DLC"), &nIndex, &m_CapInfo, &m_hDevice ); 
怎么转化为Delphi代码

------解决方案--------------------
那就把声明里的参数转定义成指针,把函数声明定义成类型可以了
type
 HqDLInitialize = function (...):...;

PHqDLInitialize = ^HqDLInitialize; 

然后不用实现了,直接加载dll,用PHqDLInitialize类型的变量取到函数地址后直接执行应该可以的了.