15fdc4257SSteve Yin /************************************************************************* 25fdc4257SSteve Yin * 35fdc4257SSteve Yin * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 45fdc4257SSteve Yin * 55fdc4257SSteve Yin * Copyright IBM Corporation 2010. 65fdc4257SSteve Yin * Copyright 2000, 2010 Oracle and/or its affiliates. 75fdc4257SSteve Yin * 85fdc4257SSteve Yin * OpenOffice.org - a multi-platform office productivity suite 95fdc4257SSteve Yin * 105fdc4257SSteve Yin * This file is part of OpenOffice.org. 115fdc4257SSteve Yin * 125fdc4257SSteve Yin * OpenOffice.org is free software: you can redistribute it and/or modify 135fdc4257SSteve Yin * it under the terms of the GNU Lesser General Public License version 3 145fdc4257SSteve Yin * only, as published by the Free Software Foundation. 155fdc4257SSteve Yin * 165fdc4257SSteve Yin * OpenOffice.org is distributed in the hope that it will be useful, 175fdc4257SSteve Yin * but WITHOUT ANY WARRANTY; without even the implied warranty of 185fdc4257SSteve Yin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 195fdc4257SSteve Yin * GNU Lesser General Public License version 3 for more details 205fdc4257SSteve Yin * (a copy is included in the LICENSE file that accompanied this code). 215fdc4257SSteve Yin * 225fdc4257SSteve Yin * You should have received a copy of the GNU Lesser General Public License 235fdc4257SSteve Yin * version 3 along with OpenOffice.org. If not, see 245fdc4257SSteve Yin * <http://www.openoffice.org/license.html> 255fdc4257SSteve Yin * for a copy of the LGPLv3 License. 265fdc4257SSteve Yin * 275fdc4257SSteve Yin ************************************************************************/ 285fdc4257SSteve Yin 295fdc4257SSteve Yin #ifndef __ACCACTION_H_ 305fdc4257SSteve Yin #define __ACCACTION_H_ 315fdc4257SSteve Yin 325fdc4257SSteve Yin #include "resource.h" // main symbols 335fdc4257SSteve Yin #include "AccActionBase.h" 345fdc4257SSteve Yin 355fdc4257SSteve Yin /** 365fdc4257SSteve Yin * CAccAction implements IAccessibleAction interface. 375fdc4257SSteve Yin */ 385fdc4257SSteve Yin class ATL_NO_VTABLE CAccAction : 395fdc4257SSteve Yin public CComObjectRoot, 405fdc4257SSteve Yin public CComCoClass<CAccAction, &CLSID_AccAction>, 415fdc4257SSteve Yin public IAccessibleAction, 425fdc4257SSteve Yin public CAccActionBase 435fdc4257SSteve Yin { 445fdc4257SSteve Yin public: 455fdc4257SSteve Yin CAccAction() 465fdc4257SSteve Yin { 475fdc4257SSteve Yin 485fdc4257SSteve Yin } 495fdc4257SSteve Yin ~CAccAction() 505fdc4257SSteve Yin { 515fdc4257SSteve Yin 525fdc4257SSteve Yin } 535fdc4257SSteve Yin 545fdc4257SSteve Yin DECLARE_REGISTRY_RESOURCEID(IDR_ACCACTION) 555fdc4257SSteve Yin 565fdc4257SSteve Yin BEGIN_COM_MAP(CAccAction) 575fdc4257SSteve Yin COM_INTERFACE_ENTRY(IAccessibleAction) 585fdc4257SSteve Yin COM_INTERFACE_ENTRY(IUNOXWrapper) 595fdc4257SSteve Yin COM_INTERFACE_ENTRY_FUNC_BLIND(NULL,_SmartQI) 605fdc4257SSteve Yin END_COM_MAP() 615fdc4257SSteve Yin 625fdc4257SSteve Yin static HRESULT WINAPI _SmartQI(void* pv, 635fdc4257SSteve Yin REFIID iid, void** ppvObject, DWORD) 645fdc4257SSteve Yin { 655fdc4257SSteve Yin return ((CAccAction*)pv)->SmartQI(iid,ppvObject); 665fdc4257SSteve Yin } 675fdc4257SSteve Yin 685fdc4257SSteve Yin HRESULT SmartQI(REFIID iid, void** ppvObject) 695fdc4257SSteve Yin { 705fdc4257SSteve Yin if( m_pOuterUnknown ) 715fdc4257SSteve Yin return OuterQueryInterface(iid,ppvObject); 725fdc4257SSteve Yin return E_FAIL; 735fdc4257SSteve Yin } 745fdc4257SSteve Yin 755fdc4257SSteve Yin // IAccessibleAction 765fdc4257SSteve Yin public: 775fdc4257SSteve Yin // IAccessibleAction 785fdc4257SSteve Yin 795fdc4257SSteve Yin // Returns the number of action. 805fdc4257SSteve Yin STDMETHOD(nActions)(/*[out,retval]*/long* nActions); 815fdc4257SSteve Yin 825fdc4257SSteve Yin // Performs specified action on the object. 835fdc4257SSteve Yin STDMETHOD(doAction)(/* [in] */ long actionIndex); 845fdc4257SSteve Yin 855fdc4257SSteve Yin // Gets description of specified action. 865fdc4257SSteve Yin STDMETHOD(get_description)(long actionIndex,BSTR __RPC_FAR *description); 875fdc4257SSteve Yin 88*6fa810f3SSteve Yin // added , 2006/06/28, for driver 07/11 895fdc4257SSteve Yin // get the action name 905fdc4257SSteve Yin STDMETHOD(get_name)( long actionIndex, BSTR __RPC_FAR *name); 915fdc4257SSteve Yin 925fdc4257SSteve Yin // get the localized action name 935fdc4257SSteve Yin STDMETHOD(get_localizedName)( long actionIndex, BSTR __RPC_FAR *localizedName); 945fdc4257SSteve Yin 955fdc4257SSteve Yin // Returns key binding object (if any) associated with specified action 965fdc4257SSteve Yin // key binding is string. 975fdc4257SSteve Yin // e.g. "alt+d" (like IAccessible::get_accKeyboardShortcut). 985fdc4257SSteve Yin STDMETHOD(get_keyBinding)( 995fdc4257SSteve Yin /* [in] */ long actionIndex, 1005fdc4257SSteve Yin /* [in] */ long nMaxBinding, 1015fdc4257SSteve Yin /* [length_is][length_is][size_is][size_is][out] */ BSTR __RPC_FAR *__RPC_FAR *keyBinding, 1025fdc4257SSteve Yin /* [retval][out] */ long __RPC_FAR *nBinding); 1035fdc4257SSteve Yin 1045fdc4257SSteve Yin // Overide of IUNOXWrapper. 1055fdc4257SSteve Yin STDMETHOD(put_XInterface)(long pXInterface); 1065fdc4257SSteve Yin 1075fdc4257SSteve Yin // Overide of IUNOXWrapper. 1085fdc4257SSteve Yin STDMETHOD(put_XSubInterface)(long pXSubInterface); 1095fdc4257SSteve Yin 1105fdc4257SSteve Yin }; 1115fdc4257SSteve Yin 1125fdc4257SSteve Yin #endif //__ACCACTION_H_ 113