紧急求救!!(关于SAFEARRAY 和 ADO MD)
Ausun 2000-03-25 01:09:00 最近编程用到M$的ADO MD控件,将他Import到一个library中后,系统生成了一个头文件,包含了ADO MD中各组件的定义,其中CellSet的Item函数的定义是这样的:
virtual HRESULT STDMETHODCALLTYPE get_Item(LPSAFEARRAY* idx/*[in]*/,
Adomd_tlb::Cell** ppvObject/*[out,retval]*/) = 0; // [0]
不知道参数idx该怎样生成,我用了以下的方法,却返回错误(0x80020009)。
Adomd_tlb::Cell* cell;
LPSAFEARRAY psa;
SAFEARRAYBOUND sab[1];
sab[0].lLbound = 0;
sab[0].cElements = 1;
psa = SafeArrayCreate(VT_VARIANT, 1, sab); // VT_I4也用过,结果相同
TVariant data[1] = {0}; // get the 1st item
long ix[1] = {0};
HRESULT h = SafeArrayPutElement(psa, ix, data); // returns 0
h = m_pCellset->get_Item(&sa, &cell); // returns 0x80020009
那位大侠知道请速告知,谢谢!
急!!!