Mark Hammond - 2008-02-19

Logged In: YES
user_id=14198
Originator: NO

win32com\src\univgw_dataconv.cpp needs to learn about the VT_RECORD type. PyRecord.cpp contains a function:

BOOL PyObject_AsVARIANTRecordInfo(PyObject *ob, VARIANT *pv)

which oleargs.cpp uses to convert records in the IDispatch case. This function fills the 'pv' element of a variant - you may like to refactor this into 2 functions - one to give the raw pointer and one to set the pointer in the variant. On the other hand, it may be that 'pyrec->pdata' is all you need to pass - I'm not sure how records are passed to vtable based functions. Let me know if that makes sense...