在vc中 怎么将CString 组织成 数据集 然后转化成OleVariant类型

在vc中 如何将CString 组织成 数据集 然后转化成OleVariant类型
RisInfo.dll是用delphi写的Com接口 dll
接口方法
1.取数据
RetrieveInfo

2.上传取出后数据处理的结果
PublishResult

开发环境vc6.0

已经将RisInfo.dll注册,RetrieveInfo调用成功
另一个方法如下
inline long IFOO::PublishResult ( long ID, const _variant_t & Info, const _variant_t & Result, long PutID) {
  long _result;
  HRESULT _hr = raw_PublishResult(ID, Info, Result, PutID, &_result);
  if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
  return _result;
}


Info的结构 如下:数据类型都为数据集,内部字段数据类型都为字符串

Info[0] = "姓名";
Info[1] = "性别";
...


问题如下
1.如何在VC中,将一个多个处理结果(CString)组织成数据集,转换成OleVariant类型??
  ,传递到PublishResult ( long ID, const _variant_t & Info, const _variant_t & Result, long PutID)
请给出实例代码






------解决方案--------------------
用 SafeArray参考下面的
http://www.cppblog.com/kenlistian/archive/2008/02/13/42695.html
------解决方案--------------------
COleVariant类中就有CString转换成COleVariant的方法,
class COleVariant : public tagVARIANT
{
// Constructors
public:
COleVariant();

COleVariant(const VARIANT& varSrc);
COleVariant(LPCVARIANT pSrc);
COleVariant(const COleVariant& varSrc);

COleVariant(LPCTSTR lpszSrc);
COleVariant(LPCTSTR lpszSrc, VARTYPE vtSrc); // used to set to ANSI string
COleVariant(CString& strSrc);
}
可以这样转
CString strTemp;
strTemp = "abc";
COleVariant cole = COleVariant(strTemp);
即可呀!
看看COleVariant这个类就知道了。
------解决方案--------------------
在组件中,数组一般用 SafeArray