s<<sessionId<<"."<<deskName;\r
int len=s.str().length();\r
if(!buf||(cch<=0)) return len;\r
- wcscpy_s(buf,cch,s.str().c_str());\r
+ wcsncpy(buf,s.str().c_str(),cch);\r
return min(len,cch);\r
}\r
MSHTML.findExtraIAccessibleOverlayClasses(self, clsList)\r
\r
#Support for Windowless richEdit\r
- pIidITextServices=ctypes.cast(ctypes.windll.msftedit.IID_ITextServices,ctypes.POINTER(GUID))\r
- try:\r
- pDoc=self.IAccessibleObject.QueryInterface(IServiceProvider).QueryService(pIidITextServices.contents,ITextDocument)\r
- except COMError:\r
- pDoc=None\r
- if pDoc:\r
- self._ITextDocumentObject=pDoc\r
- self.useITextDocumentSupport=True\r
- self.editAPIVersion=2\r
- from NVDAObjects.window.edit import Edit\r
- clsList.append(Edit)\r
+ if not hasattr(IAccessible,"IID_ITextServices"):\r
+ try:\r
+ IAccessible.IID_ITextServices=ctypes.cast(ctypes.windll.msftedit.IID_ITextServices,ctypes.POINTER(GUID)).contents\r
+ except WindowsError:\r
+ log.debugWarning("msftedit not available, couldn't retrieve IID_ITextServices")\r
+ IAccessible.IID_ITextServices=None\r
+ if IAccessible.IID_ITextServices:\r
+ try:\r
+ pDoc=self.IAccessibleObject.QueryInterface(IServiceProvider).QueryService(IAccessible.IID_ITextServices,ITextDocument)\r
+ except COMError:\r
+ pDoc=None\r
+ if pDoc:\r
+ self._ITextDocumentObject=pDoc\r
+ self.useITextDocumentSupport=True\r
+ self.editAPIVersion=2\r
+ from NVDAObjects.window.edit import Edit\r
+ clsList.append(Edit)\r
\r
#Window root IAccessibles\r
if self.event_objectID in (None,winUser.OBJID_WINDOW) and self.event_childID==0 and self.IAccessibleRole==oleacc.ROLE_SYSTEM_WINDOW:\r