Mark Hammond wrote: > PostMessage wants a Python integer object (or a long that could fit in an > int). In practice, that means sending a negative integer when you want the > MSB set. > > Sadly (IMO), in Python 2.4, all these bitwise operations have become more > "pythonic" rather than like C. Thus, in 2.3 and earlier: > > >>>>1<<31 > > -2147483648 > > but 2.4+: > > >>>>1<<31 > > 2147483648L > > >>Would that be a bug in python's implementation of PostMessage, >>or am i missing something? > > > Many of the pywin32 functions work like this, and will not accept the new > long value. I beleive that can be fixed fairly easily - but changing the > return values from these functions would open a can of worms. I'm not sure > of a clean solution.
One option seems to be to run the desired Python long value trough a pack and unpack sequence to get the corresponding integer value: from struct import * >>> unpack('=l', pack('=L', 0xC0000000))[0] -1073741824 -- If I have been able to see further, it was only because I stood on the shoulders of giants. -- Isaac Newton Roel Schroeven _______________________________________________ Python-win32 mailing list Python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32