mhammond / pywin32

Python for Windows (pywin32) Extensions
4.9k stars 783 forks source link

Problem using MS Collaboration Data Objects with build 204 #234

Open ghost opened 18 years ago

ghost commented 18 years ago

We are having problems using Microsoft's Collaboration Data Objects (CDO) to send e-mail with pywin32 build 204. Our Python code works perfectly with win32all build 163. Preliminary testing with pywin32 build 200 seemed to indicate that our code works with that as well. This is the end of the traceback message we are getting:

File "C:\Program Files\NeTTS\ctb\common\eventplugins\emailoutlook\RAg ent.py", line 604, in SendEmail msg.Update() File "<COMObject <unknown>>", line 3, in Update File "C:\Python23\Lib\site- packages\win32com\client\dynamic.py", line 251, in _ApplyTypes_ result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args) com_error: (-2147352567, 'Exception occurred.', (1087, 'Collaboration Data Objects', ' [Collaboration Data Objects - [E_INVALIDARG(80070057)]]', None, 0, - 2147024809), None)

Do you know what change in pywin32 is causing this?
Thanks for your help.

Reported by: dpward

Original Ticket: "pywin32/bugs/234":https://sourceforge.net/p/pywin32/bugs/234

ghost commented 18 years ago

Logged In: YES user_id=14198

I've never heard anything similar. You could try explicitly providing any optional args to "Update()", as I believe a subtle change was made to the way default arguments are passed. If it possible something else changed - eg, new CDO version, or the code now using makepy when it previously was not, etc?

Original comment by: mhammond

ghost commented 18 years ago

Logged In: YES user_id=1326408

No, the only difference is pywin32 itself. Something in pywin32 has changed between builds 200 and 204 that is breaking CDO.

To test this, we started with a clean VMware image with Windows XP and Office XP. We booted from this image and installed Python and pywin32 build 204. We ran our code, and it returned the error above. Then we reverted to the clean VMware image again. We did everything *exactly* the same, except that we installed win32all build 163, but this time our code worked perfectly. We reverted VMware again to the base image, and then used win32all build 200, and also did not notice any problems. The *only* difference in all of these three situations was the pywin32/win32all build version.

Original comment by: dpward

ghost commented 18 years ago

Logged In: YES user_id=14198

Did you try providing the optional args? Did it help?

Thanks.

Original comment by: mhammond

ghost commented 18 years ago

Logged In: YES user_id=1285226

Mark,

I am the author of the code David was troubleshooting. I tried passing the optional arguments with their default values, but get the same error.

I tried the call:

msg.Update(True, False)

but still get:

msg.Update(True, False) File "<COMObject <unknown>>", line 3, in Update File "C:\Python23\Lib\site-packages\win32com\client\dynamic.py", line 251, in _ApplyTypes_ result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes ) + args) com_error: (-2147352567, 'Exception occurred.', (1087, 'Collaboration Data Objec ts', ' [Collaboration Data Objects - [E_INVALIDARG(80070057)]]', None, 0, -21470 24809), None)

I was able to cause this failure by simply uninstalling 163 and installing 2.05.

Original comment by: kwharrigan