Update of /cvsroot/pywin32/pywin32/com/TestSources/PyCOMTest
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16297/TestSources/PyCOMTest
Modified Files:
PyCOMImpl.cpp PyCOMImpl.h PyCOMTest.idl
Log Message:
Fix some errors when attempting to use integer values > sys.maxint - both
when the VT is unknown, and when the VT is explicitly VT_UI4.
Also catch int conversion errors in the universal gateway.
Index: PyCOMTest.idl
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/TestSources/PyCOMTest/PyCOMTest.idl,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** PyCOMTest.idl 27 Jun 2005 11:02:41 -0000 1.11
--- PyCOMTest.idl 13 Feb 2006 01:23:49 -0000 1.12
***************
*** 220,223 ****
--- 220,225 ----
[propget] HRESULT LongProp([out, retval] long* retval);
[propput] HRESULT LongProp([in] long val);
+ [propget] HRESULT ULongProp([out, retval] unsigned long* retval);
+ [propput] HRESULT ULongProp([in] unsigned long val);
[propget] HRESULT IntProp([out, retval] int* retval);
[propput] HRESULT IntProp([in] int val);
Index: PyCOMImpl.h
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/TestSources/PyCOMTest/PyCOMImpl.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** PyCOMImpl.h 27 Jun 2005 11:02:41 -0000 1.10
--- PyCOMImpl.h 13 Feb 2006 01:23:49 -0000 1.11
***************
*** 95,98 ****
--- 95,100 ----
STDMETHOD(get_LongProp)(long *ret);
STDMETHOD(put_LongProp)(long val);
+ STDMETHOD(get_ULongProp)(unsigned long *ret);
+ STDMETHOD(put_ULongProp)(unsigned long val);
STDMETHOD(get_IntProp)(int *ret);
STDMETHOD(put_IntProp)(int val);
***************
*** 116,119 ****
--- 118,122 ----
SAFEARRAY *pLastArray;
long m_long;
+ unsigned long m_ulong;
CY m_cy;
};
Index: PyCOMImpl.cpp
===================================================================
RCS file: /cvsroot/pywin32/pywin32/com/TestSources/PyCOMTest/PyCOMImpl.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** PyCOMImpl.cpp 27 Jun 2005 11:02:40 -0000 1.11
--- PyCOMImpl.cpp 13 Feb 2006 01:23:49 -0000 1.12
***************
*** 506,509 ****
--- 506,518 ----
CHECK_HR(tester->get_LongProp(&lresult));
CHECK_TRUE(lresult==4);
+ CHECK_HR(tester->put_LongProp(-4));
+ CHECK_HR(tester->get_LongProp(&lresult));
+ CHECK_TRUE(lresult==-4);
+ unsigned long ulresult;
+ CHECK_HR(tester->put_ULongProp(0x80000001));
+ CHECK_HR(tester->get_ULongProp(&ulresult));
+ CHECK_TRUE(ulresult==0x80000001);
+
+ CHECK_HR(tester->put_IntProp(4));
CHECK_HR(tester->get_IntProp(&result));
CHECK_TRUE(result==4);
***************
*** 600,603 ****
--- 609,626 ----
}
+ HRESULT CPyCOMTest::put_ULongProp(unsigned long val)
+ {
+ m_ulong = val;
+ return S_OK;
+ }
+
+ HRESULT CPyCOMTest::get_ULongProp(unsigned long *ret)
+ {
+ if (!ret)
+ return E_POINTER;
+ *ret = m_ulong;
+ return S_OK;
+ }
+
HRESULT CPyCOMTest::put_IntProp(int val)
{
|