path: root/winaccessibility
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 Stahl8-75/+33
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 Stahl2-12/+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: fix my stupid mistake in createAggInstanceMichael Stahl1-16/+17
Change-Id: I7701021befcf1dbad85557c2095fe4bf0b4e0ff1 (cherry picked from commit d0e8e6e3cd51736583603e37f0ba2ff7bdf29f5c)
2013-12-03winaccessibility: replace CoCreateInstance with direct instantiationMichael Stahl11-33/+114
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 Stahl2-22/+10
Change-Id: I81f98ca83b97bc2e3e419c7a37ad2a011932553b (cherry picked from commit 0fb33f60ac08c853f14d19e6158994d092a82670)
2013-11-28winaccessibility: remove GetXAccByAccObj()Michael Stahl4-24/+4
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 Stahl2-7/+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 Stahl14-183/+172
... and clear it in disposing(). Change-Id: I69cfe3cdcf6549a0471453960d1f935d9c3b7a0d (cherry picked from commit 83ccdb028529e85fe4c06a47ca57a4a5eeeed159)
2013-11-28winaccessibility: use rtl::Reference for listener lifecycleMichael Stahl4-50/+41
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 Stahl4-8/+0
Change-Id: I68e5c1785b73520cb59ca54a602ea176f8146f6f (cherry picked from commit 576ba8ce8238f6a092c74750a895e2e77297fc7e)
2013-11-28winaccessibility: don't store XAccessible* in AccDescendant...ListenerMichael Stahl4-6/+8
Seems safer to store a Reference Change-Id: I86ef9d18c03b2a58058d38e2ae43553ecd2c7be6 (cherry picked from commit 887cf7ccc6c2cfc8652d646e15678c1c10155987)
2013-11-28winaccessibility: why delayload the dlls?Michael Stahl1-3/+0
Perhaps delayloading the URE dlls makes it easier to register the UAccCOM.dll during installation or something? Well we don't do that any more. Change-Id: Ic7c356f5954f869c8752aab2563f059a27ef731f (cherry picked from commit 95759ff2c0c895442d4d41b0edec1583caaf8abd)
2013-11-28winaccessibility: README already outdatedMichael Stahl1-7/+2
Change-Id: Id0defc7e4fbe5b700362548559e08163a327399b (cherry picked from commit 2e243de2887f75fa1bd4146bc67d01ae08500d0d)
2013-11-28winaccessibility: remove all Registry content/registration codeMichael Stahl34-552/+13
There is no need to register UAccCOM. (cherry picked from commit 455c39645e3fe1642679aa478c5b1b5a1d3ab0ae) Conflicts: winaccessibility/source/UAccCOM/UAccCOM.cxx Change-Id: I37f5c4030abefbd18b6686652a348bc20a05a9db
2013-11-28winaccessibility: remove obsolete act.hxxMichael Stahl6-76/+0
... obsoleted by 732ec36edfd09d2091d70c4d71b5f182fe279c45 Change-Id: I7f7a9becac2430a7ed4d096be741b610462a8a00 (cherry picked from commit 5e7b29e642dadf99ad954dbf4e3730e0eeef9de8)
2013-11-28winaccessibility: remove ActivateActContext callsMichael Stahl5-18/+0
Obsolete since 732ec36edfd09d2091d70c4d71b5f182fe279c45 Change-Id: I32e880f6a35ffd628b5873a4a7e05def73b939ca
2013-11-25winaccessibility: let CoCreateInstance calls find the componentsMichael Stahl2-0/+12
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: fix some error handling in CAccTableMichael Stahl1-16/+18
Change-Id: I3c8bc6a476a6254a4ddc3a7cb0585544f3f78431 (cherry picked from commit d04c970e8f33109a1ef5c52f922a48a0ff62adb0)
2013-11-25winaccessibility: don't need 2 global pointers for AccObjectWinManagerMichael Stahl2-8/+3
Sadly can't use rtl::Static because it needs a ctor parameter... Change-Id: I98bbfbb4d2ef54f40a5f110527b260c0b5b01eed (cherry picked from commit ccb1e06bdb3c37c82ddc7b61135eda09fcdecae4)
2013-11-25winaccessibility: make XAccessibleAction member ReferenceMichael Stahl2-8/+9
Maybe it would be kept alive by AccObject::m_AccActionRef but why not play it safe. Change-Id: I03c2be04e97dcde8a177ef8dfd0d75595ab13a53 (cherry picked from commit a5e281ff0468416e5bb20b16ccac16550a83a9fd)
2013-11-25winaccessibility: CMAccessible needs only one XAccessibleContextMichael Stahl2-23/+20
Merge aliases pRContextInterface (unused) and pRContext; this is exacerbated by countless local variables pRContext that shadow the member... Change-Id: I6bc71911fb41a2ce2590d614020ecea36d6ab4f8 (cherry picked from commit 58ab5239868039bc9e4dff391fc0c420a2eb3d8d)
2013-11-25winaccessibility: CMAccessible needs only one member for XAccessibleMichael Stahl2-38/+43
Merge aliases pUNOInterface and pRef; also pAchorUNOInterface is never used. Change-Id: I1b3841a9aca9d2438b25c66c7f67d09ce13b41f9 (cherry picked from commit fd2877ee09fd4cd738769cda5de5b641f73adee2)
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 Stahl5-13/+14
Change-Id: I16a39a0dde27b17f1467a9605a4566b05f53a485
2013-11-21winaccessibility: pass pointers as "hyper" in the COM IDLMichael Stahl33-94/+106
Change-Id: I083589fd57540e3b4ec488aeb84bc92dddc02d36
2013-11-21winaccessibility: use sal_Int64 for pointers in AccObjectManagerAgentMichael Stahl2-33/+39
Also use bool instead of random integer types. Change-Id: If4da5f6b7986231312438142c9ea953d761c6745
2013-11-21winaccessibility: clean up global TopLevelWindowListenerMichael Stahl3-36/+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-20Use <windows.h> with a lower-case 'w' for cross-compilation goodnessTor Lillqvist1-1/+1
Change-Id: Ia7ec6c4e9808a379e955a013264e1f92a7f6a358
2013-11-20winaccessibility: XMSAAService could only work on 32-bitMichael Stahl5-15/+22
... so replace all long with hyper to fit in 64-bit pointers. Change-Id: Ia5c044e8d7cc8c4e55f1ef8c0fb0f91bb9a69e1c
2013-11-20winaccessibility: replace mysterious and inexplicable locking strategyMichael Stahl20-17/+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 Stahl12-132/+0
Change-Id: I9a215d71bfeec9feed9d7f27fb1a47d36c827ef0
2013-11-20winaccessibility: make listener methods a bit more obviousMichael Stahl31-279/+281
- disambiguate overloading - only use SAL_CALL for UNO methods, and non-UNO methods start uppercase - use SAL_OVERRIDE Change-Id: Ib57adad65b2b8e8246b103ff77ce162b0b540422
2013-11-20winaccessibility: remove IsXPOrLaterMichael Stahl1-19/+0
XP is the baseline already so no need to check for it. Change-Id: I5737213d647d1aea9b9fa918d87b712d3a920156
2013-11-20winaccessibility: remove pointless default less functorsMichael Stahl2-35/+6
Change-Id: I5819d733b76c916058698b5e5b8ee338dcf25723
2013-11-20winaccessibility: CHILDID_SELF already defined by some windows headerMichael Stahl3-4/+0
... so no need to define it ourselves, much less 3 times. Change-Id: I92c05849452fa2516ec09bc5789617df3b743f8d
2013-11-20winaccessibility: remove UAccCOM2.hMichael Stahl20-50/+18
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 Stahl4-106/+102
Change-Id: I8e183e68edcbf3ebfb4172350c31b66688eb66e0
2013-11-20winaccessibility: remove "using" from headersMichael Stahl20-88/+106
Change-Id: I212c1f3449416ff3629a677112fc5a4702e89eb0
2013-11-19winaccessibility: use WeakImplHelperMichael Stahl4-76/+15
Change-Id: I5872e520ca009a0f9277827d72e72befe3323a06
2013-11-19winaccessibility: avoid warning C4005 macro redefinitionMichael Stahl1-0/+2
Change-Id: I4a18f32f56a7489b2087629e1de05ce7cc5bdb17
2013-11-19warning C4702: unreachable codeStephan Bergmann2-9/+0
Change-Id: I6377c9228589d324d51d0c3cc12f04b7854db5ac
2013-11-19winaccessibility: remove executable bitsMichael Stahl24-0/+0
Change-Id: I691c5fc3554bcdeb6c3beb0e5b445cfcd7b51e4c
2013-11-19uia: add some possibly helpful overview documentation.Michael Meeks1-0/+47
Change-Id: I4163b587d82a0fd6403fdd124808ab895b4ed460
2013-11-19uia: merge VCL pieces of IAccessible2 work.Michael Meeks11-206/+204
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 Meeks2-6/+1
Change-Id: I913e6498d09021cca78be27b542421251f258535