You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ja...@apache.org on 2013/11/28 13:54:23 UTC

svn commit: r1546358 [1/9] - in /openoffice/branches/capstone2013/main: vcl/inc/win/ winaccessibility/source/UAccCOM/ winaccessibility/source/UAccCOMIDL/ winaccessibility/source/service/

Author: jani
Date: Thu Nov 28 12:54:21 2013
New Revision: 1546358

URL: http://svn.apache.org/r1546358
Log:
merge from trunk, missed in first run.

Added:
    openoffice/branches/capstone2013/main/vcl/inc/win/g_msaasvc.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccContext.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccExtendedComponent.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccFont.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccHyperLink.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccHyperLink.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccHyperLink.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccHypertext.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccHypertext.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccHypertext.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccImage.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccImage.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccImage.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccKeyBinding.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccRelation.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccRelation.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccRelation.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccSelection.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccTable.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccTable.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccTable.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccText.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccText.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccText.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccTextBase.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccTextBase.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccValue.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccValue.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccValue.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccessibleKeyStroke.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/CheckEnableAccessible.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/CheckEnableAccessible.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/EnumVariant.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/EnumVariant.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/EnumVariant.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/MAccessible.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/MAccessible.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/MAccessible.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/Resource.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/StdAfx.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/UAccCOM.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/UAccCOM.def   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/UAccCOM.rc   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/UNOXWrapper.cpp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/UNOXWrapper.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/UNOXWrapper.rgs   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/acccommon.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/makefile.mk   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/stdafx.h   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOMIDL/
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOMIDL/AccessibleKeyBinding.idl   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOMIDL/AccessibleKeyStroke.idl   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOMIDL/Charset.idl   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOMIDL/UAccCOM.idl   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOMIDL/defines.idl   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOMIDL/ia2_api_all.idl   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOMIDL/makefile.mk   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccComponentEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccContainerEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccDescendantManagerEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccDialogEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccFrameEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccListEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccMenuEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccObject.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccObjectContainerEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccObjectManagerAgent.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccObjectWinManager.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccParagraphEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccResource.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccTableEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccTextComponentEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccTopWindowListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccTreeEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/AccWindowEventListener.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/ResIDGenerator.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/checkmt.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/checkmt.hxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/exports.dxp   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/makefile.mk   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/msaaservice_impl.cxx   (with props)
    openoffice/branches/capstone2013/main/winaccessibility/source/service/winaccessibility.component   (with props)
Modified:
    openoffice/branches/capstone2013/main/vcl/inc/win/   (props changed)

Propchange: openoffice/branches/capstone2013/main/vcl/inc/win/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Thu Nov 28 12:54:21 2013
@@ -0,0 +1,3 @@
+/openoffice/branches/AOO400/main/vcl/inc/win:1503684
+/openoffice/branches/ia2/main/vcl/inc/win:1417739-1541842
+/openoffice/trunk/main/vcl/inc/win:1531526-1546357

Added: openoffice/branches/capstone2013/main/vcl/inc/win/g_msaasvc.h
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/vcl/inc/win/g_msaasvc.h?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/vcl/inc/win/g_msaasvc.h (added)
+++ openoffice/branches/capstone2013/main/vcl/inc/win/g_msaasvc.h Thu Nov 28 12:54:21 2013
@@ -0,0 +1,26 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+#ifndef _SV_G_MSASSVR_H_
+#define _SV_G_MSASSVR_H_
+extern com::sun::star::accessibility::XMSAAService* g_acc_manager1;
+#endif
+

Propchange: openoffice/branches/capstone2013/main/vcl/inc/win/g_msaasvc.h
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.cpp
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.cpp?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.cpp (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.cpp Thu Nov 28 12:54:21 2013
@@ -0,0 +1,120 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+/**
+ * AccAction.cpp : Implementation of CAccAction
+ */
+#include "stdafx.h"
+#include "UAccCOM2.h"
+#include "AccAction.h"
+
+using namespace com::sun::star::accessibility;
+using namespace com::sun::star::uno;
+
+/**
+ * Returns the number of action.
+ *
+ * @param    nActions    the number of action.
+ */
+STDMETHODIMP CAccAction::nActions(/*[out,retval]*/long* nActions)
+{
+    
+    return CAccActionBase::nActions(nActions);
+}
+
+/**
+ * Performs specified action on the object.
+ *
+ * @param    actionIndex    the index of action.
+ */
+STDMETHODIMP CAccAction::doAction(/* [in] */ long actionIndex)
+{
+    
+    return CAccActionBase::doAction(actionIndex);
+}
+
+/**
+ * Gets description of specified action.
+ *
+ * @param    actionIndex    the index of action.
+ * @param    description    the description string of the specified action.
+ */
+STDMETHODIMP CAccAction::get_description(long actionIndex,BSTR __RPC_FAR *description)
+{
+    
+    return CAccActionBase::get_description(actionIndex, description);
+}
+
+STDMETHODIMP CAccAction::get_name( long actionIndex, BSTR __RPC_FAR *name)
+{
+    
+    return CAccActionBase::get_name(actionIndex, name);
+}
+
+STDMETHODIMP CAccAction::get_localizedName( long actionIndex, BSTR __RPC_FAR *localizedName)
+{
+    
+    return CAccActionBase::get_localizedName(actionIndex, localizedName);
+}
+
+/**
+ * Returns key binding object (if any) associated with specified action 
+ * key binding is string.
+ * e.g. "alt+d" (like IAccessible::get_accKeyboardShortcut).
+ *
+ * @param    actionIndex    the index of action.
+ * @param    nMaxBinding    the max number of key binding.
+ * @param    keyBinding     the key binding array.
+ * @param    nBinding       the actual number of key binding returned.
+ */
+STDMETHODIMP CAccAction::get_keyBinding(
+    /* [in] */ long actionIndex,
+    /* [in] */ long nMaxBinding,
+    /* [length_is][length_is][size_is][size_is][out] */ BSTR __RPC_FAR *__RPC_FAR *keyBinding,
+    /* [retval][out] */ long __RPC_FAR *nBinding)
+{
+    
+    return CAccActionBase::get_keyBinding(actionIndex, nMaxBinding,	keyBinding, nBinding);
+}
+
+/**
+ * Overide of IUNOXWrapper.
+ *
+ * @param    pXInterface    the pointer of UNO interface.
+ */
+STDMETHODIMP CAccAction::put_XInterface(long pXInterface)
+{
+    
+    return CAccActionBase::put_XInterface(pXInterface);
+}
+/**
+   * Put UNO interface.
+   * @param pXSubInterface XAccessibleHyperlink interface.
+   * @return Result.
+*/
+STDMETHODIMP CAccAction::put_XSubInterface(long pXSubInterface)
+{
+    
+
+    pRXAct = (XAccessibleAction*)pXSubInterface;
+
+    return S_OK;
+}

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.cpp
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.h
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.h?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.h (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.h Thu Nov 28 12:54:21 2013
@@ -0,0 +1,105 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+#ifndef __ACCACTION_H_
+#define __ACCACTION_H_
+
+#include "resource.h"       // main symbols
+#include "AccActionBase.h"
+
+/**
+ * CAccAction implements IAccessibleAction interface.
+ */
+class ATL_NO_VTABLE CAccAction :
+            public CComObjectRoot,
+            public CComCoClass<CAccAction, &CLSID_AccAction>,
+            public IAccessibleAction,
+            public CAccActionBase
+{
+public:
+    CAccAction()
+    {
+        
+    }
+    ~CAccAction()
+    {
+        
+    }
+
+    DECLARE_REGISTRY_RESOURCEID(IDR_ACCACTION)
+
+    BEGIN_COM_MAP(CAccAction)
+    COM_INTERFACE_ENTRY(IAccessibleAction)
+    COM_INTERFACE_ENTRY(IUNOXWrapper)
+    COM_INTERFACE_ENTRY_FUNC_BLIND(NULL,_SmartQI)
+    END_COM_MAP()
+
+    static HRESULT WINAPI _SmartQI(void* pv,
+                                   REFIID iid, void** ppvObject, DWORD)
+    {
+        return ((CAccAction*)pv)->SmartQI(iid,ppvObject);
+    }
+
+    HRESULT SmartQI(REFIID iid, void** ppvObject)
+    {
+        if( m_pOuterUnknown )
+            return OuterQueryInterface(iid,ppvObject);
+        return E_FAIL;
+    }
+
+    // IAccessibleAction
+public:
+    // IAccessibleAction
+
+    // Returns the number of action.
+    STDMETHOD(nActions)(/*[out,retval]*/long* nActions);
+
+    // Performs specified action on the object.
+    STDMETHOD(doAction)(/* [in] */ long actionIndex);
+
+    // Gets description of specified action.
+    STDMETHOD(get_description)(long actionIndex,BSTR __RPC_FAR *description);
+
+    // added , 2006/06/28, for driver 07/11
+    // get the action name
+    STDMETHOD(get_name)( long actionIndex, BSTR __RPC_FAR *name);
+
+    // get the localized action name
+    STDMETHOD(get_localizedName)( long actionIndex, BSTR __RPC_FAR *localizedName);
+
+    // Returns key binding object (if any) associated with specified action
+    // key binding is string.
+    // e.g. "alt+d" (like IAccessible::get_accKeyboardShortcut).
+    STDMETHOD(get_keyBinding)(
+        /* [in] */ long actionIndex,
+        /* [in] */ long nMaxBinding,
+        /* [length_is][length_is][size_is][size_is][out] */ BSTR __RPC_FAR *__RPC_FAR *keyBinding,
+        /* [retval][out] */ long __RPC_FAR *nBinding);
+
+    // Overide of IUNOXWrapper.
+    STDMETHOD(put_XInterface)(long pXInterface);
+
+    // Overide of IUNOXWrapper.
+    STDMETHOD(put_XSubInterface)(long pXSubInterface);
+
+};
+
+#endif //__ACCACTION_H_

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.h
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.rgs
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.rgs?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.rgs (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.rgs Thu Nov 28 12:54:21 2013
@@ -0,0 +1,26 @@
+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}'
+		}
+	}
+}

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccAction.rgs
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.cpp
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.cpp?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.cpp (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.cpp Thu Nov 28 12:54:21 2013
@@ -0,0 +1,416 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+//////////////////////////////////////////////////////////////////////
+// AccActionBase.cpp: implementation of the CAccActionBase class.
+//////////////////////////////////////////////////////////////////////
+#include "stdafx.h"
+
+#include "AccActionBase.h"
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+
+#include "AccessibleKeyStroke.h"
+
+#ifndef __ACCCOMMON_H_
+#include "acccommon.h"
+#endif
+
+using namespace com::sun::star::accessibility::AccessibleRole;
+using namespace com::sun::star::accessibility;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::awt;
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+CAccActionBase::CAccActionBase()
+{}
+
+CAccActionBase::~CAccActionBase()
+{}
+
+/**
+ * Helper function used for getting default action by UNO role.
+ *
+ * @param    pRContext    UNO context interface pointer.
+ * @param    pRet         the corresponding string to be returned.
+ */
+void GetDfActionByUNORole(XAccessibleContext* pRContext, BSTR* pRet)
+{
+    // #CHECK#
+    if(pRContext == NULL || pRet == NULL)
+    {
+        return;
+    }
+
+    long Role = pRContext->getAccessibleRole();
+
+    switch(Role)
+    {
+    case PUSH_BUTTON:
+        *pRet = ::SysAllocString(PRESS);
+        break;
+    case RADIO_BUTTON:
+    case MENU_ITEM:
+    case LIST_ITEM:
+        *pRet = ::SysAllocString(SELECT);
+        break;
+    case CHECK_BOX:
+        {
+            Reference< XAccessibleStateSet > pRState = pRContext->getAccessibleStateSet();
+            if( !pRState.is() )
+            {
+                return;
+            }
+
+            Sequence<short> pStates = pRState->getStates();
+            int count = pStates.getLength();
+            *pRet = ::SysAllocString(CHECK);
+            for( int iIndex = 0;iIndex < count;iIndex++ )
+            {
+                if( pStates[iIndex] == AccessibleStateType::CHECKED )
+                {
+                    SAFE_SYSFREESTRING(*pRet);
+                    *pRet = ::SysAllocString(UNCHECK);
+                    break;
+                }
+            }
+            break;
+        }
+    }
+}
+
+/**
+ * Returns the number of action.
+ *
+ * @param    nActions    the number of action.
+ */
+STDMETHODIMP CAccActionBase::nActions(/*[out,retval]*/long* nActions)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    // #CHECK#
+    if( pRXAct.is() && nActions != NULL )
+    {
+        *nActions = GetXInterface()->getAccessibleActionCount();
+        return S_OK;
+    }
+    *nActions = 0;
+
+    return S_OK;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Performs specified action on the object.
+ *
+ * @param    actionIndex    the index of action.
+ */
+STDMETHODIMP CAccActionBase::doAction(/* [in] */ long actionIndex)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    if( pRXAct.is() )
+    {
+        return GetXInterface()->doAccessibleAction( actionIndex )?S_OK:E_FAIL;
+    }
+    return E_FAIL;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Gets description of specified action.
+ *
+ * @param    actionIndex    the index of action.
+ * @param    description    the description string of the specified action.
+ */
+STDMETHODIMP CAccActionBase::get_description(long actionIndex,BSTR __RPC_FAR *description)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    // #CHECK#
+    if(description == NULL)
+        return E_INVALIDARG;
+
+    // #CHECK XInterface#
+    if(!pRXAct.is())
+        return E_FAIL;
+
+    ::rtl::OUString ouStr = GetXInterface()->getAccessibleActionDescription(actionIndex);
+    // #CHECK#
+
+    SAFE_SYSFREESTRING(*description);
+    *description = SysAllocString((OLECHAR*)ouStr.getStr());
+
+    return S_OK;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+STDMETHODIMP CAccActionBase::get_name( long, BSTR __RPC_FAR *)
+{
+    return E_NOTIMPL;
+}
+
+STDMETHODIMP CAccActionBase::get_localizedName( long, BSTR __RPC_FAR *)
+{
+    return E_NOTIMPL;
+}
+
+/**
+ * Returns key binding object (if any) associated with specified action 
+ * key binding is string.
+ * e.g. "alt+d" (like IAccessible::get_accKeyboardShortcut).
+ *
+ * @param    actionIndex    the index of action.
+ * @param    nMaxBinding    the max number of key binding.
+ * @param    keyBinding     the key binding array.
+ * @param    nBinding       the actual number of key binding returned.
+ */
+STDMETHODIMP CAccActionBase::get_keyBinding(
+    /* [in] */ long actionIndex,
+    /* [in] */ long,
+    /* [length_is][length_is][size_is][size_is][out] */ BSTR __RPC_FAR *__RPC_FAR *keyBinding,
+    /* [retval][out] */ long __RPC_FAR *nBinding)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    if( !keyBinding || !nBinding)
+        return E_INVALIDARG;
+
+    if( !pRXAct.is() )
+        return E_FAIL;
+
+    Reference< XAccessibleKeyBinding > binding = GetXInterface()->getAccessibleActionKeyBinding(actionIndex);
+    if( !binding.is() )
+        return E_FAIL;
+
+    long nCount = (binding.get())->getAccessibleKeyBindingCount();
+
+    OLECHAR wString[64];
+
+    *keyBinding = (BSTR*)::CoTaskMemAlloc(nCount*sizeof(BSTR));
+
+    // #CHECK Memory Allocation#
+    if(*keyBinding == NULL)
+        return E_FAIL;
+
+    for( int index = 0;index < nCount;index++ )
+    {
+        memset(wString,0,sizeof(wString));
+        GetkeyBindingStrByXkeyBinding( (binding.get())->getAccessibleKeyBinding(index), wString );
+
+        (*keyBinding)[index] = SysAllocString(wString);
+    }
+
+    *nBinding = nCount;
+    return S_OK;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Overide of IUNOXWrapper.
+ *
+ * @param    pXInterface    the pointer of UNO interface.
+ */
+STDMETHODIMP CAccActionBase::put_XInterface(long pXInterface)
+{
+    
+
+    ENTER_PROTECTED_BLOCK
+
+    CUNOXWrapper::put_XInterface(pXInterface);
+
+    //special query.
+    if(pUNOInterface == NULL)
+        return E_FAIL;
+    Reference<XAccessibleContext> pRContext = pUNOInterface->getAccessibleContext();
+    if( !pRContext.is() )
+        return E_FAIL;
+
+    Reference<XAccessibleAction> pRXI(pRContext,UNO_QUERY);
+    if( !pRXI.is() )
+        pRXAct = NULL;
+    else
+        pRXAct = pRXI.get();
+    return S_OK;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Helper function used for converting keybinding to string.
+ *
+ * @param    keySet    the key stroke sequence.
+ * @param    pString   the output keybinding string.
+ */
+void CAccActionBase::GetkeyBindingStrByXkeyBinding( const Sequence< KeyStroke > &keySet, OLECHAR* pString )
+{
+    // #CHECK#
+    if(pString == NULL)
+        return;
+
+    for( int iIndex = 0;iIndex < keySet.getLength();iIndex++ )
+    {
+        KeyStroke stroke = keySet[iIndex];
+        OLECHAR wString[64] = {NULL};
+        if(iIndex>0)
+            wcscat( wString, OLESTR("  ") );
+        if((stroke.Modifiers & MODIFIER_SHIFT) == MODIFIER_SHIFT)
+            wcscat( wString, OLESTR("Shift+") );
+        if((stroke.Modifiers & MODIFIER_CTRL) == MODIFIER_CTRL)
+            wcscat( wString, OLESTR("Ctrl+") );
+        if((stroke.Modifiers & MODIFIER_ALT) == MODIFIER_ALT)
+            wcscat( wString, OLESTR("Alt+") );
+        if(stroke.KeyCode)
+        {
+            OLECHAR* pChar = getOLECHARFromKeyCode(stroke.KeyCode);
+            if(pChar != NULL)
+                wcscat( wString, pChar );
+            else if (stroke.KeyCode <= 255)
+            {
+                OLECHAR pChar[4] = {NULL};
+                swprintf( pChar, L"%c", stroke.KeyCode);
+                wcscat( wString, pChar);
+            }
+            else
+            {
+                OLECHAR pChar[4] = {NULL};
+                swprintf( pChar, L"%d", stroke.KeyCode);
+                wcscat( wString, pChar);
+            }
+        }
+
+        wcscat( pString, wString);
+    }
+}
+
+/**
+ * Helper function used for converting key code to ole string.
+ *
+ * @param    key    the key code.
+ */
+OLECHAR* CAccActionBase::getOLECHARFromKeyCode(long key)
+{
+    static struct keyMap
+    {
+        int keyCode;
+        OLECHAR* key;
+    }
+    map[] =
+        {
+            {MODIFIER_SHIFT, L"SHIFT" },
+            {MODIFIER_CTRL, L"CTRL" },
+            {MODIFIER_ALT, L"ALT" },
+            CODEENTRY(NUM0),CODEENTRY(NUM1),CODEENTRY(NUM2),CODEENTRY(NUM3),CODEENTRY(NUM4),CODEENTRY(NUM5),
+            CODEENTRY(NUM6),CODEENTRY(NUM7),CODEENTRY(NUM8),CODEENTRY(NUM9),
+            CODEENTRY(A),CODEENTRY(B),CODEENTRY(C),CODEENTRY(D),CODEENTRY(E),CODEENTRY(F),
+            CODEENTRY(G),CODEENTRY(H),CODEENTRY(I),CODEENTRY(J),CODEENTRY(K),CODEENTRY(L),
+            CODEENTRY(M),CODEENTRY(N),CODEENTRY(O),CODEENTRY(P),CODEENTRY(Q),CODEENTRY(R),
+            CODEENTRY(S),CODEENTRY(T),CODEENTRY(U),CODEENTRY(V),CODEENTRY(W),CODEENTRY(X),
+            CODEENTRY(Y),CODEENTRY(Z),
+            CODEENTRY(F1),CODEENTRY(F2),CODEENTRY(F3),CODEENTRY(F4),CODEENTRY(F5),CODEENTRY(F6),
+            CODEENTRY(F7),CODEENTRY(F8),CODEENTRY(F9),CODEENTRY(F10),CODEENTRY(F11),CODEENTRY(F12),
+            CODEENTRY(F13),CODEENTRY(F14),CODEENTRY(F15),CODEENTRY(F16),CODEENTRY(F17),CODEENTRY(F18),
+            CODEENTRY(F19),CODEENTRY(F20),CODEENTRY(F21),CODEENTRY(F22),CODEENTRY(F23),CODEENTRY(F24),
+            CODEENTRY(F25),CODEENTRY(F26),
+
+            { KEYCODE_DOWN, L"DOWN" },
+            { KEYCODE_UP, L"UP" },
+            { KEYCODE_LEFT, L"LEFT" },
+            { KEYCODE_RIGHT, L"RIGHT" },
+            { KEYCODE_HOME, L"HOME" },
+            { KEYCODE_END, L"END" },
+            { KEYCODE_PAGEUP, L"PAGEUP" },
+            { KEYCODE_PAGEDOWN, L"PAGEDOWN" },
+            { KEYCODE_RETURN, L"RETURN" },
+            { KEYCODE_ESCAPE, L"ESCAPE" },
+            { KEYCODE_TAB, L"TAB" },
+            { KEYCODE_BACKSPACE, L"BACKSPACE" },
+            { KEYCODE_SPACE, L"SPACE" },
+            { KEYCODE_INSERT, L"INSERT" },
+            { KEYCODE_DELETE, L"DELETE" },
+            { KEYCODE_ADD, L"ADD" },
+            { KEYCODE_SUBTRACT, L"SUBTRACT" },
+            { KEYCODE_MULTIPLY, L"MULTIPLY" },
+            { KEYCODE_DIVIDE, L"DIVIDE" },
+            { KEYCODE_POINT, L"POINT" },
+            { KEYCODE_COMMA, L"COMMA" },
+            { KEYCODE_LESS, L"LESS" },
+            { KEYCODE_GREATER, L"GREATER" },
+            { KEYCODE_EQUAL, L"EQUAL" },
+            { KEYCODE_OPEN, L"OPEN" },
+            { KEYCODE_CUT, L"CUT" },
+            { KEYCODE_COPY, L"COPY" },
+            { KEYCODE_PASTE, L"PASTE" },
+            { KEYCODE_UNDO, L"UNDO" },
+            { KEYCODE_REPEAT, L"REPEAT" },
+            { KEYCODE_FIND, L"FIND" },
+            { KEYCODE_PROPERTIES, L"PROPERTIES" },
+            { KEYCODE_FRONT, L"FRONT" },
+            { KEYCODE_CONTEXTMENU, L"CONTEXTMENU" },
+            { KEYCODE_HELP, L"HELP" },
+        };
+    static long nCount = countof(map);
+
+    long min = 0;
+    long max = nCount-1;
+    long mid = nCount/2;
+    while(min<max)
+    {
+        if(key<map[mid].keyCode)
+            max = mid-1;
+        else if(key>map[mid].keyCode)
+            min = mid+1;
+        else
+            break;
+        mid = (min+max)/2;
+    }
+
+    if(key == map[mid].keyCode)
+    {
+        return map[mid].key;
+    }
+    else
+    {
+        return NULL;
+    }
+}
+

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.cpp
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.h
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.h?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.h (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.h Thu Nov 28 12:54:21 2013
@@ -0,0 +1,92 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+//////////////////////////////////////////////////////////////////////
+// AccActionBase.h: interface for the CAccActionBase class.
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_ACCACTIONBASE_H__F87FAD24_D66E_4D22_9B24_3304A303DC84__INCLUDED_)
+#define AFX_ACCACTIONBASE_H__F87FAD24_D66E_4D22_9B24_3304A303DC84__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#define WNT
+
+#include <com/sun/star/uno/reference.hxx>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include "UNOXWrapper.h"
+
+class ATL_NO_VTABLE CAccActionBase  : public CUNOXWrapper
+{
+public:
+    CAccActionBase();
+    virtual ~CAccActionBase();
+
+    // IAccessibleAction
+public:
+    // IAccessibleAction
+
+    // Returns the number of action.
+    STDMETHOD(nActions)(/*[out,retval]*/long* nActions);
+
+    // Performs specified action on the object.
+    STDMETHOD(doAction)(/* [in] */ long actionIndex);
+
+    // Gets description of specified action.
+    STDMETHOD(get_description)(long actionIndex,BSTR __RPC_FAR *description);
+
+    // added , 2006/06/28, for driver 07/11
+    // get the action name
+    STDMETHOD(get_name)( long actionIndex, BSTR __RPC_FAR *name);
+
+    // get the localized action Name
+    STDMETHOD(get_localizedName)( long actionIndex, BSTR __RPC_FAR *localizedName);
+
+    // Returns key binding object (if any) associated with specified action
+    // key binding is string.
+    // e.g. "alt+d" (like IAccessible::get_accKeyboardShortcut).
+    STDMETHOD(get_keyBinding)(
+        /* [in] */ long actionIndex,
+        /* [in] */ long nMaxBinding,
+        /* [length_is][length_is][size_is][size_is][out] */ BSTR __RPC_FAR *__RPC_FAR *keyBinding,
+        /* [retval][out] */ long __RPC_FAR *nBinding);
+
+    // Overide of IUNOXWrapper.
+    STDMETHOD(put_XInterface)(long pXInterface);
+
+    static void GetkeyBindingStrByXkeyBinding( const com::sun::star::uno::Sequence< com::sun::star::awt::KeyStroke > &keySet, OLECHAR* pString );
+
+protected:
+
+    static OLECHAR* getOLECHARFromKeyCode(long key);
+
+    com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleAction> pRXAct;
+
+private:
+    inline com::sun::star::accessibility::XAccessibleAction* GetXInterface()
+    {
+        return pRXAct.get();
+    }
+};
+
+#endif // !defined(AFX_ACCACTIONBASE_H__F87FAD24_D66E_4D22_9B24_3304A303DC84__INCLUDED_)

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccActionBase.h
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.cpp
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.cpp?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.cpp (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.cpp Thu Nov 28 12:54:21 2013
@@ -0,0 +1,72 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+/**
+ * AccComponent.cpp : Implementation of CUAccCOMApp and DLL registration.
+ */
+#include "stdafx.h"
+#include "UAccCOM2.h"
+#include "AccComponent.h"
+
+/**
+ * Returns the location of the upper left corner of the object's bounding 
+ * box relative to the parent.
+ * 
+ * @param    Location    the upper left corner of the object's bounding box.
+ */
+STDMETHODIMP CAccComponent::get_locationInParent(long *x, long *y)
+{
+    
+    return CAccComponentBase::get_locationInParent(x,y);
+}
+
+/**
+ * Returns the foreground color of this object.
+ * 
+ * @param    Color    the color of foreground.
+ */
+STDMETHODIMP CAccComponent::get_foreground(IA2Color * foreground)
+{
+    
+    return CAccComponentBase::get_foreground(foreground);
+}
+
+/**
+ * Returns the background color of this object.
+ * 
+ * @param    Color    the color of background.
+ */
+STDMETHODIMP CAccComponent::get_background(IA2Color * background)
+{
+    
+    return CAccComponentBase::get_background(background);
+}
+
+/**
+ * Overide of IUNOXWrapper.
+ *
+ * @param    pXInterface    the pointer of UNO interface.
+ */
+STDMETHODIMP CAccComponent::put_XInterface(long pXInterface)
+{
+    
+    return CAccComponentBase::put_XInterface(pXInterface);
+}

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.cpp
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.h
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.h?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.h (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.h Thu Nov 28 12:54:21 2013
@@ -0,0 +1,97 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+#if !defined(AFX_ACCCOMPONENT_H__626D760C_3944_4B0E_BB4D_F0D20AEDF7DC__INCLUDED_)
+#define AFX_ACCCOMPONENT_H__626D760C_3944_4B0E_BB4D_F0D20AEDF7DC__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "resource.h"       // main symbols
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include "UNOXWrapper.h"
+#include "AccComponentBase.h"
+
+using namespace com::sun::star::accessibility;
+using namespace com::sun::star::uno;
+
+/**
+ * CAccComponent implements IAccessibleComponent interface.
+ */
+class ATL_NO_VTABLE CAccComponent :
+            public CComObjectRoot,
+            public CComCoClass<CAccComponent,&CLSID_AccComponent>,
+            public IAccessibleComponent,
+            public CAccComponentBase
+{
+public:
+    CAccComponent()
+    {
+            }
+    ~CAccComponent()
+    {
+            }
+
+    BEGIN_COM_MAP(CAccComponent)
+    COM_INTERFACE_ENTRY(IAccessibleComponent)
+    COM_INTERFACE_ENTRY(IUNOXWrapper)
+    COM_INTERFACE_ENTRY_FUNC_BLIND(NULL,_SmartQI)
+    END_COM_MAP()
+
+    static HRESULT WINAPI _SmartQI(void* pv,
+                                   REFIID iid, void** ppvObject, DWORD)
+    {
+        return ((CAccComponent*)pv)->SmartQI(iid,ppvObject);
+    }
+
+    HRESULT SmartQI(REFIID iid, void** ppvObject)
+    {
+        if( m_pOuterUnknown )
+            return OuterQueryInterface(iid,ppvObject);
+        return E_FAIL;
+    }
+
+    DECLARE_REGISTRY_RESOURCEID(IDR_AccComponent)
+
+    // IAccessibleComponent
+public:
+    // IAccessibleComponent
+
+    // Returns the location of the upper left corner of the object's bounding
+    // box relative to the parent.
+    STDMETHOD(get_locationInParent)(long *x, long *y);
+
+    // Returns the foreground color of this object.
+    STDMETHOD(get_foreground)(IA2Color * foreground);
+
+    // Returns the background color of this object.
+    STDMETHOD(get_background)(IA2Color * background);
+
+    // Overide of IUNOXWrapper.
+    STDMETHOD(put_XInterface)(long pXInterface);
+
+};
+
+#endif // !defined(AFX_ACCCOMPONENT_H__626D760C_3944_4B0E_BB4D_F0D20AEDF7DC__INCLUDED_)

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.h
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.rgs
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.rgs?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.rgs (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.rgs Thu Nov 28 12:54:21 2013
@@ -0,0 +1,23 @@
+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'
+			}
+		}
+	}
+}

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponent.rgs
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.cpp
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.cpp?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.cpp (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.cpp Thu Nov 28 12:54:21 2013
@@ -0,0 +1,213 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+#include "stdafx.h"
+#include "AccComponentBase.h"
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include "MAccessible.h"
+
+using namespace com::sun::star::accessibility;
+using namespace com::sun::star::uno;
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+CAccComponentBase::CAccComponentBase()
+{}
+
+CAccComponentBase::~CAccComponentBase()
+{}
+
+
+/**
+ * Returns the location of the upper left corner of the object's bounding 
+ * box relative to the parent.
+ * 
+ * @param    Location    the upper left corner of the object's bounding box.
+ */
+STDMETHODIMP CAccComponentBase::get_locationInParent(long *x, long *y)
+{
+    
+	CHECK_ENABLE_INF
+
+    try
+    {
+        if (x == NULL || y == NULL)
+            return E_INVALIDARG;
+        // #CHECK XInterface#
+        if(!pRXComp.is())
+            return E_FAIL;
+
+        const ::com::sun::star::awt::Point& pt = GetXInterface()->getLocation();
+        *x = pt.X;
+        *y = pt.Y;
+        return S_OK;
+    }
+    catch(...)
+    {
+        return E_FAIL;
+    }
+}
+
+/**
+ * Returns the location of the upper left corner of the object's bounding 
+ * box in screen.
+ * 
+ * @param    Location    the upper left corner of the object's bounding 
+ *                       box in screen coordinates.
+ */
+STDMETHODIMP CAccComponentBase::get_locationOnScreen(long *x, long *y)
+{
+    
+	CHECK_ENABLE_INF
+
+    try
+    {
+        if (x == NULL || y == NULL)
+            return E_INVALIDARG;
+        // #CHECK XInterface#
+        if(!pRXComp.is())
+            return E_FAIL;
+
+        const ::com::sun::star::awt::Point& pt = GetXInterface()->getLocationOnScreen();
+        *x = pt.X;
+        *y = pt.Y;
+        return S_OK;
+
+    }
+    catch(...)
+    {
+        return E_FAIL;
+    }
+}
+
+/**
+ * Grabs the focus to this object.
+ * 
+ * @param    success    the boolean result to be returned.
+ */
+STDMETHODIMP CAccComponentBase::grabFocus(boolean * success)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    if (success == NULL)
+        return E_INVALIDARG;
+    // #CHECK XInterface#
+    if(!pRXComp.is())
+    {
+        return E_FAIL;
+    }
+    GetXInterface()->grabFocus();
+    *success = TRUE;
+
+    return S_OK;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Returns the foreground color of this object.
+ * 
+ * @param    Color    the color of foreground.
+ */
+STDMETHODIMP CAccComponentBase::get_foreground(IA2Color * foreground)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    if (foreground == NULL)
+        return E_INVALIDARG;
+    // #CHECK XInterface#
+    if(!pRXComp.is())
+    {
+        return E_FAIL;
+    }
+    *foreground = (long)GetXInterface()->getForeground();
+
+    return S_OK;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Returns the background color of this object.
+ * 
+ * @param    Color    the color of background.
+ */
+STDMETHODIMP CAccComponentBase::get_background(IA2Color * background)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    if (background == NULL)
+        return E_INVALIDARG;
+    // #CHECK XInterface#
+    if(!pRXComp.is())
+    {
+        return E_FAIL;
+    }
+    *background = (long)GetXInterface()->getBackground();
+
+    return S_OK;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Overide of IUNOXWrapper.
+ *
+ * @param    pXInterface    the pointer of UNO interface.
+ */
+STDMETHODIMP CAccComponentBase::put_XInterface(long pXInterface)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    CUNOXWrapper::put_XInterface(pXInterface);
+    //special query.
+    if(pUNOInterface == NULL)
+        return E_FAIL;
+    Reference<XAccessibleContext> pRContext = pUNOInterface->getAccessibleContext();
+    if( !pRContext.is() )
+    {
+        return E_FAIL;
+    }
+    Reference<XAccessibleComponent> pRXI(pRContext,UNO_QUERY);
+    if( !pRXI.is() )
+        pRXComp = NULL;
+    else
+        pRXComp = pRXI.get();
+
+    return S_OK;
+
+    LEAVE_PROTECTED_BLOCK
+}

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.cpp
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.h
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.h?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.h (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.h Thu Nov 28 12:54:21 2013
@@ -0,0 +1,78 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+//////////////////////////////////////////////////////////////////////
+// AccComponentBase.h: interface for the CAccComponentBase class.
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_ACCCOMPONENTBASE_H__946BE230_1DCB_494B_ACF6_32A2E197DD2A__INCLUDED_)
+#define AFX_ACCCOMPONENTBASE_H__946BE230_1DCB_494B_ACF6_32A2E197DD2A__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#define WNT
+
+#include <com/sun/star/uno/reference.hxx>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include "UNOXWrapper.h"
+
+class ATL_NO_VTABLE CAccComponentBase : public CUNOXWrapper
+{
+public:
+    CAccComponentBase();
+    virtual ~CAccComponentBase();
+    // IAccessibleComponent
+public:
+    // IAccessibleComponent
+
+    // Returns the location of the upper left corner of the object's bounding
+    // box relative to the parent.
+    STDMETHOD(get_locationInParent)(long *x, long *y);
+
+    // Returns the location of the upper left corner of the object's bounding
+    // box in screen.
+    STDMETHOD(get_locationOnScreen)(long *x, long *y);
+
+    // Grabs the focus to this object.
+    STDMETHOD(grabFocus)(boolean * success);
+
+    // Returns the foreground color of this object.
+    STDMETHOD(get_foreground)(IA2Color * foreground);
+
+    // Returns the background color of this object.
+    STDMETHOD(get_background)(IA2Color * background);
+
+    // Overide of IUNOXWrapper.
+    STDMETHOD(put_XInterface)(long pXInterface);
+
+protected:
+
+    com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleComponent> pRXComp;
+
+    inline com::sun::star::accessibility::XAccessibleComponent* GetXInterface()
+    {
+        return pRXComp.get();
+    }
+};
+
+#endif // !defined(AFX_ACCCOMPONENTBASE_H__946BE230_1DCB_494B_ACF6_32A2E197DD2A__INCLUDED_)

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccComponentBase.h
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccContext.rgs
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccContext.rgs?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccContext.rgs (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccContext.rgs Thu Nov 28 12:54:21 2013
@@ -0,0 +1,23 @@
+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'
+			}
+		}
+	}
+}

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccContext.rgs
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.cpp
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.cpp?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.cpp (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.cpp Thu Nov 28 12:54:21 2013
@@ -0,0 +1,508 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+/**
+ * AccEditableText.cpp : Implementation of CUAccCOMApp and DLL registration.
+ */
+#include "stdafx.h"
+#include "UAccCOM2.h"
+#include "AccEditableText.h"
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleText.hpp>
+#include <com/sun/star/awt/FontSlant.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/style/LineSpacing.hpp>
+#include <com/sun/star/style/TabStop.hpp>
+#include <vector>
+
+using namespace com::sun::star::accessibility;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::awt;
+using namespace com::sun::star::beans;
+using namespace std;
+
+/**
+ * Copys a range of text to the clipboard.
+ *
+ * @param    startOffset    the start offset of copying.
+ * @param    endOffset      the end offset of copying.
+ * @param    success        the boolean result to be returned.
+ */
+STDMETHODIMP CAccEditableText::copyText(long startOffset, long endOffset)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    // #CHECK XInterface#
+    if(!pRXEdtTxt.is())
+    {
+        return E_FAIL;
+    }
+
+    if ( GetXInterface()->copyText( startOffset, endOffset ) )
+        return S_OK;
+
+    return E_FAIL;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Deletes a range of text.
+ *
+ * @param    startOffset    the start offset of deleting.
+ * @param    endOffset      the end offset of deleting.
+ * @param    success        the boolean result to be returned.
+ */
+STDMETHODIMP CAccEditableText::deleteText(long startOffset, long endOffset)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    if( !pRXEdtTxt.is() )
+        return E_FAIL;
+
+    if( GetXInterface()->deleteText( startOffset, endOffset ) )
+        return S_OK;
+
+    return E_FAIL;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Inserts text at a specified offset.
+ *
+ * @param    offset    the offset of inserting.
+ * @param    text      the text to be inserted.
+ * @param    success   the boolean result to be returned.
+ */
+STDMETHODIMP CAccEditableText::insertText(long offset, BSTR * text)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    if (text == NULL)
+        return E_INVALIDARG;
+
+    if( !pRXEdtTxt.is() )
+        return E_FAIL;
+
+    ::rtl::OUString ouStr(*text);
+
+    if( GetXInterface()->insertText( ouStr, offset ) )
+        return S_OK;
+
+    return E_FAIL;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Cuts a range of text to the clipboard.
+ *
+ * @param    startOffset    the start offset of cuting.
+ * @param    endOffset      the end offset of cuting.
+ * @param    success        the boolean result to be returned.
+ */
+STDMETHODIMP CAccEditableText::cutText(long startOffset, long endOffset)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    if( !pRXEdtTxt.is() )
+        return E_FAIL;
+
+    if( GetXInterface()->cutText( startOffset, endOffset ) )
+        return S_OK;
+
+    return E_FAIL;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Pastes text from clipboard at specified offset.
+ *
+ * @param    offset    the offset of pasting.
+ * @param    success   the boolean result to be returned.
+ */
+STDMETHODIMP CAccEditableText::pasteText(long offset)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    if( !pRXEdtTxt.is() )
+        return E_FAIL;
+
+    if( GetXInterface()->pasteText( offset ) )
+        return S_OK;
+
+    return E_FAIL;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Replaces range of text with new text.
+ *
+ * @param    startOffset    the start offset of replacing.
+ * @param    endOffset      the end offset of replacing.
+ * @param    text           the replacing text.
+ * @param    success        the boolean result to be returned.
+ */
+STDMETHODIMP CAccEditableText::replaceText(long startOffset, long endOffset, BSTR * text)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    // #CHECK#
+    if (text == NULL)
+        return E_INVALIDARG;
+    if( !pRXEdtTxt.is() )
+        return E_FAIL;
+
+    ::rtl::OUString ouStr(*text);
+
+    if( GetXInterface()->replaceText( startOffset,endOffset, ouStr) )
+        return S_OK;
+    return E_FAIL;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Sets attributes of range of text.
+ *
+ * @param    startOffset    the start offset.
+ * @param    endOffset      the end offset.
+ * @param    attributes     the attribute text.
+ * @param    success        the boolean result to be returned.
+ */
+STDMETHODIMP CAccEditableText::setAttributes(long startOffset, long endOffset, BSTR * attributes)
+{
+    
+	CHECK_ENABLE_INF
+
+    ENTER_PROTECTED_BLOCK
+
+    // #CHECK#
+    if (attributes == NULL)
+        return E_INVALIDARG;
+    if( !pRXEdtTxt.is() )
+        return E_FAIL;
+
+    ::rtl::OUString ouStr(*attributes);
+
+    sal_Int32 nIndex = 0;
+    sal_Unicode cTok = ';';
+    vector< ::rtl::OUString > vecAttr;
+    do
+    {
+        ::rtl::OUString ouToken = ouStr.getToken(0, cTok, nIndex);
+        vecAttr.push_back(ouToken);
+    }
+    while(nIndex >= 0);
+
+    Sequence< PropertyValue > beanSeq(vecAttr.size());
+    for(unsigned int i = 0; i < vecAttr.size(); i ++)
+    {
+        ::rtl::OUString attr = vecAttr[i];
+        sal_Int32 nPos = attr.indexOf(':');
+        if(nPos > -1)
+        {
+            ::rtl::OUString attrName = attr.copy(0, nPos);
+            ::rtl::OUString attrValue = attr.copy(nPos + 1, attr.getLength() - nPos - 1);
+            beanSeq[i].Name = attrName;
+            get_AnyFromOLECHAR(attrName, attrValue, beanSeq[i].Value);
+        }
+    }
+
+    if( GetXInterface()->setAttributes( startOffset,endOffset, beanSeq) )
+        return S_OK;
+
+    return E_FAIL;
+
+    LEAVE_PROTECTED_BLOCK
+}
+
+/**
+ * Convert attributes string to Any type.
+ * Reference to infra\accessibility\bridge\org\openoffice\java\accessibility\AccessibleTextImpl.java
+ *
+ * @param	ouName		the string of attribute name.
+ * @param	ouValue		the string of attribute value.
+ * @param	rAny		the Any object to be returned.
+ */
+void CAccEditableText::get_AnyFromOLECHAR(const ::rtl::OUString &ouName, const ::rtl::OUString &ouValue, Any &rAny)
+{
+    if(ouName.compareTo(L"CharBackColor") == 0 ||
+            ouName.compareTo(L"CharColor") == 0 ||
+            ouName.compareTo(L"ParaAdjust") == 0 ||
+            ouName.compareTo(L"ParaFirstLineIndent") == 0 ||
+            ouName.compareTo(L"ParaLeftMargin") == 0 ||
+            ouName.compareTo(L"ParaRightMargin") == 0 ||
+            ouName.compareTo(L"ParaTopMargin") == 0 ||
+            ouName.compareTo(L"ParaBottomMargin") == 0 ||
+            ouName.compareTo(L"CharFontPitch") == 0)
+    {
+        // Convert to int.
+        // NOTE: CharFontPitch is not implemented in java file.
+        sal_Int32 nValue = ouValue.toInt32();
+        rAny.setValue(&nValue, getCppuType((sal_Int32 *)0));
+    }
+    else if(ouName.compareTo(L"CharShadowed") == 0 ||
+            ouName.compareTo(L"CharContoured") == 0)
+    {
+        // Convert to boolean.
+        boolean nValue = (boolean)ouValue.toBoolean();
+        rAny.setValue(&nValue, getCppuType((sal_Bool *)sal_False));
+    }
+    else if(ouName.compareTo(L"CharEscapement") == 0 ||
+            ouName.compareTo(L"CharStrikeout") == 0 ||
+            ouName.compareTo(L"CharUnderline") == 0 ||
+            ouName.compareTo(L"CharFontPitch") == 0)
+    {
+        // Convert to short.
+        short nValue = (short)ouValue.toInt32();
+        rAny.setValue(&nValue, getCppuType((short *)0));
+    }
+    else if(ouName.compareTo(L"CharHeight") == 0 ||
+            ouName.compareTo(L"CharWeight") == 0)
+    {
+        // Convert to float.
+        float fValue = ouValue.toFloat();
+        rAny.setValue(&fValue, getCppuType((float *)0));
+    }
+    else if(ouName.compareTo(L"CharFontName") == 0)
+    {
+        // Convert to string.
+        rAny.setValue(&ouValue, getCppuType((::rtl::OUString *)0));
+    }
+    else if(ouName.compareTo(L"CharPosture") == 0)
+    {
+        // Convert to FontSlant.
+        ::com::sun::star::awt::FontSlant fontSlant = (::com::sun::star::awt::FontSlant)ouValue.toInt32();
+        rAny.setValue(&fontSlant, getCppuType((::com::sun::star::awt::FontSlant*)0));
+    }
+    else if(ouName.compareTo(L"ParaTabStops") == 0)
+    {
+        //
+        // Convert to the Sequence with TabStop element.
+        vector< ::com::sun::star::style::TabStop > vecTabStop;
+        ::com::sun::star::style::TabStop tabStop;
+        ::rtl::OUString ouSubValue;
+        sal_Int32 nIndex = 0;
+        sal_Int32 pos = 0, posComma = 0;
+
+        do
+        {
+            // Position.
+            pos = ouValue.indexOf(L"Position=", pos);
+            if(pos != -1)
+            {
+                posComma = ouValue.indexOf(',', pos + 9); // 9 = length of "Position=".
+                if(posComma != -1)
+                {
+                    ouSubValue = ouValue.copy(pos + 9, posComma - pos - 9);
+                    tabStop.Position = ouSubValue.toInt32();
+                    pos = posComma + 1;
+
+                    // TabAlign.
+                    pos = ouValue.indexOf(L"TabAlign=", pos);
+                    if(pos != -1)
+                    {
+                        posComma = ouValue.indexOf(',', pos + 9); // 9 = length of "TabAlign=".
+                        if(posComma != -1)
+                        {
+                            ouSubValue = ouValue.copy(pos + 9, posComma - pos - 9);
+                            tabStop.Alignment = (::com::sun::star::style::TabAlign)ouSubValue.toInt32();
+                            pos = posComma + 1;
+
+                            // DecimalChar.
+                            pos = ouValue.indexOf(L"DecimalChar=", pos);
+                            if(pos != -1)
+                            {
+                                posComma = ouValue.indexOf(',', pos + 11); // 11 = length of "TabAlign=".
+                                if(posComma != -1)
+                                {
+                                    ouSubValue = ouValue.copy(pos + 11, posComma - pos - 11);
+                                    tabStop.DecimalChar = (sal_Unicode)ouSubValue.toChar();
+                                    pos = posComma + 1;
+
+                                    // FillChar.
+                                    pos = ouValue.indexOf(L"FillChar=", pos);
+                                    if(pos != -1)
+                                    {
+                                        posComma = ouValue.indexOf(',', pos + 9); // 9 = length of "TabAlign=".
+                                        if(posComma != -1)
+                                        {
+                                            ouSubValue = ouValue.copy(pos + 9, posComma - pos - 9);
+                                            tabStop.DecimalChar = (sal_Unicode)ouSubValue.toChar();
+                                            pos = posComma + 1;
+
+                                            // Complete TabStop element.
+                                            vecTabStop.push_back(tabStop);
+                                        }
+                                        else
+                                            break;	// No match comma.
+                                    }
+                                    else
+                                        break;	// No match FillChar.
+                                }
+                                else
+                                    break;	// No match comma.
+                            }
+                            else
+                                break;	// No match DecimalChar.
+                        }
+                        else
+                            break;	// No match comma.
+                    }
+                    else
+                        break;	// No match TabAlign.
+                }
+                else
+                    break;	// No match comma.
+            }
+            else
+                break;	// No match Position.
+        }
+        while(pos < ouValue.getLength());
+
+        //
+        // Dump into Sequence.
+        int iSeqLen = (vecTabStop.size() == 0) ? 1 : vecTabStop.size();
+        Sequence< ::com::sun::star::style::TabStop > seqTabStop(iSeqLen);
+
+        if(vecTabStop.size() != 0)
+        {
+            // Dump every element.
+            for(int i = 0; i < iSeqLen; i ++)
+            {
+                seqTabStop[i] = vecTabStop[i];
+            }
+        }
+        else
+        {
+            // Create default value.
+            seqTabStop[0].Position = 0;
+            seqTabStop[0].Alignment = ::com::sun::star::style::TabAlign_DEFAULT;
+            seqTabStop[0].DecimalChar = '.';
+            seqTabStop[0].FillChar = ' ';
+        }
+
+        // Assign to Any object.
+        rAny.setValue(&seqTabStop, getCppuType((Sequence< ::com::sun::star::style::TabStop >*)0));
+    }
+    else if(ouName.compareTo(L"ParaLineSpacing") == 0)
+    {
+        // Parse value string.
+        ::com::sun::star::style::LineSpacing lineSpacing;
+        ::rtl::OUString ouSubValue;
+        sal_Int32 pos = 0, posComma = 0;
+
+        pos = ouValue.indexOf(L"Mode=", pos);
+        if(pos != -1)
+        {
+            posComma = ouValue.indexOf(',', pos + 5); // 5 = length of "Mode=".
+            if(posComma != -1)
+            {
+                ouSubValue = ouValue.copy(pos + 5, posComma - pos - 5);
+                lineSpacing.Mode = (sal_Int16)ouSubValue.toInt32();
+                pos = posComma + 1;
+
+                pos = ouValue.indexOf(L"Height=", pos);
+                if(pos != -1)
+                {
+                    ouSubValue = ouValue.copy(pos + 7, ouValue.getLength() - pos - 7);
+                    lineSpacing.Height = (sal_Int16)ouSubValue.toInt32();
+                }
+                else
+                {
+                    lineSpacing.Height = (sal_Int16)100;	// Default height.
+                }
+            }
+            else
+            {
+                lineSpacing.Height = (sal_Int16)100;	// Default height.
+            }
+        }
+        else
+        {
+            // Default Mode and Height.
+            lineSpacing.Mode = (sal_Int16)0;
+            lineSpacing.Height = (sal_Int16)100;	// Default height.
+        }
+
+        // Convert to Any object.
+        rAny.setValue(&lineSpacing, getCppuType((::com::sun::star::style::LineSpacing* )0));
+    }
+    else
+    {
+        // Do nothing.
+        sal_Int32 nDefault = 0;
+        rAny.setValue(&nDefault, getCppuType((sal_Int32 *)0));
+    }
+}
+
+/**
+ * Overide of IUNOXWrapper.
+ *
+ * @param    pXInterface    the pointer of UNO interface.
+ */
+STDMETHODIMP CAccEditableText::put_XInterface(long pXInterface)
+{
+    
+
+    ENTER_PROTECTED_BLOCK
+
+    CUNOXWrapper::put_XInterface(pXInterface);
+    //special query.
+    if(pUNOInterface == NULL)
+        return E_FAIL;
+    Reference<XAccessibleContext> pRContext = pUNOInterface->getAccessibleContext();
+    if( !pRContext.is() )
+    {
+        return E_FAIL;
+    }
+    Reference<XAccessibleEditableText> pRXI(pRContext,UNO_QUERY);
+    if( !pRXI.is() )
+        pRXEdtTxt = NULL;
+    else
+        pRXEdtTxt = pRXI.get();
+    return S_OK;
+
+    LEAVE_PROTECTED_BLOCK
+}

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.cpp
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.h
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.h?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.h (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.h Thu Nov 28 12:54:21 2013
@@ -0,0 +1,115 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+#if !defined(AFX_ACCEDITABLETEXT_H__0C41AFBE_5A87_4D9D_A284_CEC264D91F81__INCLUDED_)
+#define AFX_ACCEDITABLETEXT_H__0C41AFBE_5A87_4D9D_A284_CEC264D91F81__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "resource.h"
+#include <com/sun/star/uno/reference.hxx>
+#include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
+#include "UNOXWrapper.h"
+
+/**
+ * CAccEditableText implements IAccessibleEditableText interface.
+ */
+class CAccEditableText :
+            public CComObjectRoot,
+            public CComCoClass<CAccEditableText,&CLSID_AccEditableText>,
+            public IAccessibleEditableText,
+            public CUNOXWrapper
+{
+public:
+    CAccEditableText()
+    {
+        
+    }
+    virtual ~CAccEditableText()
+    {
+        
+    }
+
+    BEGIN_COM_MAP(CAccEditableText)
+    COM_INTERFACE_ENTRY(IAccessibleEditableText)
+    COM_INTERFACE_ENTRY(IUNOXWrapper)
+    COM_INTERFACE_ENTRY_FUNC_BLIND(NULL,_SmartQI)
+    END_COM_MAP()
+
+    static HRESULT WINAPI _SmartQI(void* pv,
+                                   REFIID iid, void** ppvObject, DWORD)
+    {
+        return ((CAccEditableText*)pv)->SmartQI(iid,ppvObject);
+    }
+
+    HRESULT SmartQI(REFIID iid, void** ppvObject)
+    {
+        if( m_pOuterUnknown )
+            return OuterQueryInterface(iid,ppvObject);
+        return E_FAIL;
+    }
+
+    DECLARE_REGISTRY_RESOURCEID(IDR_AccEditableText)
+
+    // IAccessibleEditableText
+public:
+    // IAccessibleEditableText
+
+    // Copys a range of text to the clipboard.
+    STDMETHOD(copyText)(long startOffset, long endOffset);
+
+    // Deletes a range of text.
+    STDMETHOD(deleteText)(long startOffset, long endOffset);
+
+    // Inserts text at a specified offset.
+    STDMETHOD(insertText)(long offset, BSTR * text);
+
+    // Cuts a range of text to the clipboard.
+    STDMETHOD(cutText)(long startOffset, long endOffset);
+
+    // Pastes text from clipboard at specified offset.
+    STDMETHOD(pasteText)(long offset);
+
+    // Replaces range of text with new text.
+    STDMETHOD(replaceText)(long startOffset, long endOffset, BSTR * text);
+
+
+    // Sets attributes of range of text.
+    STDMETHOD(setAttributes)(long startOffset, long endOffset, BSTR * attributes);
+
+    // Overide of IUNOXWrapper.
+    STDMETHOD(put_XInterface)(long pXInterface);
+
+private:
+
+    com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessibleEditableText> pRXEdtTxt;
+
+    void get_AnyFromOLECHAR(const ::rtl::OUString &ouName, const ::rtl::OUString &ouValue, com::sun::star::uno::Any &rAny);
+
+    inline com::sun::star::accessibility::XAccessibleEditableText* GetXInterface()
+    {
+        return pRXEdtTxt.get();
+    }
+};
+
+#endif // !defined(AFX_ACCEDITABLETEXT_H__0C41AFBE_5A87_4D9D_A284_CEC264D91F81__INCLUDED_)

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.h
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.rgs
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.rgs?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.rgs (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.rgs Thu Nov 28 12:54:21 2013
@@ -0,0 +1,23 @@
+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'
+			}
+		}
+	}
+}

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccEditableText.rgs
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccExtendedComponent.rgs
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccExtendedComponent.rgs?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccExtendedComponent.rgs (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccExtendedComponent.rgs Thu Nov 28 12:54:21 2013
@@ -0,0 +1,23 @@
+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'
+			}
+		}
+	}
+}

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccExtendedComponent.rgs
------------------------------------------------------------------------------
    svn:executable = *

Added: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccFont.rgs
URL: http://svn.apache.org/viewvc/openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccFont.rgs?rev=1546358&view=auto
==============================================================================
--- openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccFont.rgs (added)
+++ openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccFont.rgs Thu Nov 28 12:54:21 2013
@@ -0,0 +1,23 @@
+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'
+			}
+		}
+	}
+}

Propchange: openoffice/branches/capstone2013/main/winaccessibility/source/UAccCOM/AccFont.rgs
------------------------------------------------------------------------------
    svn:executable = *