[pywin32-checkins] pywin32/com/win32com/src oleargs.cpp,1.45,1.46
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
From: Mark H. <mha...@us...> - 2009-06-12 07:50:05
|
Update of /cvsroot/pywin32/pywin32/com/win32com/src In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv28153/com/win32com/src Modified Files: oleargs.cpp Log Message: pythoncom gets better support for 64bit integers, including in arrays. Index: oleargs.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/com/win32com/src/oleargs.cpp,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** oleargs.cpp 25 Jan 2009 03:11:40 -0000 1.45 --- oleargs.cpp 12 Jun 2009 07:48:33 -0000 1.46 *************** *** 692,695 **** --- 692,702 ---- break; } + case VT_I8: { + LARGE_INTEGER ll; + hres = SafeArrayGetElement(psa, arrayIndices, &ll); + if (FAILED(hres)) break; + subitem = PyWinObject_FromPY_LONG_LONG(ll); + break; + } case VT_R4: { float fl; *************** *** 783,786 **** --- 790,800 ---- break; } + case VT_UI8: { + ULARGE_INTEGER ll; + hres = SafeArrayGetElement(psa, arrayIndices, &ll); + if (FAILED(hres)) break; + subitem = PyWinObject_FromUPY_LONG_LONG(ll); + break; + } case VT_INT: { int i1; *************** *** 1111,1114 **** --- 1125,1156 ---- } break; + case VT_I8: + if (!PyWinObject_AsPY_LONG_LONG(obj, &V_I8(var))) + BREAK_FALSE; + break; + case VT_I8 | VT_BYREF: + if (bCreateBuffers) + V_I8REF(var) = &m_llBuf; + + if (!VALID_BYREF_MISSING(obj)) { + if (!PyWinObject_AsPY_LONG_LONG(obj, V_I8REF(var))) + BREAK_FALSE; + } else + *V_I8REF(var) = 0; + break; + case VT_UI8: + if (!PyWinObject_AsUPY_LONG_LONG(obj, &V_UI8(var))) + BREAK_FALSE; + break; + case VT_UI8 | VT_BYREF: + if (bCreateBuffers) + V_UI8REF(var) = (unsigned long long *)&m_llBuf; + + if (!VALID_BYREF_MISSING(obj)) { + if (!PyWinObject_AsUPY_LONG_LONG(obj, V_UI8REF(var))) + BREAK_FALSE; + } else + *V_UI8REF(var) = 0; + break; case VT_I4: if ((obUse=PyNumber_Int(obj))==NULL) BREAK_FALSE |