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)
{
|