[pywin32-checkins] pywin32/com/win32com/src/extensions PyIEnumVARIANT.cpp,1.2,1.3
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: <mha...@us...> - 2003-10-25 07:08:45
|
Update of /cvsroot/pywin32/pywin32/com/win32com/src/extensions In directory sc8-pr-cvs1:/tmp/cvs-serv25271/extensions Modified Files: PyIEnumVARIANT.cpp Log Message: Add support for the Python tp_iter slot for PyIEnumVARIANT Index: PyIEnumVARIANT.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/com/win32com/src/extensions/PyIEnumVARIANT.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PyIEnumVARIANT.cpp 19 Nov 1999 04:03:23 -0000 1.2 --- PyIEnumVARIANT.cpp 23 Oct 2003 02:43:04 -0000 1.3 *************** *** 13,16 **** --- 13,40 ---- } + PyObject * + PyIEnumVARIANT::iternext() + { + IEnumVARIANT *pIEVARIANT = GetI(this); + if ( pIEVARIANT == NULL ) + return NULL; + + VARIANT var; + VariantInit(&var); + ULONG celtFetched; + PY_INTERFACE_PRECALL; + HRESULT hr = pIEVARIANT->Next(1, &var, &celtFetched); + PY_INTERFACE_POSTCALL; + if ( FAILED(hr) ) + return PyCom_BuildPyException(hr); + if (celtFetched==0) { + PyErr_SetNone(PyExc_StopIteration); + return NULL; + } + PyObject *ret = PyCom_PyObjectFromVariant(&var); + VariantClear(&var); + return ret; + } + /* static */ IEnumVARIANT *PyIEnumVARIANT::GetI(PyObject *self) { |