summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winaccessibility/source/UAccCOM/UAccCOM.cxx4
-rw-r--r--winaccessibility/source/service/msaaservice_impl.cxx8
2 files changed, 12 insertions, 0 deletions
diff --git a/winaccessibility/source/UAccCOM/UAccCOM.cxx b/winaccessibility/source/UAccCOM/UAccCOM.cxx
index 1f7eab49da71..851464f058f9 100644
--- a/winaccessibility/source/UAccCOM/UAccCOM.cxx
+++ b/winaccessibility/source/UAccCOM/UAccCOM.cxx
@@ -66,10 +66,14 @@ extern "C"
if (dwReason == DLL_PROCESS_ATTACH)
{
_Module.Init(ObjectMap, hInstance, &LIBID_UACCCOMLib);
+ _Module.RegisterClassObjects(CLSCTX_INPROC_SERVER, REGCLS_MULTIPLEUSE);
DisableThreadLibraryCalls(hInstance);
}
else if (dwReason == DLL_PROCESS_DETACH)
+ {
+ _Module.RevokeClassObjects();
_Module.Term();
+ }
return TRUE; // ok
}
diff --git a/winaccessibility/source/service/msaaservice_impl.cxx b/winaccessibility/source/service/msaaservice_impl.cxx
index 950ef9b66cae..6dc1b250bf42 100644
--- a/winaccessibility/source/service/msaaservice_impl.cxx
+++ b/winaccessibility/source/service/msaaservice_impl.cxx
@@ -267,6 +267,14 @@ Reference< XInterface > SAL_CALL create_MSAAServiceImpl( Reference< XComponentCo
}
}
+ // load UAccCOM library so its DllMain can register its COM components
+ static HMODULE h = LoadLibrary("UAccCOM.dll");
+ if (!h)
+ {
+ assert(false);
+ return 0;
+ }
+
Reference< XMSAAService > xAccMgr( new MSAAServiceImpl() );
AccessBridgeUpdateOldTopWindows( xAccMgr );