Title: Can I pass non-VARIANT SAFARRAYs via COM without converting to VARIANT?

Hi,

I am working on an application where one of our own number crunching products acts as a COM server. From a Python script which is the COM client I want to retrieve large matrices, manipulate them with numarray, and store the result back in the COM server. I currently pass the matrices as VT_ARRAY | VT_VARIANT objects, but this is a waste of time and space compared to VT_ARRAY | VT_R8. Tests with a VBA client show that the latter are passed ~20 times faster, and in less memory. For matrices of 3000x3000 elements this is a concern. Interestingly, win32com accepts matrices of VT_V8 element type, but actually takes longer (!) than in the case of VT_VARIANT, presumably because of an extra conversion (instead of one less).

Is there any way that I can configure python-win32 to use VT_V8 as the element type of a SAFE_ARRAY and suppress any conversion to VT_VARIANT?

Any hints are appreciated!

Cheers,

Klaus Noekel

_______________________________________________
Python-win32 mailing list
Python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to