在VC中定义有如下两个接口:
long CQueueMgr::InitQueue(long lTimeOut, const VARIANT FAR& vsaConnStr, const VARIANT FAR& vsaUserName, const VARIANT FAR& vsaPassword) STDMETHOD(LoadAgentList)(/*[in]*/int iMaxNum,
/*[out]*/SAFEARRAY **ppAgentIDs, /*[out]*/SAFEARRAY **ppExtensions,
 /*[out]*/SAFEARRAY **ppDeviceIDs, /*[out]*/SAFEARRAY **ppClientIDs,
 /*[out]*/SAFEARRAY **ppPasswords, /*[out]*/SAFEARRAY **ppSignatures);在Delphi中Import后,生成如下两个接口的定义
function  TQueueMgr.InitQueue(lTimeOut: Integer; 
     vsaConnStr: OleVariant; vsaUserName: OleVariant;
     vsaPassword: OleVariant): Integer;
procedure TDBMgr.LoadAgentList(iMaxNum: SYSINT;
      out ppAgentIDs: PSafeArray; out ppExtensions: PSafeArray;
      out ppDeviceIDs: PSafeArray; out ppClientIDs: PSafeArray;
      out ppPasswords: PSafeArray; out ppSignatures: PSafeArray);请问应如何使用这两个接口,
我在调用InitQueue()时,尝试强制类型转换,一调用就出错,根本还没有执行到InitQueue()内部
var
  vsaConfigStr:array[0..2]of VARIANT;
begin
  vsaConfigStr[0]:=OleVARIANT('Provider=SQLOLEDB;Data Source=128.1.1.190;Initial Catalog=BMB');
  vsaConfigStr[1]:=OleVARIANT('sa');
  vsaConfigStr[2]:=OleVARIANT('');
  QueueMgr1.InitQueue(0,vsaConfigStr[0],vsaConfigStr[1],vsaConfigStr[2]);
end;我使用下面的方法调用LoadAgentList(),可调用成功,但不知是否取到了相应的值,也不知该如何将取到的值转换成普通的字符串。
var
   ppAgentIDs,ppExtensions,ppDeviceIDs,ppClientIDs:PSafeArray;
   ppPasswords,ppSignatures:PSafeArray;
begin
  DBMgr.LoadAgentList(10,ppAgentIDs,ppExtensions,ppDeviceIDs,
                      ppClientIDs,ppPasswords,ppSignatures);
end;
请COM高手多多指点,在此表示万分感谢!!