path: root/winaccessibility/source/service
AgeCommit message (Collapse)AuthorFilesLines
2013-12-03vcl: check if AT is running before loading the libraryMichael Stahl1-26/+0
... which should result in faster startup if it's disabled. Change-Id: I39774b0a56f186d08270c2f17b2b20a823f21dc2 (cherry picked from commit b44ed4c408d92f7a1a3f2390c056d518c137ddd0)
2013-12-03winaccessibility: remove global g_acc_managerMichael Stahl4-43/+25
It is possible to retrieve it via the AccTopWindowListener. Change-Id: I6cc5ab25bc937d0d9f4de54a1bed09a76ce27491 (cherry picked from commit fabca7370e22f96ae041dc179475b35c87ac53ec)
2013-12-03Revert "winaccessibility: let CoCreateInstance calls find the components"Michael Stahl1-8/+0
This only works partially: the ClassObjects are only registered on the main thread; CoCreateInstance on other threads still fails. This reverts commit 29c6216af8c502f220bb84857d3dda901ddfd234. (cherry picked from commit b54d441ad728ffce8e543de10bd897f0900422b5)
2013-12-03winaccessibility: replace CoCreateInstance with direct instantiationMichael Stahl1-12/+4
This is an alternative (to 732ec36edfd09d2091d70c4d71b5f182fe279c45) solution to the "CoCreateInstance does not work" problem: replace all CoCreateInstance calls with equivalent calls to create the components directly. Since the only reason why this COM stuff needs to be registered at all is that AccObject uses CoCreateInstance() to create its COM objects, another possible solution appears to be to simply link the libraries and instantiate the COM objects directly, without COM. The only difference appears to be that CoCreateInstance would automatically add proxy objects in case the COM objects reside in a single-threaded appartment; not sure if that is relevant here. Reviewed-on: Reviewed-by: Michael Meeks <> Tested-by: Michael Meeks <> (cherry picked from commit 3b86569fcba210eb6570fabef7ff8abf6aff91f0) Conflicts: winaccessibility/source/UAccCOM/AccHypertext.cxx winaccessibility/source/UAccCOM/AccTable.cxx winaccessibility/source/UAccCOM/EnumVariant.cxx winaccessibility/source/UAccCOM/MAccessible.cxx winaccessibility/source/service/AccObject.cxx Change-Id: I8ffb8af501f6084f3145fa4d4f53366a070e1691
2013-11-28winaccessibility: improve GenerateNewResId()Michael Stahl1-13/+7
Change-Id: I81f98ca83b97bc2e3e419c7a37ad2a011932553b (cherry picked from commit 0fb33f60ac08c853f14d19e6158994d092a82670)
2013-11-28winaccessibility: remove GetXAccByAccObj()Michael Stahl2-21/+2
It is pointlessly slow and the AccObject has a method for that. (cherry picked from commit e094d6fab61de95adb53759d69aad2447560581c) Conflicts: winaccessibility/source/service/AccObjectWinManager.cxx Change-Id: I7ba1cc853255ac3b3b5008657d1cc79efc3a3f4b
2013-11-28winaccessibility: remove AccEventListener::m_isDisposedMichael Stahl1-5/+0
It's disposed iff m_xAccessible is 0. Change-Id: I3f8bc104784adf82be43bcaf43b7573a9897f82a (cherry picked from commit a2afe344c6badf432983ce341d4154441837baf3)
2013-11-28winaccessibility: use uno::Reference in AccEventListenerMichael Stahl13-181/+169
... and clear it in disposing(). Change-Id: I69cfe3cdcf6549a0471453960d1f935d9c3b7a0d (cherry picked from commit 83ccdb028529e85fe4c06a47ca57a4a5eeeed159)
2013-11-28winaccessibility: use rtl::Reference for listener lifecycleMichael Stahl2-46/+34
The manual acquire() call was apparently not coupled with a release()? Change-Id: I069c969619e9afce2a4b836642cc1675025b11d0 (cherry picked from commit ef3f28d0ce641e9d51d91412b176a1ecbdc69773)
2013-11-28winaccessibility: actually the member is unused, remove itMichael Stahl3-5/+0
Change-Id: I68e5c1785b73520cb59ca54a602ea176f8146f6f (cherry picked from commit 576ba8ce8238f6a092c74750a895e2e77297fc7e)
2013-11-28winaccessibility: don't store XAccessible* in AccDescendant...ListenerMichael Stahl3-5/+5
Seems safer to store a Reference Change-Id: I86ef9d18c03b2a58058d38e2ae43553ecd2c7be6 (cherry picked from commit 887cf7ccc6c2cfc8652d646e15678c1c10155987)
2013-11-28winaccessibility: remove obsolete act.hxxMichael Stahl1-1/+0
... obsoleted by 732ec36edfd09d2091d70c4d71b5f182fe279c45 Change-Id: I7f7a9becac2430a7ed4d096be741b610462a8a00 (cherry picked from commit 5e7b29e642dadf99ad954dbf4e3730e0eeef9de8)
2013-11-28winaccessibility: remove ActivateActContext callsMichael Stahl1-2/+0
Obsolete since 732ec36edfd09d2091d70c4d71b5f182fe279c45 Change-Id: I32e880f6a35ffd628b5873a4a7e05def73b939ca
2013-11-25winaccessibility: let CoCreateInstance calls find the componentsMichael Stahl1-0/+8
The COM services are not found because they are not registered in the registry via regsvr32 (doing that is unnecessary since the components are only instantiated by winaccessibility code and undesirable since that would likely register the IAccessible2 types too, breaking A11y tools) and the special manifest resource #97 that ActivateActContext() tries to load does not exist in UAccCOM.dll; this would need to be a XML manifest, the *.rgs and *.tlb that are already included as individual resources won't work. After reading ATL headers for hours it is immediately obvious that the COM components can simply be registered by a call to CComModule::RegisterClassObjects() from DllMain; this just requires actually loading the UAccCOM library from somewhere so the DllMain runs. Change-Id: Id58b754835cd2f1bcada37e5639a6b6042a42fd5 (cherry picked from commit 732ec36edfd09d2091d70c4d71b5f182fe279c45)
2013-11-25winaccessibility: don't need 2 global pointers for AccObjectWinManagerMichael Stahl1-7/+3
Sadly can't use rtl::Static because it needs a ctor parameter... Change-Id: I98bbfbb4d2ef54f40a5f110527b260c0b5b01eed (cherry picked from commit ccb1e06bdb3c37c82ddc7b61135eda09fcdecae4)
2013-11-21Remove unused exports.dxp fileStephan Bergmann1-2/+0
Change-Id: Ic4313d9d1caea6448749c5c010ea9a034a75a907 (cherry picked from commit 36223cbe8b9a80827a8ec49c031540ea62c23c6d)
2013-11-21No need for default component_getImplementationEnvironment function any moreStephan Bergmann1-5/+0
Change-Id: Ia03e2797d80429284964987d07ebc033346a7ac0 (cherry picked from commit 1917dacaf2f3e29caadcac09162fe9b2158a45d1)
2013-11-21Improve debug outputStephan Bergmann1-2/+3
Change-Id: If09b4c0452d2e436be146a789edf85b1087d74e2 (cherry picked from commit d7791c933d8f7545b2535fe1a6d706008d2f9605)
2013-11-21Simplify css.accessibility.MSAAService and corresponding XMSAAServiceStephan Bergmann1-28/+3
Change-Id: I96c69e871aa7b20cdac9751a64faa5e436f31a1f (cherry picked from commit f3f4d9ec0f0eaa1aebdfebe831021a9d96e63f58)
2013-11-21winaccessibility: "typedef sal_Int32 HWND;" - sigh...Michael Stahl1-5/+0
Change-Id: I5c51652932537cfb200183c30c5c1d954586f8fa
2013-11-21winaccessibility: fix even more pointless HWND to long castingMichael Stahl3-10/+11
Change-Id: I16a39a0dde27b17f1467a9605a4566b05f53a485
2013-11-21winaccessibility: pass pointers as "hyper" in the COM IDLMichael Stahl1-4/+5
Change-Id: I083589fd57540e3b4ec488aeb84bc92dddc02d36
2013-11-21winaccessibility: use sal_Int64 for pointers in AccObjectManagerAgentMichael Stahl1-24/+29
Also use bool instead of random integer types. Change-Id: If4da5f6b7986231312438142c9ea953d761c6745
2013-11-21winaccessibility: clean up global TopLevelWindowListenerMichael Stahl2-32/+17
Apparently the life-cycle of this global variable is tied to the MSAAService anyway, so just make it a member of that. Also it appears that the FreeTopListener function would call release() but at the place where the global variable is assigned acquire() was missing. Using a rtl::Reference should fix this up too. Change-Id: I6dd305dfd990d7fd4c54b16d971700b88470dc43
2013-11-20winaccessibility: XMSAAService could only work on 32-bitMichael Stahl3-12/+19
... so replace all long with hyper to fit in 64-bit pointers. Change-Id: Ia5c044e8d7cc8c4e55f1ef8c0fb0f91bb9a69e1c
2013-11-20winaccessibility: replace mysterious and inexplicable locking strategyMichael Stahl18-13/+63
Do the conservative thing and lock the SolarMutex at every UNO API entry point. Change-Id: I51afffada975df7ee3435784aa050a2c19cd0ac8
2013-11-20winaccessibility: remove some pointless overridesMichael Stahl6-96/+0
Change-Id: I9a215d71bfeec9feed9d7f27fb1a47d36c827ef0
2013-11-20winaccessibility: make listener methods a bit more obviousMichael Stahl16-178/+178
- disambiguate overloading - only use SAL_CALL for UNO methods, and non-UNO methods start uppercase - use SAL_OVERRIDE Change-Id: Ib57adad65b2b8e8246b103ff77ce162b0b540422
2013-11-20winaccessibility: CHILDID_SELF already defined by some windows headerMichael Stahl1-2/+0
... so no need to define it ourselves, much less 3 times. Change-Id: I92c05849452fa2516ec09bc5789617df3b743f8d
2013-11-20winaccessibility: remove UAccCOM2.hMichael Stahl1-1/+1
At least with MSVC2012 there is no warning C4917 here. Change-Id: I8de6cfc33791b1bb5e2b7808e306f733cf8cfcb5
2013-11-20winaccessibility: move ROLE_TABLE to the cxx file that needs itMichael Stahl2-0/+94
Change-Id: I8e183e68edcbf3ebfb4172350c31b66688eb66e0
2013-11-19winaccessibility: use WeakImplHelperMichael Stahl2-58/+5
Change-Id: I5872e520ca009a0f9277827d72e72befe3323a06
2013-11-19winaccessibility: avoid warning C4005 macro redefinitionMichael Stahl1-0/+2
Change-Id: I4a18f32f56a7489b2087629e1de05ce7cc5bdb17
2013-11-19winaccessibility: remove executable bitsMichael Stahl7-0/+0
Change-Id: I691c5fc3554bcdeb6c3beb0e5b445cfcd7b51e4c
2013-11-19uia: merge VCL pieces of IAccessible2 work.Michael Meeks5-164/+197
Original code from: Author: Steve Yin <> Date: Sat Nov 16 23:58:19 2013 +0100 Integrate branch of IAccessible2 With these improvements: Make IAccessible2 an experimental feature, with fallback to Java a11y. Move initial setup of windows into the bridge and clean, remove conditionals Check for presence of AT in the bridge as well to clean. Merge VCL events extensions and their handling. Clean and split WB_GETOBJECT handling out to it's own method. Add component prefix namespacing. Cleanup msaa service info, and implement XComponent to share mxAccessBridge. Add suitable debugging output, remove VCL dependency from UAccCOM causing registration issues. Change-Id: Ib19e38ddca71182018df438df27dcdb555d91402
2013-11-19uia: remove redundant component registration.Michael Meeks1-5/+0
Change-Id: I913e6498d09021cca78be27b542421251f258535
2013-11-19Gbuildify winaccessibility serviceDavid Ostrovsky7-29/+32
Conflicts: winaccessibility/source/UAccCOM/UAccCOM.def winaccessibility/source/service/AccObjectWinManager.cxx winaccessibility/source/service/checkmt.cxx winaccessibility/source/service/checkmt.hxx Change-Id: Ia66872bee7c70c840c1bd5caa626bf63eac9ef7c
2013-11-19Move to MPLv2 license headers, add modelines.Michael Meeks24-412/+405
Change-Id: I895bab038eda82b80e1a223ad877a9674fe561ee
2013-11-19Integrate branch of IAccessible2Steve Yin25-0/+6366
Just the winaccessibility directory initially. Change-Id: Ia21abb8d7088646ad6c1f83b3a03e7add716b0c0