On Feb 6, 2008 1:53 PM, Thomas Heller <[EMAIL PROTECTED]> wrote:
> I'll fix this in Python SVN asap; fortunately it seems that it is possible
> to monkeypatch comtypes' COMError to add a workaround for the bug.
> If you add the following code snippet to comtypes\__init__.py you can try
> it out; I have already committed this to comtypes svn and added a test.
> Please try it out if it works for you.
>
> Thanks,
> Thomas
>
> <snippet>
> try:
>     COMError()
> except TypeError:
>     pass
> else:
>     # Python 2.5 and 2.5.1 have a bug in the COMError implementation:
>     # The type has no __init__ method, and no hresult, text, and
>     # details instance vars.  Work around this bug by monkeypatching
>     # COMError.
>     def monkeypatch_COMError():
>         def __init__(self, hresult, text, details):
>             self.hresult = hresult
>             self.text = text
>             self.details = details
>             super(COMError, self).__init__(hresult, text, details)
>         COMError.__init__ = __init__
>         def __repr__(self):
>             return "%s(%r, %r, %r)" % (self.__class__.__name__, self.hresult, 
> self.text, self.details)
>         COMError.__repr__ = __repr__
>     monkeypatch_COMError()
>     del monkeypatch_COMError
> </snippet>
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> comtypes-users mailing list
> comtypes-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/comtypes-users
>

This works perfectly. Here is a sample Idle session:
>>> import comtypes.client
>>> from comtypes import COMError
>>> lns = comtypes.client.CreateObject('Lotus.NotesSession')
>>> try:
        lns.Initialize('abcd')
except COMError, e:
        pass

>>> e
COMError(-2147217504, None, (u'Notes error: Wrong Password. (Passwords
are case sensitive - be sure to use correct upper and lower case.)',
u'NotesSession', None, 0, None))
>>> e.details
(u'Notes error: Wrong Password. (Passwords are case sensitive - be
sure to use correct upper and lower case.)', u'NotesSession', None, 0,
None)
>>> e.message
''
>>> e.hresult
-2147217504

Thanks four your valuable time
- Suraj

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
comtypes-users mailing list
comtypes-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/comtypes-users

Reply via email to