Hi,
I have developed one COM component using ATL .One of my interface method
returns Varaiant .Variant contains array of VT_BSTR packed using safearray.
How to read the safe array in vb.
VC++: GetParams(VARIANT *varTemp)
SAFEARRAY *psaAttribute;
SAFEARRAYBOUND aDim[1];
long lIndice;
BSTR bstrTemp;
aDim[0].cElements = 3;//no of coloums.
aDim[0].lLbound = 0;
psaAttribute =NULL;
psaAttribute = SafeArrayCreate(VT_VARIANT,1,aDim);
(bstrTemp) = SysAllocString(L"New variable");
VARIANT varTemp;
VariantInit(&varTemp);
varTemp.vt = VT_BSTR|VT_BYREF;
varTemp.pbstrVal = &bstrTemp ;
lIndice = 0;
SafeArrayPutElement(psaAttribute,&lIndice,&varTemp);
varArray->vt = VT_ARRAY|VT_VARIANT;
varArray->parray = psaAttribute;
.How to read this safearray in vb????
Thanks In Adavance!!!!!
Regards,
Ramesh.
Eduardo A. Morcillo [MS MVP] - 31 Oct 2003 16:00 GMT
You don't have to do anything special. VB uses SAFEARRAY for its arrays.
Once you have the Variant in the VB side, use it like an array.

Signature
Eduardo A. Morcillo [MS MVP]
http://www.mvps.org/emorcillo