Python & COM

Stefan Schukat SSchukat at dspace.de
Wed Mar 31 08:09:02 EST 2004


Just retrieve a VARIANT from the safearray, e.g.

SAFEARRAY *array=V_ARRAY(a);
long    i,val;
long    lUBound = 0;
long    lLBound;
long    nDim;
VARIANT varElement;

SafeArrayGetUBound(array, 1, &lUBound);
SafeArrayGetLBound(array, 1, &lLBound);

for(i = lLBound; i < lUBound; i++) {
    VariantInit(&varElement);
    SafeArrayGetElement(array,&i,&varElement);
    if (V_VT(varElement) == VT_I4) 
    {
        c_array[i - lLBound] = varElement.lVal;
    }
    VariantClear(&varElement);
}

Regards 

	Stefan


-----Original Message-----
From: Anand K Rayudu [mailto:anand at easi.soft.net]
Sent: Wednesday, March 31, 2004 10:22 AM
To: Stefan Schukat
Cc: python-list at python.org
Subject: Re: Python & COM


Hi Stefan,

Thanks for the suggestion. From little debug i found out that I am 
getting VARIANT of safe array.
How ever I am not getting proper values from the safe array.

Could you please suggest how to implement that
Do you see any problem in the following code.

>
>SAFEARRAY *array=V_ARRAY(a);
>long i,val;
>for(i=0;i<len;i++){
>   SafeArrayGetElement(array,&i,&val)
>   c_array[i]= val;
>}
>
>I am not getting proper values in C array.
>Any suggestions?
>  
>




More information about the Python-list mailing list