OSDN Git Service

Monkeypatch comtypes so that NVDA can work a bit better with Internet Explorer 9...
authorMichael Curran <mick@kulgan.net>
Sun, 19 Sep 2010 23:17:11 +0000 (09:17 +1000)
committerJames Teh <jamie@jantrid.net>
Sun, 19 Sep 2010 23:17:11 +0000 (09:17 +1000)
source/core.py

index 3481ad3..0527a21 100644 (file)
@@ -31,6 +31,19 @@ def newVARIANT_value_fset(self,value):
                self._.c_void_p=cast(realValue,c_void_p)\r
 VARIANT.value=property(VARIANT.value.fget,newVARIANT_value_fset,VARIANT.value.fdel)\r
 \r
+#Monkeypatch comtypes lazybind dynamic IDispatch support to fallback to the more basic dynamic IDispatch support if the former does not work\r
+#Example: ITypeComp.bind gives back a vardesc, which comtypes does not yet support\r
+import comtypes.client.lazybind\r
+old__getattr__=comtypes.client.lazybind.Dispatch.__getattr__\r
+def new__getattr__(self,name):\r
+       try:\r
+               return old__getattr__(self,name)\r
+       except (NameError, AttributeError):\r
+               return getattr(comtypes.client.dynamic._Dispatch(self._comobj),name)\r
+comtypes.client.lazybind.Dispatch.__getattr__=new__getattr__\r
+\r
+\r
+\r
 import sys\r
 import nvwave\r
 import os\r