[Libreoffice-commits] core.git: Branch 'libreoffice-4-2' - 11 commits - winaccessibility/inc winaccessibility/Library_uacccom.mk winaccessibility/README winaccessibility/source

Michael Stahl mstahl at redhat.com
Thu Nov 28 05:43:42 PST 2013


 winaccessibility/Library_uacccom.mk                                   |    3 
 winaccessibility/README                                               |    9 
 winaccessibility/inc/AccDescendantManagerEventListener.hxx            |    3 
 winaccessibility/inc/AccEventListener.hxx                             |    7 
 winaccessibility/inc/AccObject.hxx                                    |    9 
 winaccessibility/inc/AccObjectWinManager.hxx                          |    7 
 winaccessibility/inc/ResIDGenerator.hxx                               |   12 -
 winaccessibility/inc/act.hxx                                          |   70 ------
 winaccessibility/source/UAccCOM/AccAction.h                           |    2 
 winaccessibility/source/UAccCOM/AccAction.rgs                         |   26 --
 winaccessibility/source/UAccCOM/AccComponent.h                        |    3 
 winaccessibility/source/UAccCOM/AccComponent.rgs                      |   23 --
 winaccessibility/source/UAccCOM/AccContext.rgs                        |   23 --
 winaccessibility/source/UAccCOM/AccEditableText.h                     |    3 
 winaccessibility/source/UAccCOM/AccEditableText.rgs                   |   23 --
 winaccessibility/source/UAccCOM/AccExtendedComponent.rgs              |   23 --
 winaccessibility/source/UAccCOM/AccFont.rgs                           |   23 --
 winaccessibility/source/UAccCOM/AccHyperLink.h                        |    2 
 winaccessibility/source/UAccCOM/AccHyperLink.rgs                      |   23 --
 winaccessibility/source/UAccCOM/AccHypertext.cxx                      |    1 
 winaccessibility/source/UAccCOM/AccHypertext.h                        |    3 
 winaccessibility/source/UAccCOM/AccHypertext.rgs                      |   23 --
 winaccessibility/source/UAccCOM/AccImage.h                            |    3 
 winaccessibility/source/UAccCOM/AccImage.rgs                          |   23 --
 winaccessibility/source/UAccCOM/AccKeyBinding.rgs                     |   23 --
 winaccessibility/source/UAccCOM/AccRelation.h                         |    2 
 winaccessibility/source/UAccCOM/AccRelation.rgs                       |   25 --
 winaccessibility/source/UAccCOM/AccSelection.rgs                      |   23 --
 winaccessibility/source/UAccCOM/AccTable.cxx                          |    1 
 winaccessibility/source/UAccCOM/AccTable.h                            |    3 
 winaccessibility/source/UAccCOM/AccTable.rgs                          |   23 --
 winaccessibility/source/UAccCOM/AccText.h                             |    3 
 winaccessibility/source/UAccCOM/AccText.rgs                           |   23 --
 winaccessibility/source/UAccCOM/AccValue.h                            |    3 
 winaccessibility/source/UAccCOM/AccValue.rgs                          |   23 --
 winaccessibility/source/UAccCOM/EnumVariant.cxx                       |    2 
 winaccessibility/source/UAccCOM/EnumVariant.h                         |    2 
 winaccessibility/source/UAccCOM/EnumVariant.rgs                       |   26 --
 winaccessibility/source/UAccCOM/MAccessible.cxx                       |    1 
 winaccessibility/source/UAccCOM/MAccessible.h                         |    3 
 winaccessibility/source/UAccCOM/MAccessible.rgs                       |   26 --
 winaccessibility/source/UAccCOM/Resource.h                            |   31 ---
 winaccessibility/source/UAccCOM/UAccCOM.cxx                           |   16 -
 winaccessibility/source/UAccCOM/UAccCOM.def                           |    2 
 winaccessibility/source/UAccCOM/UAccCOM.rc                            |   56 -----
 winaccessibility/source/UAccCOM/UNOXWrapper.rgs                       |   26 --
 winaccessibility/source/service/AccComponentEventListener.cxx         |   92 ++++-----
 winaccessibility/source/service/AccContainerEventListener.cxx         |  102 +++++-----
 winaccessibility/source/service/AccDescendantManagerEventListener.cxx |   20 -
 winaccessibility/source/service/AccDialogEventListener.cxx            |    6 
 winaccessibility/source/service/AccEventListener.cxx                  |   66 ++----
 winaccessibility/source/service/AccFrameEventListener.cxx             |    9 
 winaccessibility/source/service/AccListEventListener.cxx              |    6 
 winaccessibility/source/service/AccMenuEventListener.cxx              |   11 -
 winaccessibility/source/service/AccObject.cxx                         |   15 -
 winaccessibility/source/service/AccObjectContainerEventListener.cxx   |    5 
 winaccessibility/source/service/AccObjectWinManager.cxx               |   89 ++------
 winaccessibility/source/service/AccParagraphEventListener.cxx         |   10 
 winaccessibility/source/service/AccTableEventListener.cxx             |   22 +-
 winaccessibility/source/service/AccTreeEventListener.cxx              |    3 
 winaccessibility/source/service/AccWindowEventListener.cxx            |   10 
 winaccessibility/source/service/ResIDGenerator.cxx                    |   20 -
 62 files changed, 244 insertions(+), 932 deletions(-)

New commits:
commit 436b39d9d1f38caeafdc9be15696ebe4162a02c8
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Nov 27 00:39:13 2013 +0100

    winaccessibility: improve GenerateNewResId()
    
    Change-Id: I81f98ca83b97bc2e3e419c7a37ad2a011932553b
    (cherry picked from commit 0fb33f60ac08c853f14d19e6158994d092a82670)

diff --git a/winaccessibility/inc/ResIDGenerator.hxx b/winaccessibility/inc/ResIDGenerator.hxx
index f4c1f0a..dfe43a4 100644
--- a/winaccessibility/inc/ResIDGenerator.hxx
+++ b/winaccessibility/inc/ResIDGenerator.hxx
@@ -29,28 +29,22 @@ class ResIDGenerator
 {
 private:
 
-    long min;
     long max;
     std::deque<long> subList;
 
 public:
 
-    ResIDGenerator( long minNum = PRIMARY_RESID,long maxNum = PRIMARY_RESID);
+    ResIDGenerator(long maxNum = PRIMARY_RESID)
+        : max(maxNum) {}
+    ~ResIDGenerator();
     long GenerateNewResID();
     void SetSub(long number)
     {
         subList.push_back(number);
     };
-    virtual ~ResIDGenerator();
 
 };
 
-inline ResIDGenerator::ResIDGenerator( long minNum ,long maxNum )
-{
-    min = minNum;
-    max = maxNum;
-}
-
 #endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/winaccessibility/source/service/ResIDGenerator.cxx b/winaccessibility/source/service/ResIDGenerator.cxx
index f7da8fb..8c21d9a 100644
--- a/winaccessibility/source/service/ResIDGenerator.cxx
+++ b/winaccessibility/source/service/ResIDGenerator.cxx
@@ -19,12 +19,8 @@
 
 #include "ResIDGenerator.hxx"
 
-/**
-   * Destructor
-   *
-   * @param
-   * @return
-   */
+#include <cassert>
+
 ResIDGenerator::~ResIDGenerator()
 {
 }
@@ -39,15 +35,13 @@ ResIDGenerator::~ResIDGenerator()
    */
 long ResIDGenerator::GenerateNewResID()
 {
-    if (max == LONG_MAX)
+    if (!subList.empty())
     {
-        if (!subList.empty())
-        {
-            long nRes = *(subList.begin());
-            subList.pop_front();
-            return nRes;
-        }
+        long nRes = *(subList.begin());
+        subList.pop_front();
+        return nRes;
     }
+    assert(max < LONG_MAX);
     return -(++max);
 }
 
commit c064e7f3b46d2e579ca4402f9cb5b7aba824fd0c
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Nov 26 23:29:50 2013 +0100

    winaccessibility: remove GetXAccByAccObj()
    
    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

diff --git a/winaccessibility/inc/AccObject.hxx b/winaccessibility/inc/AccObject.hxx
index 934b95d..d7ea3d4 100644
--- a/winaccessibility/inc/AccObject.hxx
+++ b/winaccessibility/inc/AccObject.hxx
@@ -79,7 +79,8 @@ public:
     void UpdateDefaultAction();
 
     IMAccessible*  GetIMAccessible();   //return COM interface in acc object
-    ::com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessible > GetXAccessible();
+    ::com::sun::star::uno::Reference<
+        ::com::sun::star::accessibility::XAccessible> const& GetXAccessible();
 
     void SetResID(long id);//ResID means ChildID in MSAA
     long GetResID();
diff --git a/winaccessibility/inc/AccObjectWinManager.hxx b/winaccessibility/inc/AccObjectWinManager.hxx
index afe4fe0..f58a858 100644
--- a/winaccessibility/inc/AccObjectWinManager.hxx
+++ b/winaccessibility/inc/AccObjectWinManager.hxx
@@ -78,8 +78,6 @@ private:
     long ImpleGenerateResID();
     AccObject* GetAccObjByXAcc( com::sun::star::accessibility::XAccessible* pXAcc);
 
-    com::sun::star::accessibility::XAccessible* GetXAccByAccObj(AccObject* pAccObj);
-
     AccObject* GetTopWindowAccObj(HWND hWnd);
 
     com::sun::star::accessibility::XAccessible* GetAccDocByHWND(HWND hWnd);
diff --git a/winaccessibility/source/service/AccObject.cxx b/winaccessibility/source/service/AccObject.cxx
index 3b8fedd..8c86498 100644
--- a/winaccessibility/source/service/AccObject.cxx
+++ b/winaccessibility/source/service/AccObject.cxx
@@ -1160,7 +1160,7 @@ IMAccessible*  AccObject::GetIMAccessible()
     return m_pIMAcc;
 }
 
-Reference < XAccessible > AccObject::GetXAccessible()
+Reference<XAccessible> const& AccObject::GetXAccessible()
 {
     return m_xAccRef;
 }
diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx
index 7bd1856..4bcc8df 100644
--- a/winaccessibility/source/service/AccObjectWinManager.cxx
+++ b/winaccessibility/source/service/AccObjectWinManager.cxx
@@ -173,24 +173,6 @@ AccObject* AccObjectWinManager::GetAccObjByXAcc( XAccessible* pXAcc)
 }
 
 /**
-   * Search XAccessible by AccObject pointer from our container.
-   * @param pAccObj AccObject pointer.
-   * @return Pointer of XAccessible Interface.
-   */
-XAccessible* AccObjectWinManager::GetXAccByAccObj(AccObject* pAccObj)
-{
-    XIdToAccObjHash::iterator iter = XIdAccList.begin();
-    while(iter!=XIdAccList.end())
-    {
-        AccObject* tmp = &(iter->second);
-        if(tmp== pAccObj)
-            return (XAccessible*)(iter->first);
-        iter++;
-    }
-    return NULL;
-}
-
-/**
    * get acc object of top window by its handle
    * @param hWnd, top window handle
    * @return pointer to AccObject
@@ -563,7 +545,6 @@ void AccObjectWinManager::DeleteChildrenAccObj(XAccessible* pXAcc)
 {
     AccObject* currentObj=NULL;
     AccObject* childObj=NULL;
-    XAccessible* pTmpXAcc=NULL;
 
     currentObj =  GetAccObjByXAcc( pXAcc);
     if(currentObj)
@@ -571,7 +552,7 @@ void AccObjectWinManager::DeleteChildrenAccObj(XAccessible* pXAcc)
         childObj = currentObj->NextChild();
         while(childObj)
         {
-            pTmpXAcc = GetXAccByAccObj(childObj);
+            XAccessible *const pTmpXAcc = childObj->GetXAccessible().get();
             if(pTmpXAcc)
             {
                 DeleteChildrenAccObj(pTmpXAcc);
commit d0b5b9ca886fe4a518ae86f5799fd5b1f17e4c38
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Nov 26 20:33:32 2013 +0100

    winaccessibility: remove AccEventListener::m_isDisposed
    
    It's disposed iff m_xAccessible is 0.
    
    Change-Id: I3f8bc104784adf82be43bcaf43b7573a9897f82a
    (cherry picked from commit a2afe344c6badf432983ce341d4154441837baf3)

diff --git a/winaccessibility/inc/AccEventListener.hxx b/winaccessibility/inc/AccEventListener.hxx
index f17fb2f..8f54400 100644
--- a/winaccessibility/inc/AccEventListener.hxx
+++ b/winaccessibility/inc/AccEventListener.hxx
@@ -44,8 +44,6 @@ protected:
         com::sun::star::accessibility::XAccessible> m_xAccessible;
     //agent pointer for objects' manager
     AccObjectManagerAgent* pAgent;
-    //disposed state indicator
-    bool  m_isDisposed;
 public:
     AccEventListener( com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
     virtual ~AccEventListener();
diff --git a/winaccessibility/source/service/AccEventListener.cxx b/winaccessibility/source/service/AccEventListener.cxx
index d52b114..73b0431 100644
--- a/winaccessibility/source/service/AccEventListener.cxx
+++ b/winaccessibility/source/service/AccEventListener.cxx
@@ -47,7 +47,6 @@ AccEventListener::AccEventListener(com::sun::star::accessibility::XAccessible* p
                                    AccObjectManagerAgent* Agent)
     : m_xAccessible(pAcc)
     , pAgent(Agent)
-    , m_isDisposed(false)
 {}
 
 AccEventListener::~AccEventListener()
@@ -230,9 +229,6 @@ void AccEventListener::RemoveMeFromBroadcaster()
 {
     try
     {
-        if(m_isDisposed)
-            return;
-
         if (!m_xAccessible.is())
         {
             return;
@@ -243,7 +239,6 @@ void AccEventListener::RemoveMeFromBroadcaster()
         {
             //remove the lister from accessible object
             xBroadcaster->removeAccessibleEventListener(this);
-            m_isDisposed = true;
             pAgent->NotifyDestroy(m_xAccessible.get());
         }
         m_xAccessible.clear(); // release cyclic reference
commit 43b5771fe3277184fe0f9403a29d2f33e02e227a
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Nov 26 20:30:52 2013 +0100

    winaccessibility: use uno::Reference in AccEventListener
    
    ... and clear it in disposing().
    
    Change-Id: I69cfe3cdcf6549a0471453960d1f935d9c3b7a0d
    (cherry picked from commit 83ccdb028529e85fe4c06a47ca57a4a5eeeed159)

diff --git a/winaccessibility/inc/AccEventListener.hxx b/winaccessibility/inc/AccEventListener.hxx
index a32ab46..f17fb2f 100644
--- a/winaccessibility/inc/AccEventListener.hxx
+++ b/winaccessibility/inc/AccEventListener.hxx
@@ -40,7 +40,8 @@ class AccEventListener
 {
 protected:
     //accessible owner's pointer
-    com::sun::star::accessibility::XAccessible* pAccessible;
+    com::sun::star::uno::Reference<
+        com::sun::star::accessibility::XAccessible> m_xAccessible;
     //agent pointer for objects' manager
     AccObjectManagerAgent* pAgent;
     //disposed state indicator
@@ -74,7 +75,7 @@ public:
     //for visible data changed event
     virtual void HandleVisibleDataChangedEvent();
 
-    //get the accessible role of pAccessible
+    // get the accessible role of m_xAccessible
     virtual short GetRole();
     //get the accessible parent's role
     virtual short GetParentRole();
diff --git a/winaccessibility/source/service/AccComponentEventListener.cxx b/winaccessibility/source/service/AccComponentEventListener.cxx
index 0374572..1facdd6 100644
--- a/winaccessibility/source/service/AccComponentEventListener.cxx
+++ b/winaccessibility/source/service/AccComponentEventListener.cxx
@@ -93,8 +93,8 @@ throw (::com::sun::star::uno::RuntimeException)
  */
 void AccComponentEventListener::HandleValueChangedEvent(Any oldValue, Any newValue)
 {
-    pAgent->UpdateValue(pAccessible);
-    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_VALUECHANGE, pAccessible);
+    pAgent->UpdateValue(m_xAccessible.get());
+    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_VALUECHANGE, m_xAccessible.get());
 }
 
 /**
@@ -102,8 +102,8 @@ void AccComponentEventListener::HandleValueChangedEvent(Any oldValue, Any newVal
  */
 void AccComponentEventListener::HandleActionChangedEvent()
 {
-    pAgent->UpdateAction(pAccessible);
-    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_DEFACTIONCHANGE, pAccessible);
+    pAgent->UpdateAction(m_xAccessible.get());
+    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_DEFACTIONCHANGE, m_xAccessible.get());
 }
 
 /**
@@ -114,8 +114,8 @@ void AccComponentEventListener::HandleActionChangedEvent()
  */
 void AccComponentEventListener::HandleTextChangedEvent(Any oldValue, Any newValue)
 {
-    pAgent->UpdateValue(pAccessible, newValue);
-    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_VALUECHANGE, pAccessible);
+    pAgent->UpdateValue(m_xAccessible.get(), newValue);
+    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_VALUECHANGE, m_xAccessible.get());
 }
 
 /**
@@ -126,7 +126,7 @@ void AccComponentEventListener::HandleTextChangedEvent(Any oldValue, Any newValu
  */
 void AccComponentEventListener::HandleCaretChangedEvent(Any oldValue, Any newValue)
 {
-    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_CARETCHANGE, pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_CARETCHANGE, m_xAccessible.get());
 }
 
 /**
@@ -153,13 +153,13 @@ void AccComponentEventListener::SetComponentState(short state, bool enable)
         {
             if(enable)
             {
-                pAgent->IncreaseState( pAccessible, AccessibleStateType::VISIBLE);
-                pAgent->IncreaseState( pAccessible, AccessibleStateType::FOCUSABLE);
+                pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
+                pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSABLE);
             }
             else
             {
-                pAgent->DecreaseState( pAccessible, AccessibleStateType::VISIBLE);
-                pAgent->DecreaseState( pAccessible, AccessibleStateType::FOCUSABLE);
+                pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
+                pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSABLE);
             }
         }
         else
@@ -174,20 +174,20 @@ void AccComponentEventListener::SetComponentState(short state, bool enable)
     case AccessibleStateType::ENABLED:
         if(enable)
         {
-            pAgent->UpdateState(pAccessible);
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::DEFUNC);
+            pAgent->UpdateState(m_xAccessible.get());
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::DEFUNC);
             // 8. label should have no FOCUSABLE state state, Firefox has READONLY state, we can also have.
             if (    GetRole() != AccessibleRole::LABEL
                 &&  GetRole() != AccessibleRole::SCROLL_BAR)
             {
-                pAgent->IncreaseState( pAccessible, AccessibleStateType::FOCUSABLE);
+                pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSABLE);
             }
         }
         else
         {
-            pAgent->UpdateState(pAccessible);
-            pAgent->IncreaseState( pAccessible, AccessibleStateType::DEFUNC);
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::FOCUSABLE);
+            pAgent->UpdateState(m_xAccessible.get());
+            pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::DEFUNC);
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSABLE);
         }
         break;
     case AccessibleStateType::ACTIVE:
@@ -214,33 +214,33 @@ void AccComponentEventListener::FireStatePropertyChange(short state, bool set)
             {
             case AccessibleStateType::CHECKED:
             case AccessibleStateType::INDETERMINATE:
-                pAgent->IncreaseState( pAccessible, state);
-                pAgent->UpdateAction( pAccessible );
+                pAgent->IncreaseState(m_xAccessible.get(), state);
+                pAgent->UpdateAction(m_xAccessible.get());
 
-                if(!pAgent->IsSpecialToolboItem(pAccessible))
+                if(!pAgent->IsSpecialToolboItem(m_xAccessible.get()))
                 {
-                    pAgent->NotifyAccEvent(UM_EVENT_STATE_CHECKED, pAccessible);
+                    pAgent->NotifyAccEvent(UM_EVENT_STATE_CHECKED, m_xAccessible.get());
                 }
                 break;
             case AccessibleStateType::PRESSED:
-                pAgent->IncreaseState( pAccessible, state);
-                pAgent->NotifyAccEvent(UM_EVENT_STATE_PRESSED, pAccessible);
+                pAgent->IncreaseState(m_xAccessible.get(), state);
+                pAgent->NotifyAccEvent(UM_EVENT_STATE_PRESSED, m_xAccessible.get());
                 break;
             case AccessibleStateType::SELECTED:
-                pAgent->IncreaseState( pAccessible, state);
+                pAgent->IncreaseState(m_xAccessible.get(), state);
                 break;
             case AccessibleStateType::ARMED:
-                pAgent->IncreaseState( pAccessible, state);
-                pAgent->NotifyAccEvent(UM_EVENT_STATE_ARMED, pAccessible);
+                pAgent->IncreaseState(m_xAccessible.get(), state);
+                pAgent->NotifyAccEvent(UM_EVENT_STATE_ARMED, m_xAccessible.get());
                 break;
             case AccessibleStateType::SHOWING:
-                pAgent->DecreaseState( pAccessible, AccessibleStateType::DEFUNC);
+                pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::DEFUNC);
                 // UNO !SHOWING == MSAA OFFSCREEN
-                pAgent->IncreaseState( pAccessible, AccessibleStateType::SHOWING );
+                pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::SHOWING );
                 break;
             case AccessibleStateType::VISIBLE:
                 // UNO !VISIBLE == MSAA INVISIBLE
-                pAgent->IncreaseState( pAccessible, AccessibleStateType::VISIBLE );
+                pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE );
                 break;
             default:
                 break;
@@ -253,38 +253,38 @@ void AccComponentEventListener::FireStatePropertyChange(short state, bool set)
         {
         case AccessibleStateType::CHECKED:
         case AccessibleStateType::INDETERMINATE:
-            pAgent->DecreaseState( pAccessible, state );
-            pAgent->UpdateAction( pAccessible );
+            pAgent->DecreaseState(m_xAccessible.get(), state);
+            pAgent->UpdateAction(m_xAccessible.get());
 
-            if(!pAgent->IsSpecialToolboItem(pAccessible))
+            if(!pAgent->IsSpecialToolboItem(m_xAccessible.get()))
             {
-                pAgent->NotifyAccEvent(UM_EVENT_STATE_CHECKED, pAccessible);
+                pAgent->NotifyAccEvent(UM_EVENT_STATE_CHECKED, m_xAccessible.get());
             }
             break;
         case AccessibleStateType::PRESSED:
-            pAgent->DecreaseState( pAccessible, state );
-            pAgent->NotifyAccEvent(UM_EVENT_STATE_PRESSED, pAccessible);
+            pAgent->DecreaseState(m_xAccessible.get(), state);
+            pAgent->NotifyAccEvent(UM_EVENT_STATE_PRESSED, m_xAccessible.get());
             break;
         case AccessibleStateType::SELECTED:
-            pAgent->DecreaseState( pAccessible, state );
+            pAgent->DecreaseState(m_xAccessible.get(), state);
             //if the state is unset, no need to send MSAA SELECTION event
-            //pAgent->NotifyAccEvent(UM_EVENT_STATE_SELECTED, pAccessible);
+            //pAgent->NotifyAccEvent(UM_EVENT_STATE_SELECTED, m_xAccessible.get());
             break;
         case AccessibleStateType::ARMED:
             {
-                pAgent->DecreaseState( pAccessible, state);
+                pAgent->DecreaseState(m_xAccessible.get(), state);
                 //if the state is unset, no need to send MSAA MENU event
-                //pAgent->NotifyAccEvent(UM_EVENT_STATE_ARMED, pAccessible);
+                //pAgent->NotifyAccEvent(UM_EVENT_STATE_ARMED, m_xAccessible.get());
             }
             break;
         case AccessibleStateType::SHOWING:
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::DEFUNC);
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::DEFUNC);
             // UNO !SHOWING == MSAA OFFSCREEN
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::SHOWING );
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::SHOWING);
             break;
         case AccessibleStateType::VISIBLE:
             // UNO !VISIBLE == MSAA INVISIBLE
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::VISIBLE );
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
             break;
 
         default:
@@ -303,24 +303,24 @@ void AccComponentEventListener::FireStateFocusedChange(bool enable)
     if(enable)
     {
         if (GetParentRole() != AccessibleRole::COMBO_BOX)
-            pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, m_xAccessible.get());
     }
     else
     {
         //if lose focus, no need to send MSAA FOCUS event
-        pAgent->DecreaseState( pAccessible, AccessibleStateType::FOCUSED);
+        pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSED);
     }
 }
 
 void AccComponentEventListener::HandleSelectionChangedEventNoArgs()
 {
-    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED, pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED, m_xAccessible.get());
 }
 
 //add TEXT_SELECTION_CHANGED event
 void AccComponentEventListener::HandleTextSelectionChangedEvent()
 {
-    pAgent->NotifyAccEvent(UM_EVENT_TEXT_SELECTION_CHANGED, pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_TEXT_SELECTION_CHANGED, m_xAccessible.get());
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/winaccessibility/source/service/AccContainerEventListener.cxx b/winaccessibility/source/service/AccContainerEventListener.cxx
index 8cb93c4..affaca2 100644
--- a/winaccessibility/source/service/AccContainerEventListener.cxx
+++ b/winaccessibility/source/service/AccContainerEventListener.cxx
@@ -131,7 +131,7 @@ void AccContainerEventListener::HandleChildChangedEvent(Any oldValue, Any newVal
             XAccessible* pAcc = xChild.get();
             //add this child
 
-            if(pAgent->InsertAccObj( pAcc,pAccessible))
+            if (pAgent->InsertAccObj(pAcc, m_xAccessible.get()))
             {
                 //add all oldValue's existing children
                 pAgent->InsertChildrenAccObj(pAcc);
@@ -174,7 +174,7 @@ void AccContainerEventListener::HandleSelectionChangedEvent(const Any& /*oldValu
 
     //menu bar does not process selection change event,just same as word behavior
     if (GetRole()!=AccessibleRole::MENU_BAR)
-        pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED, pAccessible);
+        pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED, m_xAccessible.get());
 }
 
 /**
@@ -183,13 +183,13 @@ void AccContainerEventListener::HandleSelectionChangedEvent(const Any& /*oldValu
 void AccContainerEventListener::HandleAllChildrenChangedEvent()
 {
     //TODO: update all the children
-    if( pAccessible )
+    if (m_xAccessible.is())
     {
         //delete all oldValue's existing children
-        pAgent->DeleteChildrenAccObj( pAccessible );
+        pAgent->DeleteChildrenAccObj(m_xAccessible.get());
         //add all oldValue's existing children
-        pAgent->InsertChildrenAccObj( pAccessible );
-        pAgent->NotifyAccEvent(UM_EVENT_OBJECT_REORDER , pAccessible);
+        pAgent->InsertChildrenAccObj(m_xAccessible.get());
+        pAgent->NotifyAccEvent(UM_EVENT_OBJECT_REORDER , m_xAccessible.get());
     }
 }
 
@@ -198,8 +198,8 @@ void AccContainerEventListener::HandleAllChildrenChangedEvent()
  */
 void AccContainerEventListener::HandleTextChangedEvent(Any oldValue, Any newValue)
 {
-    pAgent->UpdateValue(pAccessible, newValue);
-    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_TEXTCHANGE, pAccessible);
+    pAgent->UpdateValue(m_xAccessible.get(), newValue);
+    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_TEXTCHANGE, m_xAccessible.get());
 }
 
 /**
@@ -228,19 +228,19 @@ void AccContainerEventListener::SetComponentState(short state, bool enable )
     case AccessibleStateType::ENABLED:
         if(enable)
         {
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::DEFUNC);
-            pAgent->IncreaseState( pAccessible, AccessibleStateType::FOCUSABLE);
-            pAgent->UpdateState(pAccessible);
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::DEFUNC);
+            pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSABLE);
+            pAgent->UpdateState(m_xAccessible.get());
 
-            UpdateAllChildrenState(pAccessible);
+            UpdateAllChildrenState(m_xAccessible.get());
         }
         else
         {
-            pAgent->IncreaseState( pAccessible, AccessibleStateType::DEFUNC);
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::FOCUSABLE);
-            pAgent->UpdateState(pAccessible);
+            pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::DEFUNC);
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSABLE);
+            pAgent->UpdateState(m_xAccessible.get());
 
-            UpdateAllChildrenState(pAccessible);
+            UpdateAllChildrenState(m_xAccessible.get());
         }
         break;
     case AccessibleStateType::ACTIVE:
@@ -251,12 +251,12 @@ void AccContainerEventListener::SetComponentState(short state, bool enable )
         {
             if (!enable) /* get the active state */
             {
-                pAgent->IncreaseState( pAccessible, AccessibleStateType::FOCUSED);
+                pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSED);
             }
 
             else    /* lose the active state */
             {
-                pAgent->DecreaseState( pAccessible, AccessibleStateType::FOCUSED);
+                pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSED);
             }
         }
         break;
@@ -265,8 +265,8 @@ void AccContainerEventListener::SetComponentState(short state, bool enable )
     case AccessibleStateType::COLLAPSE:
     case AccessibleStateType::CHECKED:
         {
-            pAgent->UpdateState(pAccessible);
-            pAgent->NotifyAccEvent(UM_EVENT_STATE_BUSY, pAccessible);
+            pAgent->UpdateState(m_xAccessible.get());
+            pAgent->NotifyAccEvent(UM_EVENT_STATE_BUSY, m_xAccessible.get());
             break;
         }
 
@@ -288,22 +288,22 @@ void AccContainerEventListener::FireStatePropertyChange(short state, bool set)
         switch(state)
         {
         case AccessibleStateType::SELECTED:
-            pAgent->IncreaseState( pAccessible, state);
+            pAgent->IncreaseState(m_xAccessible.get(), state);
             break;
         case AccessibleStateType::INDETERMINATE:
         case AccessibleStateType::BUSY:
         case AccessibleStateType::FOCUSABLE:
         case AccessibleStateType::OFFSCREEN:
-            pAgent->IncreaseState( pAccessible, state);
-            pAgent->NotifyAccEvent(UM_EVENT_STATE_BUSY, pAccessible);
+            pAgent->IncreaseState(m_xAccessible.get(), state);
+            pAgent->NotifyAccEvent(UM_EVENT_STATE_BUSY, m_xAccessible.get());
             break;
         case AccessibleStateType::SHOWING:
             // UNO !SHOWING == MSAA OFFSCREEN
-            pAgent->IncreaseState( pAccessible, AccessibleStateType::SHOWING );
+            pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::SHOWING);
             break;
         case AccessibleStateType::VISIBLE:
             // UNO !VISIBLE == MSAA INVISIBLE
-            pAgent->IncreaseState( pAccessible, AccessibleStateType::VISIBLE );
+            pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
             break;
         default:
             break;
@@ -315,22 +315,22 @@ void AccContainerEventListener::FireStatePropertyChange(short state, bool set)
         switch(state)
         {
         case AccessibleStateType::SELECTED:
-            pAgent->DecreaseState( pAccessible, state );
+            pAgent->DecreaseState(m_xAccessible.get(), state);
             break;
         case AccessibleStateType::BUSY:
         case AccessibleStateType::INDETERMINATE:
         case AccessibleStateType::FOCUSABLE:
         case AccessibleStateType::OFFSCREEN:
-            pAgent->DecreaseState( pAccessible, state);
-            pAgent->NotifyAccEvent(UM_EVENT_STATE_BUSY, pAccessible);
+            pAgent->DecreaseState(m_xAccessible.get(), state);
+            pAgent->NotifyAccEvent(UM_EVENT_STATE_BUSY, m_xAccessible.get());
             break;
         case AccessibleStateType::SHOWING:
             // UNO !SHOWING == MSAA OFFSCREEN
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::SHOWING );
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::SHOWING);
             break;
         case AccessibleStateType::VISIBLE:
             // UNO !VISIBLE == MSAA INVISIBLE
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::VISIBLE );
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
             break;
         default:
             break;
@@ -346,16 +346,16 @@ void AccContainerEventListener::FireStateFocusedChange(bool enable)
 {
     if(enable)
     {
-        pAgent->IncreaseState( pAccessible, AccessibleStateType::FOCUSED);
+        pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSED);
         //if the acc role is MENU_BAR, MSAA UM_EVENT_MENU_START event should be sent
         //if the acc role is POPUP_MENU, MSAA UM_EVENT_MENUPOPUPSTART event should be sent
         short role = GetRole();
         if(role == AccessibleRole::MENU_BAR)
         {
-            pAgent->NotifyAccEvent(UM_EVENT_MENU_START, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_MENU_START, m_xAccessible.get());
         }
         else if (role == AccessibleRole::POPUP_MENU)
-            pAgent->NotifyAccEvent(UM_EVENT_MENUPOPUPSTART, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_MENUPOPUPSTART, m_xAccessible.get());
         //Disable the focused event on option_pane and Panel.
         //only disable option_pane for toolbar has panel to get focus
         else if (role == AccessibleRole::PANEL || role == AccessibleRole::OPTION_PANE )
@@ -365,16 +365,16 @@ void AccContainerEventListener::FireStateFocusedChange(bool enable)
             if (parentRole == AccessibleRole::TOOL_BAR
                 || parentRole == AccessibleRole::SCROLL_PANE // sidebar
                 || parentRole == AccessibleRole::PANEL) // sidebar
-                pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, pAccessible);
+                pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, m_xAccessible.get());
         }
         //to update ComboBox's description
         else if (role == AccessibleRole::COMBO_BOX )
         {
-            pAgent->UpdateDescription(pAccessible);
+            pAgent->UpdateDescription(m_xAccessible.get());
             //for editable combobox, send focus event on only edit control,
             bool bSendFocusOnCombobox = true;
             //send focused event to the first text child
-            Reference<XAccessibleContext> mxContext(pAccessible->getAccessibleContext(),UNO_QUERY);
+            Reference<XAccessibleContext> mxContext(m_xAccessible.get()->getAccessibleContext(), UNO_QUERY);
             if(mxContext.is())
             {
                 Reference<XAccessible> mxChild = mxContext->getAccessibleChild(0);
@@ -386,7 +386,7 @@ void AccContainerEventListener::FireStateFocusedChange(bool enable)
                     {
                         if (IsEditable(mxChildContext))
                         {
-                            pAgent->DecreaseState( pAccessible, AccessibleStateType::FOCUSED);
+                            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSED);
                             pAgent->IncreaseState( mxChild.get(), AccessibleStateType::FOCUSED);
                             pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, mxChild.get());
                             bSendFocusOnCombobox = false;
@@ -395,23 +395,23 @@ void AccContainerEventListener::FireStateFocusedChange(bool enable)
                 }
             }
             if (bSendFocusOnCombobox)
-                pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, pAccessible);
+                pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, m_xAccessible.get());
         }
         else
-            pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, m_xAccessible.get());
     }
     else
     {
-        pAgent->DecreaseState( pAccessible, AccessibleStateType::FOCUSED);
+        pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSED);
         //if the acc role is MENU_BAR, MSAA UM_EVENT_MENU_END event should be sent
         //if the acc role is POPUP_MENU, MSAA UM_EVENT_MENUPOPUPEND event should be sent
         if (GetRole() == AccessibleRole::MENU_BAR)
         {
-            pAgent->NotifyAccEvent(UM_EVENT_MENU_END, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_MENU_END, m_xAccessible.get());
         }
         else if (GetRole() == AccessibleRole::POPUP_MENU)
         {
-            pAgent->NotifyAccEvent(UM_EVENT_MENUPOPUPEND, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_MENUPOPUPEND, m_xAccessible.get());
         }
     }
 }
@@ -424,8 +424,8 @@ void AccContainerEventListener::FireStateFocusedChange(bool enable)
  */
 void AccContainerEventListener::HandleValueChangedEvent(Any oldValue, Any newValue)
 {
-    pAgent->UpdateValue(pAccessible);
-    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_VALUECHANGE, pAccessible);
+    pAgent->UpdateValue(m_xAccessible.get());
+    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_VALUECHANGE, m_xAccessible.get());
 }
 
 bool AccContainerEventListener::IsEditable(Reference<XAccessibleContext> xContext)
@@ -466,7 +466,7 @@ void AccContainerEventListener::HandleSelectionChangedAddEvent(const Any& /*oldV
     {
         return ;
     }
-    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_ADD,pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_ADD, m_xAccessible.get());
 }
 
 void AccContainerEventListener::HandleSelectionChangedRemoveEvent(const Any& /*oldValue*/, const Any& newValue)
@@ -475,7 +475,7 @@ void AccContainerEventListener::HandleSelectionChangedRemoveEvent(const Any& /*o
     {
         return ;
     }
-    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_REMOVE,pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_REMOVE, m_xAccessible.get());
 }
 
 void AccContainerEventListener::HandleSelectionChangedWithinEvent(const Any& /*oldValue*/, const Any& newValue)
@@ -484,7 +484,7 @@ void AccContainerEventListener::HandleSelectionChangedWithinEvent(const Any& /*o
     {
         return ;
     }
-    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_WITHIN,pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_WITHIN, m_xAccessible.get());
 }
 
 void AccContainerEventListener::UpdateAllChildrenState(XAccessible* pXAccessible)
@@ -522,24 +522,24 @@ void AccContainerEventListener::UpdateAllChildrenState(XAccessible* pXAccessible
 
 void AccContainerEventListener::HandlePageChangedEvent(const Any& /*oldValue*/, const Any& /*newValue*/)
 {
-    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_PAGECHANGED, pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_PAGECHANGED, m_xAccessible.get());
 }
 
 void AccContainerEventListener::HandleSectionChangedEvent(const Any& /*oldValue*/, const Any& /*newValue*/ )
 {
-    pAgent->NotifyAccEvent(UM_EVENT_SECTION_CHANGED, pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_SECTION_CHANGED, m_xAccessible.get());
 }
 
 void AccContainerEventListener::HandleColumnChangedEvent(const Any& /*oldValue*/, const Any& /*newValue*/)
 {
-    pAgent->NotifyAccEvent(UM_EVENT_COLUMN_CHANGED, pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_COLUMN_CHANGED, m_xAccessible.get());
 }
 
 void  AccContainerEventListener::HandleNameChangedEvent( Any name )
 {
     if (GetRole() == AccessibleRole::COMBO_BOX)
     {
-        Reference<XAccessibleContext> mxContext(pAccessible->getAccessibleContext(),UNO_QUERY);
+        Reference<XAccessibleContext> mxContext(m_xAccessible->getAccessibleContext());
         if(mxContext.is())
         {
             Reference<XAccessible> mxChild = mxContext->getAccessibleChild(0);
diff --git a/winaccessibility/source/service/AccDescendantManagerEventListener.cxx b/winaccessibility/source/service/AccDescendantManagerEventListener.cxx
index e57295e..e292911 100644
--- a/winaccessibility/source/service/AccDescendantManagerEventListener.cxx
+++ b/winaccessibility/source/service/AccDescendantManagerEventListener.cxx
@@ -91,7 +91,7 @@ void AccDescendantManagerEventListener::HandleChildChangedEvent(Any oldValue, An
         if(xChild.is())
         {
             XAccessible* pAcc = xChild.get();
-            pAgent->InsertAccObj( pAcc,pAccessible);
+            pAgent->InsertAccObj(pAcc, m_xAccessible.get());
             pAgent->InsertChildrenAccObj(pAcc);
 
             pAgent->NotifyAccEvent(UM_EVENT_CHILD_ADDED, pAcc);
@@ -149,7 +149,7 @@ void AccDescendantManagerEventListener::HandleSelectionChangedEvent(Any oldValue
     }
     if (!bSend)
     {
-        pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED, pAccessible);
+        pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED, m_xAccessible.get());
     }
 }
 
@@ -163,7 +163,7 @@ void AccDescendantManagerEventListener::HandleChildChangedNoFocusEvent(Any oldVa
         {
             XAccessible* pAcc = xChild.get();
 
-            pAgent->InsertAccObj(pAcc,pAccessible);
+            pAgent->InsertAccObj(pAcc, m_xAccessible.get());
             pAgent->InsertChildrenAccObj(pAcc);
         }
     }
@@ -188,7 +188,8 @@ bool AccDescendantManagerEventListener::NotifyChildEvent(short nWinEvent,const A
             XAccessible* pAcc = xChild.get();
             pAgent->NotifyAccEvent(nWinEvent, pAcc);
 
-            if (pAgent && pAgent->IsStateManageDescendant(pAccessible) && ( nWinEvent == UM_EVENT_SELECTION_CHANGED_REMOVE) )
+            if (pAgent && pAgent->IsStateManageDescendant(m_xAccessible.get())
+                    && (nWinEvent == UM_EVENT_SELECTION_CHANGED_REMOVE))
             {
                 pAgent->DeleteAccObj( pAcc );
             }
@@ -203,7 +204,7 @@ void AccDescendantManagerEventListener::HandleSelectionChangedAddEvent(const Any
     {
         return ;
     }
-    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_ADD,pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_ADD, m_xAccessible.get());
 }
 
 void AccDescendantManagerEventListener::HandleSelectionChangedRemoveEvent(const Any& /*oldValue*/, const Any &newValue)
@@ -212,7 +213,7 @@ void AccDescendantManagerEventListener::HandleSelectionChangedRemoveEvent(const
     {
         return ;
     }
-    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_REMOVE,pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_REMOVE, m_xAccessible.get());
 }
 
 void AccDescendantManagerEventListener::HandleSelectionChangedWithinEvent(const Any& /*oldValue*/, const Any &newValue)
@@ -221,7 +222,7 @@ void AccDescendantManagerEventListener::HandleSelectionChangedWithinEvent(const
     {
         return ;
     }
-    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_WITHIN,pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED_WITHIN, m_xAccessible.get());
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/winaccessibility/source/service/AccDialogEventListener.cxx b/winaccessibility/source/service/AccDialogEventListener.cxx
index e0d9a5b..474edde 100644
--- a/winaccessibility/source/service/AccDialogEventListener.cxx
+++ b/winaccessibility/source/service/AccDialogEventListener.cxx
@@ -80,7 +80,7 @@ void AccDialogEventListener::HandleChildChangedEvent(Any oldValue, Any newValue)
         {
             XAccessible* pAcc = xChild.get();
             //add this child
-            pAgent->InsertAccObj( pAcc,pAccessible);
+            pAgent->InsertAccObj(pAcc, m_xAccessible.get());
             //add all oldValue's existing children
             pAgent->InsertChildrenAccObj(pAcc);
             pAgent->NotifyAccEvent(UM_EVENT_CHILD_ADDED, pAcc);
@@ -122,9 +122,9 @@ void AccDialogEventListener::SetComponentState(short state, bool enable)
     case AccessibleStateType::VISIBLE:
         // UNO !VISIBLE == MSAA INVISIBLE
         if( enable )
-            pAgent->IncreaseState( pAccessible, AccessibleStateType::VISIBLE );
+            pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
         else
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::VISIBLE );
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
         break;
     case AccessibleStateType::ACTIVE:
         // Only frames should be active
diff --git a/winaccessibility/source/service/AccEventListener.cxx b/winaccessibility/source/service/AccEventListener.cxx
index 151aa7f..d52b114 100644
--- a/winaccessibility/source/service/AccEventListener.cxx
+++ b/winaccessibility/source/service/AccEventListener.cxx
@@ -45,7 +45,7 @@ using namespace cppu;
 
 AccEventListener::AccEventListener(com::sun::star::accessibility::XAccessible* pAcc,
                                    AccObjectManagerAgent* Agent)
-    : pAccessible(pAcc)
+    : m_xAccessible(pAcc)
     , pAgent(Agent)
     , m_isDisposed(false)
 {}
@@ -85,9 +85,9 @@ throw (::com::sun::star::uno::RuntimeException)
  */
 void AccEventListener::HandleNameChangedEvent(Any name)
 {
-    if ( pAgent->IsTopWinAcc( pAccessible ) )
+    if (pAgent->IsTopWinAcc(m_xAccessible.get()))
     {
-        XAccessible* pAccDoc = pAgent->GetAccDocByAccTopWin( pAccessible );
+        XAccessible* pAccDoc = pAgent->GetAccDocByAccTopWin(m_xAccessible.get());
         if ( pAccDoc )
         {
             pAgent->UpdateAccName(pAccDoc);
@@ -95,8 +95,8 @@ void AccEventListener::HandleNameChangedEvent(Any name)
         }
     }
 
-    pAgent->UpdateAccName(pAccessible, name);
-    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_NAMECHANGE, pAccessible);
+    pAgent->UpdateAccName(m_xAccessible.get(), name);
+    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_NAMECHANGE, m_xAccessible.get());
 }
 
 /**
@@ -105,8 +105,8 @@ void AccEventListener::HandleNameChangedEvent(Any name)
  */
 void AccEventListener::HandleDescriptionChangedEvent(Any desc)
 {
-    pAgent->UpdateDescription(pAccessible, desc);
-    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_DESCRIPTIONCHANGE, pAccessible);
+    pAgent->UpdateDescription(m_xAccessible.get(), desc);
+    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_DESCRIPTIONCHANGE, m_xAccessible.get());
 }
 
 /**
@@ -114,8 +114,8 @@ void AccEventListener::HandleDescriptionChangedEvent(Any desc)
  */
 void AccEventListener::HandleBoundrectChangedEvent()
 {
-    pAgent->UpdateLocation(pAccessible);
-    pAgent->NotifyAccEvent(UM_EVENT_BOUNDRECT_CHANGED, pAccessible);
+    pAgent->UpdateLocation(m_xAccessible.get());
+    pAgent->NotifyAccEvent(UM_EVENT_BOUNDRECT_CHANGED, m_xAccessible.get());
 }
 
 /**
@@ -123,8 +123,8 @@ void AccEventListener::HandleBoundrectChangedEvent()
  */
 void AccEventListener::HandleVisibleDataChangedEvent()
 {
-    pAgent->UpdateValue(pAccessible);
-    pAgent->NotifyAccEvent(UM_EVENT_VISIBLE_DATA_CHANGED, pAccessible);
+    pAgent->UpdateValue(m_xAccessible.get());
+    pAgent->NotifyAccEvent(UM_EVENT_VISIBLE_DATA_CHANGED, m_xAccessible.get());
 }
 
 /**
@@ -171,8 +171,8 @@ void AccEventListener::FireStateFocusedChange(bool enable)
 {
     if(enable)
     {
-        pAgent->IncreaseState( pAccessible, AccessibleStateType::FOCUSED);
-        pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, pAccessible);
+        pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::FOCUSED);
+        pAgent->NotifyAccEvent(UM_EVENT_STATE_FOCUSED, m_xAccessible.get());
     }
     else
     {
@@ -203,7 +203,8 @@ void AccEventListener::FireStatePropertyChange(short /*state*/, bool set )
  */
 short AccEventListener::GetRole()
 {
-    Reference<com::sun::star::accessibility::XAccessibleContext> xContext(pAccessible->getAccessibleContext(),UNO_QUERY);
+    Reference<com::sun::star::accessibility::XAccessibleContext> const
+        xContext(m_xAccessible->getAccessibleContext());
     if(xContext.is())
     {
         return xContext->getAccessibleRole();
@@ -216,9 +217,9 @@ short AccEventListener::GetRole()
  */
 short AccEventListener::GetParentRole()
 {
-    if(pAccessible)
+    if (m_xAccessible.is())
     {
-        return pAgent->GetParentRole(pAccessible);
+        return pAgent->GetParentRole(m_xAccessible.get());
     }
     return -1;
 }
@@ -231,35 +232,21 @@ void AccEventListener::RemoveMeFromBroadcaster()
     {
         if(m_isDisposed)
             return;
-        //get accessible context
-        Reference< XAccessibleContext > pRContext;
-        XAccessibleContext* pContext =NULL;
 
-        if( pAccessible == NULL)
+        if (!m_xAccessible.is())
         {
             return;
         }
-        pRContext = pAccessible->getAccessibleContext();
-        if( !pRContext.is() )
-        {
-            return;
-        }
-
-        //get broadcaster from accessible component
-        Reference<XAccessibleComponent> xComponent(pRContext,UNO_QUERY);
-        if(!xComponent.is())
-        {
-            return;
-        }
-        Reference<XAccessibleEventBroadcaster> broadcaster(xComponent,UNO_QUERY);
-        XAccessibleEventBroadcaster* pBroadcaster = broadcaster.get();
-        if (pBroadcaster != NULL)
+        Reference<XAccessibleEventBroadcaster> const xBroadcaster(
+                m_xAccessible->getAccessibleContext(), UNO_QUERY);
+        if (xBroadcaster.is())
         {
             //remove the lister from accessible object
-            pBroadcaster->removeAccessibleEventListener(this);
+            xBroadcaster->removeAccessibleEventListener(this);
             m_isDisposed = true;
-            pAgent->NotifyDestroy(pAccessible);
+            pAgent->NotifyDestroy(m_xAccessible.get());
         }
+        m_xAccessible.clear(); // release cyclic reference
     }
     catch(...)
     {
diff --git a/winaccessibility/source/service/AccFrameEventListener.cxx b/winaccessibility/source/service/AccFrameEventListener.cxx
index 98d7b41..c509cae 100644
--- a/winaccessibility/source/service/AccFrameEventListener.cxx
+++ b/winaccessibility/source/service/AccFrameEventListener.cxx
@@ -86,12 +86,13 @@ void AccFrameEventListener::HandleChildChangedEvent(Any oldValue, Any newValue)
         {
             XAccessible* pAcc = xChild.get();
 
-            VCLXWindow* pvclwindow = (VCLXWindow*)pAccessible;
+            VCLXWindow* pvclwindow =
+                dynamic_cast<VCLXWindow*>(m_xAccessible.get());
             Window* window = pvclwindow->GetWindow();
             const SystemEnvData* systemdata=window->GetSystemData();
 
             //add this child
-            pAgent->InsertAccObj(pAcc, pAccessible,
+            pAgent->InsertAccObj(pAcc, m_xAccessible.get(),
                     reinterpret_cast<sal_Int64>(systemdata->hWnd));
             //add all oldValue's existing children
             pAgent->InsertChildrenAccObj(pAcc);
@@ -134,9 +135,9 @@ void AccFrameEventListener::SetComponentState(short state, bool enable )
     case AccessibleStateType::VISIBLE:
         // UNO !VISIBLE == MSAA INVISIBLE
         if( enable )
-            pAgent->IncreaseState( pAccessible, AccessibleStateType::VISIBLE );
+            pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
         else
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::VISIBLE );
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
         break;
     case AccessibleStateType::ACTIVE:
         // Only frames should be active
diff --git a/winaccessibility/source/service/AccListEventListener.cxx b/winaccessibility/source/service/AccListEventListener.cxx
index de7859a..9d809e9 100644
--- a/winaccessibility/source/service/AccListEventListener.cxx
+++ b/winaccessibility/source/service/AccListEventListener.cxx
@@ -85,7 +85,7 @@ void AccListEventListener::HandleActiveDescendantChangedEvent(Any oldValue, Any
             XAccessible* pAcc = xChild.get();
 
             // Valueset has cache the child item xacc,Update state if no insert obj
-            sal_Bool bHasCache = pAgent->InsertAccObj(pAcc,pAccessible);
+            bool bHasCache = pAgent->InsertAccObj(pAcc, m_xAccessible.get());
             if (!bHasCache)
             {
                 pAgent->UpdateState(pAcc);
@@ -117,7 +117,8 @@ void AccListEventListener::HandleValueChangedEvent(Any oldValue, Any newValue)
     //to enable value changed event
     if (GetParentRole() == AccessibleRole::COMBO_BOX)
     {
-        XAccessible* pParentAcc = pAgent->GetParentXAccessible(pAccessible);
+        XAccessible* pParentAcc =
+            pAgent->GetParentXAccessible(m_xAccessible.get());
         pAgent->UpdateValue(pParentAcc);
         pAgent->NotifyAccEvent(UM_EVENT_OBJECT_VALUECHANGE, pParentAcc);
     }
diff --git a/winaccessibility/source/service/AccMenuEventListener.cxx b/winaccessibility/source/service/AccMenuEventListener.cxx
index 36a96e5..7be29cd 100644
--- a/winaccessibility/source/service/AccMenuEventListener.cxx
+++ b/winaccessibility/source/service/AccMenuEventListener.cxx
@@ -79,7 +79,7 @@ void AccMenuEventListener::HandleChildChangedEvent(Any oldValue, Any newValue)
         {
             XAccessible* pAcc = xChild.get();
             //add this child
-            pAgent->InsertAccObj( pAcc,pAccessible);
+            pAgent->InsertAccObj(pAcc, m_xAccessible.get());
             //add all oldValue's existing children
             pAgent->InsertChildrenAccObj(pAcc);
             pAgent->NotifyAccEvent(UM_EVENT_CHILD_ADDED, pAcc);
@@ -110,7 +110,7 @@ void AccMenuEventListener::HandleChildChangedEvent(Any oldValue, Any newValue)
  */
 void AccMenuEventListener::HandleSelectionChangedEventNoArgs()
 {
-    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED, pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_SELECTION_CHANGED, m_xAccessible.get());
 }
 
 /**
@@ -125,9 +125,8 @@ void AccMenuEventListener::FireStatePropertyChange(short state, bool set)
         {
             //for sub menu is popup, there is a menu selected event.
         case AccessibleStateType::SELECTED:
-            pAgent->IncreaseState( pAccessible, state);
-
-            pAgent->UpdateChildState(pAccessible);
+            pAgent->IncreaseState(m_xAccessible.get(), state);
+            pAgent->UpdateChildState(m_xAccessible.get());
             break;
         default:
             AccComponentEventListener::FireStatePropertyChange(state, set);
@@ -140,7 +139,7 @@ void AccMenuEventListener::FireStatePropertyChange(short state, bool set)
         {
             //for sub menu is popup, there is a menu selected event.
         case AccessibleStateType::SELECTED:
-            pAgent->DecreaseState( pAccessible, state );
+            pAgent->DecreaseState(m_xAccessible.get(), state);
 
             break;
         default:
diff --git a/winaccessibility/source/service/AccObjectContainerEventListener.cxx b/winaccessibility/source/service/AccObjectContainerEventListener.cxx
index 40f7727..90f9d74 100644
--- a/winaccessibility/source/service/AccObjectContainerEventListener.cxx
+++ b/winaccessibility/source/service/AccObjectContainerEventListener.cxx
@@ -53,9 +53,8 @@ void AccObjectContainerEventListener::HandleStateChangedEvent(Any oldValue, Any
     {
         if (newV == AccessibleStateType::FOCUSED)
         {
-            pAgent->UpdateAccName(pAccessible);
-
-            pAgent->UpdateDescription(pAccessible);
+            pAgent->UpdateAccName(m_xAccessible.get());
+            pAgent->UpdateDescription(m_xAccessible.get());
         }
     }
     AccContainerEventListener::HandleStateChangedEvent(oldValue, newValue);
diff --git a/winaccessibility/source/service/AccParagraphEventListener.cxx b/winaccessibility/source/service/AccParagraphEventListener.cxx
index d3b0b39..a8db40d 100644
--- a/winaccessibility/source/service/AccParagraphEventListener.cxx
+++ b/winaccessibility/source/service/AccParagraphEventListener.cxx
@@ -65,12 +65,12 @@ throw (::com::sun::star::uno::RuntimeException)
             short State;
             if( (aEvent.NewValue >>= State) && (State == AccessibleStateType::SELECTED) )
             {
-                pAgent->IncreaseState( pAccessible, State);
+                pAgent->IncreaseState(m_xAccessible.get(), State);
                 break;
             }
             else if( (aEvent.OldValue >>= State) && (State == AccessibleStateType::SELECTED) )
             {
-                pAgent->DecreaseState( pAccessible, State);
+                pAgent->DecreaseState(m_xAccessible.get(), State);
                 break;
             }
 
@@ -95,8 +95,8 @@ throw (::com::sun::star::uno::RuntimeException)
  */
 void AccParagraphEventListener::HandleCaretChangedEvent(Any oldValue, Any newValue)
 {
-    pAgent->UpdateLocation(pAccessible);
-    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_CARETCHANGE, pAccessible);
+    pAgent->UpdateLocation(m_xAccessible.get());
+    pAgent->NotifyAccEvent(UM_EVENT_OBJECT_CARETCHANGE, m_xAccessible.get());
 }
 
 /**
@@ -126,7 +126,7 @@ void AccParagraphEventListener::SetComponentState(short state, bool enable )
 
 void AccParagraphEventListener::HandleTextSelectionChangedEvent()
 {
-    pAgent->NotifyAccEvent(UM_EVENT_TEXT_SELECTION_CHANGED, pAccessible);
+    pAgent->NotifyAccEvent(UM_EVENT_TEXT_SELECTION_CHANGED, m_xAccessible.get());
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/winaccessibility/source/service/AccTableEventListener.cxx b/winaccessibility/source/service/AccTableEventListener.cxx
index 64ba8ca..2b477f7 100644
--- a/winaccessibility/source/service/AccTableEventListener.cxx
+++ b/winaccessibility/source/service/AccTableEventListener.cxx
@@ -58,25 +58,25 @@ throw (::com::sun::star::uno::RuntimeException)
     case AccessibleEventId::TABLE_CAPTION_CHANGED:
         {
 
-            pAgent->NotifyAccEvent(UM_EVENT_TABLE_CAPTION_CHANGED, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_TABLE_CAPTION_CHANGED, m_xAccessible.get());
             break;
         }
     case AccessibleEventId::TABLE_COLUMN_DESCRIPTION_CHANGED:
         {
 
-            pAgent->NotifyAccEvent(UM_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED, m_xAccessible.get());
             break;
         }
     case AccessibleEventId::TABLE_COLUMN_HEADER_CHANGED:
         {
 
-            pAgent->NotifyAccEvent(UM_EVENT_TABLE_COLUMN_HEADER_CHANGED, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_TABLE_COLUMN_HEADER_CHANGED, m_xAccessible.get());
             break;
         }
     case AccessibleEventId::TABLE_ROW_HEADER_CHANGED:
         {
 
-            pAgent->NotifyAccEvent(UM_EVENT_TABLE_ROW_HEADER_CHANGED, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_TABLE_ROW_HEADER_CHANGED, m_xAccessible.get());
             break;
         }
     case AccessibleEventId::TABLE_MODEL_CHANGED:
@@ -88,13 +88,13 @@ throw (::com::sun::star::uno::RuntimeException)
     case AccessibleEventId::TABLE_SUMMARY_CHANGED:
         {
 
-            pAgent->NotifyAccEvent(UM_EVENT_TABLE_SUMMARY_CHANGED, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_TABLE_SUMMARY_CHANGED, m_xAccessible.get());
             break;
         }
     case AccessibleEventId::TABLE_ROW_DESCRIPTION_CHANGED:
         {
 
-            pAgent->NotifyAccEvent(UM_EVENT_TABLE_ROW_DESCRIPTION_CHANGED, pAccessible);
+            pAgent->NotifyAccEvent(UM_EVENT_TABLE_ROW_DESCRIPTION_CHANGED, m_xAccessible.get());
             break;
         }
     default:
@@ -116,7 +116,7 @@ void AccTableEventListener::HandleActiveDescendantChangedEvent(Any oldValue, Any
         if(xChild.is())
         {
             XAccessible* pAcc = xChild.get();
-            pAgent->InsertAccObj(pAcc,pAccessible);
+            pAgent->InsertAccObj(pAcc, m_xAccessible.get());
             pAgent->NotifyAccEvent(UM_EVENT_ACTIVE_DESCENDANT_CHANGED, pAcc);
         }
     }
@@ -136,14 +136,14 @@ void AccTableEventListener::HandleTableModelChangeEvent(Any newValue)
     AccessibleTableModelChange aModelChange;
     if (newValue >>= aModelChange)
     {
-        if( pAccessible )
+        if (m_xAccessible.is())
         {
             //delete all oldValue's existing children
-            pAgent->DeleteChildrenAccObj( pAccessible );
+            pAgent->DeleteChildrenAccObj(m_xAccessible.get());
             //add all oldValue's existing children
-            pAgent->InsertChildrenAccObj( pAccessible );
+            pAgent->InsertChildrenAccObj(m_xAccessible.get());
         }
-        pAgent->NotifyAccEvent(UM_EVENT_TABLE_MODEL_CHANGED, pAccessible);
+        pAgent->NotifyAccEvent(UM_EVENT_TABLE_MODEL_CHANGED, m_xAccessible.get());
     }
 }
 
diff --git a/winaccessibility/source/service/AccTreeEventListener.cxx b/winaccessibility/source/service/AccTreeEventListener.cxx
index 3c0bb3b..fba5eb6 100644
--- a/winaccessibility/source/service/AccTreeEventListener.cxx
+++ b/winaccessibility/source/service/AccTreeEventListener.cxx
@@ -71,7 +71,7 @@ void AccTreeEventListener::HandleActiveDescendantChangedEvent(Any oldValue, Any
         if(xChild.is())
         {
             XAccessible* pAcc = xChild.get();
-            pAgent->InsertAccObj(pAcc,pAccessible);
+            pAgent->InsertAccObj(pAcc, m_xAccessible.get());
             pAgent->NotifyAccEvent(UM_EVENT_ACTIVE_DESCENDANT_CHANGED, pAcc);
         }
     }
diff --git a/winaccessibility/source/service/AccWindowEventListener.cxx b/winaccessibility/source/service/AccWindowEventListener.cxx
index 5191990..8e18313 100644
--- a/winaccessibility/source/service/AccWindowEventListener.cxx
+++ b/winaccessibility/source/service/AccWindowEventListener.cxx
@@ -79,7 +79,7 @@ void AccWindowEventListener::HandleChildChangedEvent(Any oldValue, Any newValue)
         {
             XAccessible* pAcc = xChild.get();
             //add this child
-            pAgent->InsertAccObj( pAcc,pAccessible);
+            pAgent->InsertAccObj(pAcc, m_xAccessible.get());
             //add all oldValue's existing children
             pAgent->InsertChildrenAccObj(pAcc);
             pAgent->NotifyAccEvent(UM_EVENT_CHILD_ADDED, pAcc);
@@ -119,18 +119,18 @@ void AccWindowEventListener::SetComponentState(short state, bool enable )
     case AccessibleStateType::VISIBLE:
         // UNO !VISIBLE == MSAA INVISIBLE
         if( enable )
-            pAgent->IncreaseState( pAccessible, AccessibleStateType::VISIBLE );
+            pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
         else
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::VISIBLE );
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::VISIBLE);
         break;
     case AccessibleStateType::SHOWING:
         // UNO !SHOWING == MSAA OFFSCREEN
         if( enable )
         {
-            pAgent->IncreaseState( pAccessible, AccessibleStateType::SHOWING );
+            pAgent->IncreaseState(m_xAccessible.get(), AccessibleStateType::SHOWING);
         }
         else
-            pAgent->DecreaseState( pAccessible, AccessibleStateType::SHOWING );
+            pAgent->DecreaseState(m_xAccessible.get(), AccessibleStateType::SHOWING);
         break;
     default:
         break;
commit 9d623125c64b0d532fd0203d96128c6decd0efff
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Nov 26 19:37:50 2013 +0100

    winaccessibility: use rtl::Reference for listener lifecycle
    
    The manual acquire() call was apparently not coupled with a release()?
    
    Change-Id: I069c969619e9afce2a4b836642cc1675025b11d0
    (cherry picked from commit ef3f28d0ce641e9d51d91412b176a1ecbdc69773)

diff --git a/winaccessibility/inc/AccObject.hxx b/winaccessibility/inc/AccObject.hxx
index 4f19c0f..934b95d 100644
--- a/winaccessibility/inc/AccObject.hxx
+++ b/winaccessibility/inc/AccObject.hxx
@@ -25,6 +25,8 @@
 #include <oleacc.h>
 #include <windows.h>
 
+#include <rtl/ref.hxx>
+
 #include <com/sun/star/accessibility/XAccessible.hpp>
 #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
 #include <com/sun/star/accessibility/XAccessibleAction.hpp>
@@ -51,7 +53,7 @@ private:
     IMAccessible*       m_pIMAcc;
     AccObject*          m_pParentObj;
     IAccChildList       m_childrenList;
-    AccEventListener*   m_accListener;
+    ::rtl::Reference<AccEventListener>  m_pListener;
     IAccSelectionList   m_selectionList;
 
     ::com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessible > m_xAccRef;
@@ -86,7 +88,7 @@ public:
     void SetParentHWND(HWND hWnd);//need to set top window handle when send event to AT
     HWND GetParentHWND();
 
-    void SetListener( AccEventListener* Listener );
+    void SetListener(::rtl::Reference<AccEventListener> const& pListener);
     AccEventListener* getListener();
 
     void SetParentObj(AccObject* pParentAccObj);
diff --git a/winaccessibility/inc/AccObjectWinManager.hxx b/winaccessibility/inc/AccObjectWinManager.hxx
index ab05a21..afe4fe0 100644
--- a/winaccessibility/inc/AccObjectWinManager.hxx
+++ b/winaccessibility/inc/AccObjectWinManager.hxx
@@ -26,7 +26,7 @@
 #include <map>
 #include <windows.h>
 #include <osl/mutex.hxx>
-#include <vcl/dllapi.h>
+#include <rtl/ref.hxx>
 #include "ResIDGenerator.hxx"
 #include "UAccCOM.h"
 
@@ -90,7 +90,8 @@ private:
     void       DeleteFromHwndXAcc(com::sun::star::accessibility::XAccessible* pXAcc );
     int  UpdateAccSelection(com::sun::star::accessibility::XAccessible* pXAcc);
 
-    AccEventListener* createAccEventListener(com::sun::star::accessibility::XAccessible* pXAcc, AccObjectManagerAgent* Agent);
+    ::rtl::Reference<AccEventListener> CreateAccEventListener(
+            com::sun::star::accessibility::XAccessible* pXAcc);
 public:
     virtual ~AccObjectWinManager();
     sal_Bool InsertAccObj( com::sun::star::accessibility::XAccessible* pXAcc,com::sun::star::accessibility::XAccessible* pParentXAcc,HWND pWnd);
diff --git a/winaccessibility/source/service/AccObject.cxx b/winaccessibility/source/service/AccObject.cxx
index 3c96308..3b8fedd 100644
--- a/winaccessibility/source/service/AccObject.cxx
+++ b/winaccessibility/source/service/AccObject.cxx
@@ -144,12 +144,12 @@ const short ROLE_TABLE[][2] =
    * @return.
    */
 AccObject::AccObject(XAccessible* pAcc, AccObjectManagerAgent* pAgent,
-                     AccEventListener* listener) :
+                     AccEventListener* pListener) :
         m_pIMAcc    (NULL),
         m_resID     (NULL),
         m_pParantID (NULL),
         m_pParentObj(NULL),
-        m_accListener (listener),
+        m_pListener (pListener),
         m_bShouldDestroy(sal_False),
         m_xAccRef( pAcc )
 {
@@ -1169,13 +1169,15 @@ void AccObject::SetParentHWND(HWND hWnd)
 {
     m_pParantID = hWnd;
 }
-void AccObject::SetListener( AccEventListener* Listener )
+
+void AccObject::SetListener(rtl::Reference<AccEventListener> const& pListener)
 {
-    m_accListener = Listener;
+    m_pListener = pListener;
 }
+
 AccEventListener* AccObject::getListener()
 {
-    return m_accListener;
+    return m_pListener.get();
 }
 
 long AccObject::GetResID()
diff --git a/winaccessibility/source/service/AccObjectWinManager.cxx b/winaccessibility/source/service/AccObjectWinManager.cxx
index 0e9c165..7bd1856 100644
--- a/winaccessibility/source/service/AccObjectWinManager.cxx
+++ b/winaccessibility/source/service/AccObjectWinManager.cxx
@@ -776,24 +776,16 @@ sal_Bool AccObjectWinManager::InsertAccObj( XAccessible* pXAcc,XAccessible* pPar
     }
     //end of file name
 
-    AccEventListener* listener = createAccEventListener(pXAcc, pAgent);
-    if(listener==NULL)
+    ::rtl::Reference<AccEventListener> const pListener =
+        CreateAccEventListener(pXAcc);
+    if (!pListener.is())
         return sal_False;
     Reference<XAccessibleComponent> xComponent(pRContext,UNO_QUERY);
     Reference<XAccessibleEventBroadcaster> broadcaster(xComponent,UNO_QUERY);
     if (broadcaster.is())
     {
-        Reference <XAccessibleEventListener> pp (
-            static_cast< XAccessibleEventListener* >(listener),UNO_QUERY );
-        if(pp.is())
-        {
-            broadcaster->addAccessibleEventListener(pp);
-        }
-        else
-        {
-            delete listener;
-            return sal_False;
-        }
+        Reference<XAccessibleEventListener> const xListener(pListener.get());
+        broadcaster->addAccessibleEventListener(xListener);
     }
     else
         return sal_False;
@@ -805,9 +797,7 @@ sal_Bool AccObjectWinManager::InsertAccObj( XAccessible* pXAcc,XAccessible* pPar
     AccObject* pCurObj = GetAccObjByXAcc(pXAcc);
     if( pCurObj )
     {
-        pCurObj->SetListener( listener );
-        if(listener != NULL)
-            listener->acquire();
+        pCurObj->SetListener(pListener);
     }
 
     AccObject* pParentObj = GetAccObjByXAcc(pParentXAcc);
@@ -830,32 +820,29 @@ void AccObjectWinManager::SaveTopWindowHandle(HWND hWnd, com::sun::star::accessi
 }
 
 
-/**
-   * create the corresponding listener.
-   * @param pXAcc XAccessible interface.
-   * @param Agent The agent kept in all listeners,it's the sole interface by which
-   *        listener communicate with windows manager.
-   * @return
-   */
-AccEventListener* AccObjectWinManager::createAccEventListener(XAccessible* pXAcc, AccObjectManagerAgent* /* Agent */ )
+/** Create the corresponding listener.
+ *  @param pXAcc XAccessible interface.
+ */
+::rtl::Reference<AccEventListener>
+AccObjectWinManager::CreateAccEventListener(XAccessible* pXAcc)
 {
-    AccEventListener* listener = NULL;
+    ::rtl::Reference<AccEventListener> pRet;
     Reference<XAccessibleContext> xContext(pXAcc->getAccessibleContext(),UNO_QUERY);
     if(xContext.is())
     {
         switch( xContext->getAccessibleRole() )
         {
         case /*AccessibleRole::*/DIALOG:
-            listener = new AccDialogEventListener(pXAcc,pAgent);
+            pRet = new AccDialogEventListener(pXAcc,pAgent);
             break;
         case /*AccessibleRole::*/FRAME:
-            listener = new AccFrameEventListener(pXAcc,pAgent);
+            pRet = new AccFrameEventListener(pXAcc,pAgent);
             break;
         case /*AccessibleRole::*/WINDOW:
-            listener = new AccWindowEventListener(pXAcc,pAgent);
+            pRet = new AccWindowEventListener(pXAcc,pAgent);
             break;
         case /*AccessibleRole::*/ROOT_PANE:
-            listener = new AccFrameEventListener(pXAcc,pAgent);
+            pRet = new AccFrameEventListener(pXAcc,pAgent);
             break;
             //Container
         case /*AccessibleRole::*/CANVAS:
@@ -879,11 +866,11 @@ AccEventListener* AccObjectWinManager::createAccEventListener(XAccessible* pXAcc
         case /*AccessibleRole::*/TABLE_CELL:
         case /*AccessibleRole::*/TOOL_BAR:
         case /*AccessibleRole::*/VIEW_PORT:
-            listener = new AccContainerEventListener(pXAcc,pAgent);
+            pRet = new AccContainerEventListener(pXAcc,pAgent);
             break;
         case /*AccessibleRole::*/PARAGRAPH:
         case /*AccessibleRole::*/HEADING:
-            listener = new AccParagraphEventListener(pXAcc,pAgent);
+            pRet = new AccParagraphEventListener(pXAcc,pAgent);
             break;
             //Component
         case /*AccessibleRole::*/CHECK_BOX:
@@ -901,15 +888,15 @@ AccEventListener* AccObjectWinManager::createAccEventListener(XAccessible* pXAcc
         case /*AccessibleRole::*/TOOL_TIP:
         case /*AccessibleRole::*/SPIN_BOX:
         case DATE_EDITOR:
-            listener = new AccComponentEventListener(pXAcc,pAgent);
+            pRet = new AccComponentEventListener(pXAcc,pAgent);
             break;
             //text component
         case /*AccessibleRole::*/TEXT:
-            listener = new AccTextComponentEventListener(pXAcc,pAgent);
+            pRet = new AccTextComponentEventListener(pXAcc,pAgent);
             break;
             //menu
         case /*AccessibleRole::*/MENU:
-            listener = new AccMenuEventListener(pXAcc,pAgent);
+            pRet = new AccMenuEventListener(pXAcc,pAgent);
             break;
             //object container
         case /*AccessibleRole::*/SHAPE:
@@ -917,27 +904,26 @@ AccEventListener* AccObjectWinManager::createAccEventListener(XAccessible* pXAcc
         case /*AccessibleRole::*/EMBEDDED_OBJECT:
         case /*AccessibleRole::*/GRAPHIC:
         case /*AccessibleRole::*/TEXT_FRAME:
-            listener = new AccObjectContainerEventListener(pXAcc,pAgent);
+            pRet = new AccObjectContainerEventListener(pXAcc,pAgent);
             break;
             //descendmanager
         case /*AccessibleRole::*/LIST:
-            listener = new AccListEventListener(pXAcc,pAgent);
+            pRet = new AccListEventListener(pXAcc,pAgent);
             break;
         case /*AccessibleRole::*/TREE:
-            listener = new AccTreeEventListener(pXAcc,pAgent);
+            pRet = new AccTreeEventListener(pXAcc,pAgent);
             break;
             //special
         case /*AccessibleRole::*/COLUMN_HEADER:
         case /*AccessibleRole::*/TABLE:
-            listener = new AccTableEventListener(pXAcc,pAgent);
+            pRet = new AccTableEventListener(pXAcc,pAgent);
             break;
         default:
-            listener = new AccContainerEventListener(pXAcc,pAgent);
+            pRet = new AccContainerEventListener(pXAcc,pAgent);
             break;
         }
     }
-
-    return listener;
+    return pRet;
 }
 
 /**
commit 2fc9b893cb00d9643a56bc5df291e40a212e156f
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Nov 26 15:51:03 2013 +0100

    winaccessibility: actually the member is unused, remove it
    
    Change-Id: I68e5c1785b73520cb59ca54a602ea176f8146f6f
    (cherry picked from commit 576ba8ce8238f6a092c74750a895e2e77297fc7e)

diff --git a/winaccessibility/inc/AccDescendantManagerEventListener.hxx b/winaccessibility/inc/AccDescendantManagerEventListener.hxx
index 3e7bedf..c21364f 100644
--- a/winaccessibility/inc/AccDescendantManagerEventListener.hxx
+++ b/winaccessibility/inc/AccDescendantManagerEventListener.hxx
@@ -33,9 +33,6 @@
  */
 class AccDescendantManagerEventListener: public AccComponentEventListener
 {
-protected:
-    ::com::sun::star::uno::Reference<
-        ::com::sun::star::accessibility::XAccessible > m_xActiveDescendant;
 
 public:
     AccDescendantManagerEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
diff --git a/winaccessibility/source/service/AccDescendantManagerEventListener.cxx b/winaccessibility/source/service/AccDescendantManagerEventListener.cxx
index 0c00da3..e57295e 100644
--- a/winaccessibility/source/service/AccDescendantManagerEventListener.cxx
+++ b/winaccessibility/source/service/AccDescendantManagerEventListener.cxx
@@ -165,8 +165,6 @@ void AccDescendantManagerEventListener::HandleChildChangedNoFocusEvent(Any oldVa
 
             pAgent->InsertAccObj(pAcc,pAccessible);
             pAgent->InsertChildrenAccObj(pAcc);
-
-            m_xActiveDescendant = xChild;
         }
     }
     if (oldValue >>= xChild)
diff --git a/winaccessibility/source/service/AccListEventListener.cxx b/winaccessibility/source/service/AccListEventListener.cxx
index 99b5be9..de7859a 100644
--- a/winaccessibility/source/service/AccListEventListener.cxx
+++ b/winaccessibility/source/service/AccListEventListener.cxx
@@ -94,8 +94,6 @@ void AccListEventListener::HandleActiveDescendantChangedEvent(Any oldValue, Any
             pAgent->IncreaseState( pAcc, AccessibleStateType::FOCUSED);
 
             pAgent->NotifyAccEvent(UM_EVENT_ACTIVE_DESCENDANT_CHANGED, pAcc);
-
-            m_xActiveDescendant = xChild;
         }
     }
     if (oldValue >>= xChild)
diff --git a/winaccessibility/source/service/AccTreeEventListener.cxx b/winaccessibility/source/service/AccTreeEventListener.cxx
index 374ca155..3c0bb3b 100644
--- a/winaccessibility/source/service/AccTreeEventListener.cxx
+++ b/winaccessibility/source/service/AccTreeEventListener.cxx
@@ -73,7 +73,6 @@ void AccTreeEventListener::HandleActiveDescendantChangedEvent(Any oldValue, Any
             XAccessible* pAcc = xChild.get();
             pAgent->InsertAccObj(pAcc,pAccessible);
             pAgent->NotifyAccEvent(UM_EVENT_ACTIVE_DESCENDANT_CHANGED, pAcc);
-            m_xActiveDescendant = xChild;
         }
     }
     if (oldValue >>= xChild)
commit 93e9f5e85b75d0f1a5adbb331dd35c7e5d7b6137
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Nov 26 15:48:30 2013 +0100

    winaccessibility: don't store XAccessible* in AccDescendant...Listener
    
    Seems safer to store a Reference
    
    Change-Id: I86ef9d18c03b2a58058d38e2ae43553ecd2c7be6
    (cherry picked from commit 887cf7ccc6c2cfc8652d646e15678c1c10155987)

diff --git a/winaccessibility/inc/AccDescendantManagerEventListener.hxx b/winaccessibility/inc/AccDescendantManagerEventListener.hxx
index bb5add6..3e7bedf 100644
--- a/winaccessibility/inc/AccDescendantManagerEventListener.hxx
+++ b/winaccessibility/inc/AccDescendantManagerEventListener.hxx
@@ -34,7 +34,9 @@
 class AccDescendantManagerEventListener: public AccComponentEventListener
 {
 protected:
-    ::com::sun::star::accessibility::XAccessible* pActiveDescendant;
+    ::com::sun::star::uno::Reference<
+        ::com::sun::star::accessibility::XAccessible > m_xActiveDescendant;
+
 public:
     AccDescendantManagerEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent);
     virtual ~AccDescendantManagerEventListener();
diff --git a/winaccessibility/source/service/AccDescendantManagerEventListener.cxx b/winaccessibility/source/service/AccDescendantManagerEventListener.cxx
index 6db2bc0..0c00da3 100644
--- a/winaccessibility/source/service/AccDescendantManagerEventListener.cxx
+++ b/winaccessibility/source/service/AccDescendantManagerEventListener.cxx
@@ -33,8 +33,7 @@ using namespace com::sun::star::uno;
 using namespace com::sun::star::accessibility;
 
 AccDescendantManagerEventListener::AccDescendantManagerEventListener(com::sun::star::accessibility::XAccessible* pAcc, AccObjectManagerAgent* Agent)
-        :AccComponentEventListener(pAcc, Agent),
-        pActiveDescendant(NULL)
+    :   AccComponentEventListener(pAcc, Agent)
 {
 }
 
@@ -167,7 +166,7 @@ void AccDescendantManagerEventListener::HandleChildChangedNoFocusEvent(Any oldVa
             pAgent->InsertAccObj(pAcc,pAccessible);
             pAgent->InsertChildrenAccObj(pAcc);
 
-            pActiveDescendant= pAcc;
+            m_xActiveDescendant = xChild;
         }
     }
     if (oldValue >>= xChild)
diff --git a/winaccessibility/source/service/AccListEventListener.cxx b/winaccessibility/source/service/AccListEventListener.cxx
index aa3a0a1..99b5be9 100644
--- a/winaccessibility/source/service/AccListEventListener.cxx
+++ b/winaccessibility/source/service/AccListEventListener.cxx
@@ -94,7 +94,8 @@ void AccListEventListener::HandleActiveDescendantChangedEvent(Any oldValue, Any
             pAgent->IncreaseState( pAcc, AccessibleStateType::FOCUSED);
 
             pAgent->NotifyAccEvent(UM_EVENT_ACTIVE_DESCENDANT_CHANGED, pAcc);
-            pActiveDescendant= pAcc;
+
+            m_xActiveDescendant = xChild;
         }
     }
     if (oldValue >>= xChild)
diff --git a/winaccessibility/source/service/AccTreeEventListener.cxx b/winaccessibility/source/service/AccTreeEventListener.cxx
index 6a66356..374ca155 100644
--- a/winaccessibility/source/service/AccTreeEventListener.cxx
+++ b/winaccessibility/source/service/AccTreeEventListener.cxx
@@ -73,7 +73,7 @@ void AccTreeEventListener::HandleActiveDescendantChangedEvent(Any oldValue, Any
             XAccessible* pAcc = xChild.get();
             pAgent->InsertAccObj(pAcc,pAccessible);
             pAgent->NotifyAccEvent(UM_EVENT_ACTIVE_DESCENDANT_CHANGED, pAcc);
-            pActiveDescendant = pAcc;
+            m_xActiveDescendant = xChild;
         }
     }
     if (oldValue >>= xChild)
commit 76c11b88ff10229c5c0c1576163a93b4a357ee33
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Nov 25 23:46:29 2013 +0100

    winaccessibility: why delayload the dlls?
    
    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)

diff --git a/winaccessibility/Library_uacccom.mk b/winaccessibility/Library_uacccom.mk
index f481b40..1bcdba6 100644
--- a/winaccessibility/Library_uacccom.mk
+++ b/winaccessibility/Library_uacccom.mk
@@ -50,9 +50,6 @@ $(eval $(call gb_Library_add_exception_objects,UAccCOM,\
 
 $(eval $(call gb_Library_add_ldflags,UAccCOM,\
 	/DEF:$(SRCDIR)/winaccessibility/source/UAccCOM/UAccCOM.def \
-	-LIBPATH:$(ATL_LIB) \
-	-delayload:$(call gb_Library_get_filename,cppu) \
-	-delayload:$(call gb_Library_get_filename,sal) \
 ))
 
 $(eval $(call gb_Library_use_libraries,UAccCOM,\
commit 0e679d7b41669628e05609c9742e75a22ef3005f
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Nov 25 18:57:49 2013 +0100

    winaccessibility: README already outdated
    
    Change-Id: Id0defc7e4fbe5b700362548559e08163a327399b
    (cherry picked from commit 2e243de2887f75fa1bd4146bc67d01ae08500d0d)

diff --git a/winaccessibility/README b/winaccessibility/README
index 45ec550..e27c68f 100644
--- a/winaccessibility/README
+++ b/winaccessibility/README
@@ -15,7 +15,7 @@ source/service/
 	  internal accessibilty objects when events arrive.
 
 source/UAccCom/
-	+ implementations of the MSAA / IAccessible2 interfaces
+	+ COM implementations of the MSAA / IAccessible2 interfaces
 	  to provide native peers for the accessbility code.
 
 source/UAccCOMIDL/
@@ -29,12 +29,7 @@ vcl/ <-> toolkit/ <-> accessibility/ <-> winaccessibility/ <-> UAccCom/
 
 Debugging / playing with winaccessibility
 
-First you need to ensure that UAccCOM.dll is registered, if this did
-not happen at install time use:
-
-regsvr32 /absolute/path/to/program/UAccCOM.dll
-
-Next you need to enable 'experiemental mode' in Tools->Options. After
+You need to enable 'experiemental mode' in Tools->Options. After
 that NVDA should work as expected. In order to use 'accprobe' to debug
 it is necessary to override the check for whether an AT (like NVDA) is
 running; to do that use:
commit f04c271169ab1c71d30457aafc519c77b3c7bbb8
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Nov 25 14:21:23 2013 +0100

    winaccessibility: remove all Registry content/registration code
    
    There is no need to register UAccCOM.
    
    (cherry picked from commit 455c39645e3fe1642679aa478c5b1b5a1d3ab0ae)
    
    Conflicts:
    	winaccessibility/source/UAccCOM/UAccCOM.cxx
    
    Change-Id: I37f5c4030abefbd18b6686652a348bc20a05a9db

diff --git a/winaccessibility/source/UAccCOM/AccAction.h b/winaccessibility/source/UAccCOM/AccAction.h
index 67e08bb..51a60f1 100644
--- a/winaccessibility/source/UAccCOM/AccAction.h
+++ b/winaccessibility/source/UAccCOM/AccAction.h
@@ -42,7 +42,7 @@ public:
 
     }
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_ACCACTION)
+    DECLARE_NO_REGISTRY()
 
     BEGIN_COM_MAP(CAccAction)
     COM_INTERFACE_ENTRY(IAccessibleAction)
diff --git a/winaccessibility/source/UAccCOM/AccAction.rgs b/winaccessibility/source/UAccCOM/AccAction.rgs
deleted file mode 100644
index 7b51e7b..0000000
--- a/winaccessibility/source/UAccCOM/AccAction.rgs
+++ /dev/null
@@ -1,26 +0,0 @@
-HKCR
-{
-	UAccCOM.AccAction.1 = s 'AccAction Class'
-	{
-		CLSID = s '{AA49F20E-BB4E-400D-A5B0-6F5B7B770227}'
-	}
-	UAccCOM.AccAction = s 'AccAction Class'
-	{
-		CLSID = s '{AA49F20E-BB4E-400D-A5B0-6F5B7B770227}'
-		CurVer = s 'UAccCOM.AccAction.1'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {AA49F20E-BB4E-400D-A5B0-6F5B7B770227} = s 'AccAction Class'
-		{
-			ProgID = s 'UAccCOM.AccAction.1'
-			VersionIndependentProgID = s 'UAccCOM.AccAction'
-			ForceRemove 'Programmable'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-			'TypeLib' = s '{19ECB1B0-9376-4FF9-B580-223FC9C200B8}'
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccComponent.h b/winaccessibility/source/UAccCOM/AccComponent.h
index bafeb36..8174878 100644
--- a/winaccessibility/source/UAccCOM/AccComponent.h
+++ b/winaccessibility/source/UAccCOM/AccComponent.h
@@ -69,9 +69,8 @@ public:
         return E_FAIL;
     }
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_AccComponent)
+    DECLARE_NO_REGISTRY()
 
-    // IAccessibleComponent
 public:
     // IAccessibleComponent
 
diff --git a/winaccessibility/source/UAccCOM/AccComponent.rgs b/winaccessibility/source/UAccCOM/AccComponent.rgs
deleted file mode 100644
index ee87c16..0000000
--- a/winaccessibility/source/UAccCOM/AccComponent.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccComponent.1 = s 'AccComponent Class'
-	{
-		CLSID = s '{9FD9BA47-70AF-4160-99F1-526F2B9F111B}'
-	}
-	UAccCOM.AccComponent = s 'AccComponent Class'
-	{
-		CLSID = s '{9FD9BA47-70AF-4160-99F1-526F2B9F111B}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {9FD9BA47-70AF-4160-99F1-526F2B9F111B} = s 'AccComponent Class'
-		{
-			ProgID = s 'UAccCOM.AccComponent.1'
-			VersionIndependentProgID = s 'UAccCOM.AccComponent'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccContext.rgs b/winaccessibility/source/UAccCOM/AccContext.rgs
deleted file mode 100644
index b3e9e3a..0000000
--- a/winaccessibility/source/UAccCOM/AccContext.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccContext.1 = s 'AccContext Class'
-	{
-		CLSID = s '{F77CAEC2-F04C-4E74-A36C-F3B557BC59E1}'
-	}
-	UAccCOM.AccContext = s 'AccContext Class'
-	{
-		CLSID = s '{F77CAEC2-F04C-4E74-A36C-F3B557BC59E1}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {F77CAEC2-F04C-4E74-A36C-F3B557BC59E1} = s 'AccContext Class'
-		{
-			ProgID = s 'UAccCOM.AccContext.1'
-			VersionIndependentProgID = s 'UAccCOM.AccContext'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccEditableText.h b/winaccessibility/source/UAccCOM/AccEditableText.h
index c130731..cca02cf 100644
--- a/winaccessibility/source/UAccCOM/AccEditableText.h
+++ b/winaccessibility/source/UAccCOM/AccEditableText.h
@@ -67,9 +67,8 @@ public:
         return E_FAIL;
     }
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_AccEditableText)
+    DECLARE_NO_REGISTRY()
 
-    // IAccessibleEditableText
 public:
     // IAccessibleEditableText
 
diff --git a/winaccessibility/source/UAccCOM/AccEditableText.rgs b/winaccessibility/source/UAccCOM/AccEditableText.rgs
deleted file mode 100644
index 03aacb3..0000000
--- a/winaccessibility/source/UAccCOM/AccEditableText.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccEditableText.1 = s 'AccEditableText Class'
-	{
-		CLSID = s '{79CE1450-1F61-48E2-BF76-C07BD10105E2}'
-	}
-	UAccCOM.AccEditableText = s 'AccEditableText Class'
-	{
-		CLSID = s '{79CE1450-1F61-48E2-BF76-C07BD10105E2}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {79CE1450-1F61-48E2-BF76-C07BD10105E2} = s 'AccEditableText Class'
-		{
-			ProgID = s 'UAccCOM.AccEditableText.1'
-			VersionIndependentProgID = s 'UAccCOM.AccEditableText'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccExtendedComponent.rgs b/winaccessibility/source/UAccCOM/AccExtendedComponent.rgs
deleted file mode 100644
index 6039885..0000000
--- a/winaccessibility/source/UAccCOM/AccExtendedComponent.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccExtendedComponent.1 = s 'AccExtendedComponent Class'
-	{
-		CLSID = s '{D91562E1-BE6C-41F3-A34C-E7AA846561A4}'
-	}
-	UAccCOM.AccExtendedComponent = s 'AccExtendedComponent Class'
-	{
-		CLSID = s '{D91562E1-BE6C-41F3-A34C-E7AA846561A4}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {D91562E1-BE6C-41F3-A34C-E7AA846561A4} = s 'AccExtendedComponent Class'
-		{
-			ProgID = s 'UAccCOM.AccExtendedComponent.1'
-			VersionIndependentProgID = s 'UAccCOM.AccExtendedComponent'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccFont.rgs b/winaccessibility/source/UAccCOM/AccFont.rgs
deleted file mode 100644
index c229746..0000000
--- a/winaccessibility/source/UAccCOM/AccFont.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccFont.1 = s 'AccFont Class'
-	{
-		CLSID = s '{185B9AD9-5D31-4793-888F-A21846BBAEDD}'
-	}
-	UAccCOM.AccFont = s 'AccFont Class'
-	{
-		CLSID = s '{185B9AD9-5D31-4793-888F-A21846BBAEDD}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {185B9AD9-5D31-4793-888F-A21846BBAEDD} = s 'AccFont Class'
-		{
-			ProgID = s 'UAccCOM.AccFont.1'
-			VersionIndependentProgID = s 'UAccCOM.AccFont'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccHyperLink.h b/winaccessibility/source/UAccCOM/AccHyperLink.h
index 7505900..5a01a87 100644
--- a/winaccessibility/source/UAccCOM/AccHyperLink.h
+++ b/winaccessibility/source/UAccCOM/AccHyperLink.h
@@ -54,7 +54,7 @@ public:
     COM_INTERFACE_ENTRY(IUNOXWrapper)
     END_COM_MAP()
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_AccHyperLink)
+    DECLARE_NO_REGISTRY()
 
     static HRESULT WINAPI _SmartQI(void* pv,
                                    REFIID iid, void** ppvObject, DWORD)
diff --git a/winaccessibility/source/UAccCOM/AccHyperLink.rgs b/winaccessibility/source/UAccCOM/AccHyperLink.rgs
deleted file mode 100644
index ceb622e..0000000
--- a/winaccessibility/source/UAccCOM/AccHyperLink.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccHyperLink.1 = s 'AccHyperLink Class'
-	{
-		CLSID = s '{519A64CD-F6A6-4793-BE50-4E36C4C593EF}'
-	}
-	UAccCOM.AccHyperLink = s 'AccHyperLink Class'
-	{
-		CLSID = s '{519A64CD-F6A6-4793-BE50-4E36C4C593EF}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {519A64CD-F6A6-4793-BE50-4E36C4C593EF} = s 'AccHyperLink Class'
-		{
-			ProgID = s 'UAccCOM.AccHyperLink.1'
-			VersionIndependentProgID = s 'UAccCOM.AccHyperLink'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccHypertext.h b/winaccessibility/source/UAccCOM/AccHypertext.h
index 94c737e..3935262 100644
--- a/winaccessibility/source/UAccCOM/AccHypertext.h
+++ b/winaccessibility/source/UAccCOM/AccHypertext.h
@@ -68,9 +68,8 @@ public:
         return E_FAIL;
     }
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_AccHypertext)
+    DECLARE_NO_REGISTRY()
 
-    // IAccessibleHypertext
 public:
     // IAccessibleText
 
diff --git a/winaccessibility/source/UAccCOM/AccHypertext.rgs b/winaccessibility/source/UAccCOM/AccHypertext.rgs
deleted file mode 100644
index 6baf544..0000000
--- a/winaccessibility/source/UAccCOM/AccHypertext.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccHypertext.1 = s 'AccHypertext Class'
-	{
-		CLSID = s '{CC55D71B-1828-4EE0-89E2-C3749CF9C9AB}'
-	}
-	UAccCOM.AccHypertext = s 'AccHypertext Class'
-	{
-		CLSID = s '{CC55D71B-1828-4EE0-89E2-C3749CF9C9AB}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {CC55D71B-1828-4EE0-89E2-C3749CF9C9AB} = s 'AccHypertext Class'
-		{
-			ProgID = s 'UAccCOM.AccHypertext.1'
-			VersionIndependentProgID = s 'UAccCOM.AccHypertext'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccImage.h b/winaccessibility/source/UAccCOM/AccImage.h
index f59e782..4de6a18 100644
--- a/winaccessibility/source/UAccCOM/AccImage.h
+++ b/winaccessibility/source/UAccCOM/AccImage.h
@@ -66,9 +66,8 @@ public:
         return E_FAIL;
     }
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_AccImage)
+    DECLARE_NO_REGISTRY()
 
-    // IAccessibleImage
 public:
     // IAccessibleImage
 
diff --git a/winaccessibility/source/UAccCOM/AccImage.rgs b/winaccessibility/source/UAccCOM/AccImage.rgs
deleted file mode 100644
index 9be96fd..0000000
--- a/winaccessibility/source/UAccCOM/AccImage.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccImage.1 = s 'AccImage Class'
-	{
-		CLSID = s '{73A45800-7A62-432C-A1A6-BF8852994331}'
-	}
-	UAccCOM.AccImage = s 'AccImage Class'
-	{
-		CLSID = s '{73A45800-7A62-432C-A1A6-BF8852994331}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {73A45800-7A62-432C-A1A6-BF8852994331} = s 'AccImage Class'
-		{
-			ProgID = s 'UAccCOM.AccImage.1'
-			VersionIndependentProgID = s 'UAccCOM.AccImage'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccKeyBinding.rgs b/winaccessibility/source/UAccCOM/AccKeyBinding.rgs
deleted file mode 100644
index 6967bf2..0000000
--- a/winaccessibility/source/UAccCOM/AccKeyBinding.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccKeyBinding.1 = s 'AccKeyBinding Class'
-	{
-		CLSID = s '{98AFE6FB-D748-4313-B4D6-E7B273B6255D}'
-	}
-	UAccCOM.AccKeyBinding = s 'AccKeyBinding Class'
-	{
-		CLSID = s '{98AFE6FB-D748-4313-B4D6-E7B273B6255D}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {98AFE6FB-D748-4313-B4D6-E7B273B6255D} = s 'AccKeyBinding Class'
-		{
-			ProgID = s 'UAccCOM.AccKeyBinding.1'
-			VersionIndependentProgID = s 'UAccCOM.AccKeyBinding'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccRelation.h b/winaccessibility/source/UAccCOM/AccRelation.h
index eec77f0..7783ba5 100644
--- a/winaccessibility/source/UAccCOM/AccRelation.h
+++ b/winaccessibility/source/UAccCOM/AccRelation.h
@@ -44,7 +44,7 @@ public:
     {
             }
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_ACCRELATION)
+    DECLARE_NO_REGISTRY()
 
     DECLARE_PROTECT_FINAL_CONSTRUCT()
 
diff --git a/winaccessibility/source/UAccCOM/AccRelation.rgs b/winaccessibility/source/UAccCOM/AccRelation.rgs
deleted file mode 100644
index 3a7d3d2..0000000
--- a/winaccessibility/source/UAccCOM/AccRelation.rgs
+++ /dev/null
@@ -1,25 +0,0 @@
-HKCR
-{
-	UAccCOM.AccRelation.1 = s 'AccRelation Class'
-	{
-		CLSID = s '{8745CF0C-3104-4BAE-B7D0-D7B1717C006E}'
-	}
-	UAccCOM.AccRelation = s 'AccRelation Class'
-	{
-		CLSID = s '{8745CF0C-3104-4BAE-B7D0-D7B1717C006E}'
-		CurVer = s 'UAccCOM.AccRelation.1'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {8745CF0C-3104-4BAE-B7D0-D7B1717C006E} = s 'AccRelation Class'
-		{
-			ProgID = s 'UAccCOM.AccRelation.1'
-			VersionIndependentProgID = s 'UAccCOM.AccRelation'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'Apartment'
-			}
-			'TypeLib' = s '{19ECB1B0-9376-4FF9-B580-223FC9C200B8}'
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccSelection.rgs b/winaccessibility/source/UAccCOM/AccSelection.rgs
deleted file mode 100644
index 4840990..0000000
--- a/winaccessibility/source/UAccCOM/AccSelection.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccSelection.1 = s 'AccSelection Class'
-	{
-		CLSID = s '{9B83B8C3-3592-4C29-8682-559E37368E95}'
-	}
-	UAccCOM.AccSelection = s 'AccSelection Class'
-	{
-		CLSID = s '{9B83B8C3-3592-4C29-8682-559E37368E95}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {9B83B8C3-3592-4C29-8682-559E37368E95} = s 'AccSelection Class'
-		{
-			ProgID = s 'UAccCOM.AccSelection.1'
-			VersionIndependentProgID = s 'UAccCOM.AccSelection'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccTable.h b/winaccessibility/source/UAccCOM/AccTable.h
index 664f0a0..ce956f6 100644
--- a/winaccessibility/source/UAccCOM/AccTable.h
+++ b/winaccessibility/source/UAccCOM/AccTable.h
@@ -63,9 +63,8 @@ public:
         return E_FAIL;
     }
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_ACCTABLE)
+    DECLARE_NO_REGISTRY()
 
-    // IAccessibleTable
 public:
     // IAccessibleTable
 
diff --git a/winaccessibility/source/UAccCOM/AccTable.rgs b/winaccessibility/source/UAccCOM/AccTable.rgs
deleted file mode 100644
index 7117fe6..0000000
--- a/winaccessibility/source/UAccCOM/AccTable.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccTable.1 = s 'AccTable Class'
-	{
-		CLSID = s '{92BAA62D-535A-4EAB-9ABB-BFA60B7A6DB6}'
-	}
-	UAccCOM.AccTable = s 'AccTable Class'
-	{
-		CLSID = s '{92BAA62D-535A-4EAB-9ABB-BFA60B7A6DB6}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {92BAA62D-535A-4EAB-9ABB-BFA60B7A6DB6} = s 'AccTable Class'
-		{
-			ProgID = s 'UAccCOM.AccTable.1'
-			VersionIndependentProgID = s 'UAccCOM.AccTable'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccText.h b/winaccessibility/source/UAccCOM/AccText.h
index f0adb97..735afd9 100644
--- a/winaccessibility/source/UAccCOM/AccText.h
+++ b/winaccessibility/source/UAccCOM/AccText.h
@@ -64,9 +64,8 @@ public:
         return E_FAIL;
     }
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_AccText)
+    DECLARE_NO_REGISTRY()
 
-    // IAccessibleText
 public:
     // IAccessibleText
 
diff --git a/winaccessibility/source/UAccCOM/AccText.rgs b/winaccessibility/source/UAccCOM/AccText.rgs
deleted file mode 100644
index 6cb3ebdc..0000000
--- a/winaccessibility/source/UAccCOM/AccText.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccText.1 = s 'AccText Class'
-	{
-		CLSID = s '{6D8AB08B-CCE9-471E-8A41-35773D5263F5}'
-	}
-	UAccCOM.AccText = s 'AccText Class'
-	{
-		CLSID = s '{6D8AB08B-CCE9-471E-8A41-35773D5263F5}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {6D8AB08B-CCE9-471E-8A41-35773D5263F5} = s 'AccText Class'
-		{
-			ProgID = s 'UAccCOM.AccText.1'
-			VersionIndependentProgID = s 'UAccCOM.AccText'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/AccValue.h b/winaccessibility/source/UAccCOM/AccValue.h
index bf385be..d7e3496 100644
--- a/winaccessibility/source/UAccCOM/AccValue.h
+++ b/winaccessibility/source/UAccCOM/AccValue.h
@@ -67,9 +67,8 @@ public:
         return E_FAIL;
     }
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_AccValue)
+    DECLARE_NO_REGISTRY()
 
-    // IAccessibleValue
 public:
     // IAccessibleValue
 
diff --git a/winaccessibility/source/UAccCOM/AccValue.rgs b/winaccessibility/source/UAccCOM/AccValue.rgs
deleted file mode 100644
index f57f318..0000000
--- a/winaccessibility/source/UAccCOM/AccValue.rgs
+++ /dev/null
@@ -1,23 +0,0 @@
-HKCR
-{
-	UAccCOM.AccValue.1 = s 'AccValue Class'
-	{
-		CLSID = s '{730A561B-1AF6-49E1-9C04-9A2F48CD8512}'
-	}
-	UAccCOM.AccValue = s 'AccValue Class'
-	{
-		CLSID = s '{730A561B-1AF6-49E1-9C04-9A2F48CD8512}'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {730A561B-1AF6-49E1-9C04-9A2F48CD8512} = s 'AccValue Class'
-		{
-			ProgID = s 'UAccCOM.AccValue.1'
-			VersionIndependentProgID = s 'UAccCOM.AccValue'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'both'
-			}
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/EnumVariant.h b/winaccessibility/source/UAccCOM/EnumVariant.h
index 0a87a3f..30c9e0a 100644
--- a/winaccessibility/source/UAccCOM/EnumVariant.h
+++ b/winaccessibility/source/UAccCOM/EnumVariant.h
@@ -46,7 +46,7 @@ public:
 
     virtual ~CEnumVariant() {};
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_ENUMVARIANT)
+    DECLARE_NO_REGISTRY()
 
     DECLARE_PROTECT_FINAL_CONSTRUCT()
 
diff --git a/winaccessibility/source/UAccCOM/EnumVariant.rgs b/winaccessibility/source/UAccCOM/EnumVariant.rgs
deleted file mode 100644
index c5decdc..0000000
--- a/winaccessibility/source/UAccCOM/EnumVariant.rgs
+++ /dev/null
@@ -1,26 +0,0 @@
-HKCR
-{
-	UAccCOM.EnumVariant.1 = s 'EnumVariant Class'
-	{
-		CLSID = s '{152884E0-268B-4481-9AE7-1B372D3AA97F}'
-	}
-	UAccCOM.EnumVariant = s 'EnumVariant Class'
-	{
-		CLSID = s '{152884E0-268B-4481-9AE7-1B372D3AA97F}'
-		CurVer = s 'UAccCOM.EnumVariant.1'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {152884E0-268B-4481-9AE7-1B372D3AA97F} = s 'EnumVariant Class'
-		{
-			ProgID = s 'UAccCOM.EnumVariant.1'
-			VersionIndependentProgID = s 'UAccCOM.EnumVariant'
-			ForceRemove 'Programmable'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'Both'
-			}
-			'TypeLib' = s '{19ECB1B0-9376-4FF9-B580-223FC9C200B8}'
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/MAccessible.h b/winaccessibility/source/UAccCOM/MAccessible.h
index 69c6e46..7262cb3 100644
--- a/winaccessibility/source/UAccCOM/MAccessible.h
+++ b/winaccessibility/source/UAccCOM/MAccessible.h
@@ -94,7 +94,8 @@ class ATL_NO_VTABLE CMAccessible :
 public:
     CMAccessible();
     virtual ~CMAccessible();
-    DECLARE_REGISTRY_RESOURCEID(IDR_MACCESSIBLE)
+
+    DECLARE_NO_REGISTRY()
 
     DECLARE_GET_CONTROLLING_UNKNOWN()
 
diff --git a/winaccessibility/source/UAccCOM/MAccessible.rgs b/winaccessibility/source/UAccCOM/MAccessible.rgs
deleted file mode 100644
index 10bd2c0..0000000
--- a/winaccessibility/source/UAccCOM/MAccessible.rgs
+++ /dev/null
@@ -1,26 +0,0 @@
-HKCR
-{
-	UAccCOM.MAccessible.1 = s 'MAccessible Class'
-	{
-		CLSID = s '{CF8DF8BA-44FE-4B10-BD2E-8C8CB322485F}'
-	}
-	UAccCOM.MAccessible = s 'MAccessible Class'
-	{
-		CLSID = s '{CF8DF8BA-44FE-4B10-BD2E-8C8CB322485F}'
-		CurVer = s 'UAccCOM.MAccessible.1'
-	}
-	NoRemove CLSID
-	{
-		ForceRemove {CF8DF8BA-44FE-4B10-BD2E-8C8CB322485F} = s 'MAccessible Class'
-		{
-			ProgID = s 'UAccCOM.MAccessible.1'
-			VersionIndependentProgID = s 'UAccCOM.MAccessible'
-			ForceRemove 'Programmable'
-			InprocServer32 = s '%MODULE%'
-			{
-				val ThreadingModel = s 'Both'
-			}
-			'TypeLib' = s '{19ECB1B0-9376-4FF9-B580-223FC9C200B8}'
-		}
-	}
-}
diff --git a/winaccessibility/source/UAccCOM/Resource.h b/winaccessibility/source/UAccCOM/Resource.h
index 819b28d..612c896 100644
--- a/winaccessibility/source/UAccCOM/Resource.h
+++ b/winaccessibility/source/UAccCOM/Resource.h
@@ -23,37 +23,6 @@
 //
 
 #define IDS_PROJNAME                    100
-#define IDR_MACCESSIBLE                 101
-#define IDR_ENUMVARIANT                 106
-#define IDR_UNOXWRAPPER                 107
-#define IDS_ACCCOMPONENT_DESC           108
-#define IDR_AccComponent                109
-#define IDS_ACCCONTEXT_DESC             110
-#define IDR_AccContext                  111
-#define IDR_ACCRELATION                 112
-#define IDR_ACCACTION                   113
-#define IDS_ACCFONT_DESC                114
-#define IDR_AccFont                     115
-#define IDS_ACCSELECTION_DESC           116
-#define IDR_AccSelection                117
-#define IDS_ACCEXTENDEDCOMPONENT_DESC   118
-#define IDR_AccExtendedComponent        119
-#define IDS_ACCTEXT_DESC                120
-#define IDR_AccText                     121
-#define IDS_ACCEDITABLETEXT_DESC        122
-#define IDR_AccEditableText             123
-#define IDS_ACCHYPERTEXT_DESC           124
-#define IDR_AccHypertext                125
-#define IDS_ACCIMAGE_DESC               126
-#define IDR_AccImage                    127
-#define IDS_ACCVALUE_DESC               128
-#define IDR_AccValue                    129
-#define IDS_ACCTABLE_DESC               130
-#define IDR_ACCTABLE                    131
-#define IDS_ACCHYPERLINK_DESC           132
-#define IDR_AccHyperLink                133
-#define IDS_ACCKEYBINDING_DESC          134
-#define IDR_AccKeyBinding               135
 
 // Next default values for new objects
 //
diff --git a/winaccessibility/source/UAccCOM/UAccCOM.cxx b/winaccessibility/source/UAccCOM/UAccCOM.cxx
index 851464f..52b40a0 100644
--- a/winaccessibility/source/UAccCOM/UAccCOM.cxx
+++ b/winaccessibility/source/UAccCOM/UAccCOM.cxx
@@ -93,21 +93,5 @@ STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
     return _Module.GetClassObject(rclsid, riid, ppv);
 }
 
-/////////////////////////////////////////////////////////////////////////////
-// DllRegisterServer - Adds entries to the system registry
-
-STDAPI DllRegisterServer(void)
-{
-    // registers object, typelib and all interfaces in typelib
-    return _Module.RegisterServer(TRUE);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// DllUnregisterServer - Removes entries from the system registry
-
-STDAPI DllUnregisterServer(void)
-{
-    return _Module.UnregisterServer(TRUE);
-}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/winaccessibility/source/UAccCOM/UAccCOM.def b/winaccessibility/source/UAccCOM/UAccCOM.def
index 575a281..45baa52 100644
--- a/winaccessibility/source/UAccCOM/UAccCOM.def
+++ b/winaccessibility/source/UAccCOM/UAccCOM.def
@@ -3,5 +3,3 @@ LIBRARY      "UAccCOM.DLL"
 EXPORTS
 	DllCanUnloadNow     PRIVATE
 	DllGetClassObject   PRIVATE
-	DllRegisterServer   PRIVATE
-	DllUnregisterServer	PRIVATE
diff --git a/winaccessibility/source/UAccCOM/UAccCOM.rc b/winaccessibility/source/UAccCOM/UAccCOM.rc
index 09255ba..4579c01 100644
--- a/winaccessibility/source/UAccCOM/UAccCOM.rc
+++ b/winaccessibility/source/UAccCOM/UAccCOM.rc

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list