qq免费靓号申请注册:请教SafeArrayGetElement的用法

来源:百度文库 编辑:高校问答 时间:2024/03/28 23:07:44
请教SafeArrayGetElement的用:
在VC调用外部COM组件时,如何从COM组件中取出数据?主要是函数SafeArrayGetElement怎么用?请大侠帮帮忙吧!!小弟谢谢了!!

Example
STDMETHODIMP CEnumPoint::Next(
ULONG celt,
VARIANT FAR rgvar[],
ULONG * pceltFetched)
{
unsigned int i;
long ix;
HRESULT hresult;

for(i = 0; i < celt; ++i)
VariantInit(&rgvar[i]);

for(i = 0; i < celt; ++i){
if(m_iCurrent == m_celts){
hresult = ReportResult(0, S_FALSE, 0, 0);
goto LDone;
}

ix = m_iCurrent++;
hresult = SafeArrayGetElement(m_psa, &ix, &rgvar[i]);
if(FAILED(hresult))
goto LError0;
}
hresult = NOERROR;

LDone:;
*pceltFetched = i;
return hresult;

LError0:;
for(i = 0; i < celt; ++i)
VariantClear(&rgvar[i]);
return hresult;
}