diff options
-rw-r--r-- | basic/source/runtime/os2.asm | 103 | ||||
-rw-r--r-- | basic/source/runtime/win.asm | 80 | ||||
-rwxr-xr-x | oovbaapi/ooo/vba/XVBAAppService.idl | 72 | ||||
-rwxr-xr-x | oovbaapi/ooo/vba/XVBADocService.idl | 72 | ||||
-rwxr-xr-x | oovbaapi/ooo/vba/excel/SheetObject.idl | 131 | ||||
-rwxr-xr-x | oovbaapi/ooo/vba/excel/SheetObjects.idl | 150 | ||||
-rwxr-xr-x | oovbaapi/ooo/vba/excel/XHyperlinks.idl | 70 | ||||
-rwxr-xr-x | vbahelper/source/msforms/vbasystemaxcontrol.cxx | 101 | ||||
-rwxr-xr-x | vbahelper/source/msforms/vbasystemaxcontrol.hxx | 58 |
9 files changed, 654 insertions, 183 deletions
diff --git a/basic/source/runtime/os2.asm b/basic/source/runtime/os2.asm deleted file mode 100644 index a56f0b74b89e..000000000000 --- a/basic/source/runtime/os2.asm +++ /dev/null @@ -1,103 +0,0 @@ -;************************************************************************* -; -; DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -; -; Copyright 2000, 2010 Oracle and/or its affiliates. -; -; OpenOffice.org - a multi-platform office productivity suite -; -; This file is part of OpenOffice.org. -; -; OpenOffice.org is free software: you can redistribute it and/or modify -; it under the terms of the GNU Lesser General Public License version 3 -; only, as published by the Free Software Foundation. -; -; OpenOffice.org is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU Lesser General Public License version 3 for more details -; (a copy is included in the LICENSE file that accompanied this code). -; -; You should have received a copy of the GNU Lesser General Public License -; version 3 along with OpenOffice.org. If not, see -; <http://www.openoffice.org/license.html> -; for a copy of the LGPLv3 License. -; -;************************************************************************* - -; Anmerkungen -; Direktaufruf von C- und PASCAL-Routinen, OS/2 -; -; Inhalt: -; type = CallXXX (far *proc, char *stack, short nstack) -; -; Kopie des Basic-Stacks (nstack Bytes) auf den C-Stack -; und Aufruf der Prozedur. - - .386 - .MODEL FLAT - - .CODE - - PUBLIC CallINT - PUBLIC CallLNG - PUBLIC CallSNG - PUBLIC CallDBL - PUBLIC CallSTR - PUBLIC CallFIX - - PUBLIC _CallINT - PUBLIC _CallLNG - PUBLIC _CallSNG - PUBLIC _CallDBL - PUBLIC _CallSTR - PUBLIC _CallFIX - -_CallINT LABEL byte -_CallLNG LABEL byte -_CallSNG LABEL byte -_CallDBL LABEL byte -_CallSTR LABEL byte -_CallFIX LABEL byte - -CallINT LABEL byte -CallLNG LABEL byte -CallSNG LABEL byte -CallDBL LABEL byte -CallSTR LABEL byte -CallFIX PROC - -p EQU [EBP+8] -stk EQU [EBP+12] -n EQU [EBP+16] - - PUSH EBP - MOV EBP,ESP - PUSH ESI - PUSH EDI - MOV DX,DS - MOVZX ECX,word ptr [n] - SUB ESP,ECX - MOV EDI,ESP - MOV AX,SS - MOV ES,AX - MOV ESI,[stk] - SHR ECX,1 - CLD - JCXZ $1 - REP MOVSW ; Stack uebernehmen -$1: MOV DS,DX - CALL LARGE [p] ; 32-bit - MOV ECX,EBP - SUB ECX,8 ; wegen gepushter Register - MOV ESP,ECX - POP EDI - POP ESI - POP EBP -; Bei Borland C++ Calling Convention: -; RET 12 -; CSet System-Calling Convention - RET -CallFIX ENDP - - END diff --git a/basic/source/runtime/win.asm b/basic/source/runtime/win.asm deleted file mode 100644 index dea597a4ce51..000000000000 --- a/basic/source/runtime/win.asm +++ /dev/null @@ -1,80 +0,0 @@ -;************************************************************************* -; -; DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -; -; Copyright 2000, 2010 Oracle and/or its affiliates. -; -; OpenOffice.org - a multi-platform office productivity suite -; -; This file is part of OpenOffice.org. -; -; OpenOffice.org is free software: you can redistribute it and/or modify -; it under the terms of the GNU Lesser General Public License version 3 -; only, as published by the Free Software Foundation. -; -; OpenOffice.org is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU Lesser General Public License version 3 for more details -; (a copy is included in the LICENSE file that accompanied this code). -; -; You should have received a copy of the GNU Lesser General Public License -; version 3 along with OpenOffice.org. If not, see -; <http://www.openoffice.org/license.html> -; for a copy of the LGPLv3 License. -; -;************************************************************************* - -; Anmerkungen -; Direktaufruf von C- und PASCAL-Routinen, Windows und OS/2 -; -; Inhalt: -; type = CallXXX (far *proc, char *stack, short nstack) -; -; Kopie des Basic-Stacks (nstack Bytes) auf den C-Stack -; und Aufruf der Prozedur. - - .MODEL LARGE,C - - .CODE - - PUBLIC CallINT - PUBLIC CallLNG - PUBLIC CallSNG - PUBLIC CallDBL - PUBLIC CallSTR - PUBLIC CallFIX - -CallINT LABEL byte -CallLNG LABEL byte -CallSNG LABEL byte -CallDBL LABEL byte -CallSTR LABEL byte -CallFIX PROC p:PTR,stk:PTR,n:WORD - - PUSH SI - PUSH DI - MOV DX,DS - SUB SP,[n] - MOV DI,SP - MOV AX,SS - MOV ES,AX - LDS SI,[stk] - MOV CX,[n] - SHR CX,1 - CLD - JCXZ $1 - REP MOVSW ; Stack uebernehmen -$1: MOV DS,DX - CALL [p] ; Aufruf der Prozedur - CLI - MOV SP,BP - SUB SP,4 ; wegen gepushter Register - STI - POP DI - POP SI - RET - -CallFIX ENDP - - END diff --git a/oovbaapi/ooo/vba/XVBAAppService.idl b/oovbaapi/ooo/vba/XVBAAppService.idl new file mode 100755 index 000000000000..1c4a0920fbf8 --- /dev/null +++ b/oovbaapi/ooo/vba/XVBAAppService.idl @@ -0,0 +1,72 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: XWorkbook.idl,v $ + * $Revision: 1.4 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __ooo_vba_appservice_idl__ +#define __ooo_vba_appservice_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_uno_XComponentContext_idl__ +#include <com/sun/star/uno/XComponentContext.idl> +#endif + +#ifndef __com_sun_star_frame_XModel_idl__ +#include <com/sun/star/frame/XModel.idl> +#endif + +#ifndef __com_sun_star_script_XLibraryContainer_idl__ +#include <com/sun/star/script/XLibraryContainer.idl> +#endif + +//============================================================================= + +module ooo { module vba { + +//============================================================================= + + +interface XHelperInterface; +interface XComponentContext; +interface XModel; + +interface XVBAAppService +{ + interface ::com::sun::star::uno::XInterface; + + any getVBE([in] XHelperInterface xParent, [in] ::com::sun::star::uno::XComponentContext xContext, [in] ::com::sun::star::frame::XModel xModel); + any getVBProjects([in] XHelperInterface xParent, [in] ::com::sun::star::uno::XComponentContext xContext, [in] ::com::sun::star::frame::XModel xModel, [in] ::com::sun::star::script::XLibraryContainer xMacroLibraryContainer, [in] com::sun::star::script::XLibraryContainer xDialogLibraryContainer); + + +}; + + }; }; + +#endif diff --git a/oovbaapi/ooo/vba/XVBADocService.idl b/oovbaapi/ooo/vba/XVBADocService.idl new file mode 100755 index 000000000000..6500f028934b --- /dev/null +++ b/oovbaapi/ooo/vba/XVBADocService.idl @@ -0,0 +1,72 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: XVBADocService.idl,v $ + * $Revision: 1.4 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __ooo_vba_socservice_idl__ +#define __ooo_vba_appservice_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_uno_XComponentContext_idl__ +#include <com/sun/star/uno/XComponentContext.idl> +#endif + +#ifndef __com_sun_star_frame_XModel_idl__ +#include <com/sun/star/frame/XModel.idl> +#endif + +#ifndef __com_sun_star_script_XLibraryContainer_idl__ +#include <com/sun/star/script/XLibraryContainer.idl> +#endif + +//============================================================================= + +module ooo { module vba { + +//============================================================================= + + +interface XHelperInterface; +interface XComponentContext; +interface XModel; + +interface XVBADocService +{ + interface ::com::sun::star::uno::XInterface; + + + any getVBProject([in] XHelperInterface xParent, [in] ::com::sun::star::uno::XComponentContext xContext, [in] ::com::sun::star::frame::XModel xModel, [in] ::com::sun::star::script::XLibraryContainer xMacroLibraryContainer, [in] com::sun::star::script::XLibraryContainer xDialogLibraryContainer); + + +}; + + }; }; + +#endif diff --git a/oovbaapi/ooo/vba/excel/SheetObject.idl b/oovbaapi/ooo/vba/excel/SheetObject.idl new file mode 100755 index 000000000000..e4037e69b84d --- /dev/null +++ b/oovbaapi/ooo/vba/excel/SheetObject.idl @@ -0,0 +1,131 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __ooo_vba_excel_SheetObject_idl__ +#define __ooo_vba_excel_SheetObject_idl__ + +#include <ooo/vba/excel/XCharacters.idl> + +//============================================================================= + +/* Note: This file collects all compatibility interfaces for drawing objects + and drawing controls embedded in sheets. All these symbols are deprecated + in VBA and kept for compatibility with old VBA scripts. */ + +//============================================================================= + +module ooo { module vba { module excel { + +//============================================================================= + +/** Base interface for graphic objects and drawing controls in a single sheet. + + <p>The objects supporting this interface are now deprecated in VBA in + favour of the Shapes and OLEObjects collections, but are kept for + compatibility with old VBA scripts. All form control objects do NOT belong + to ActiveX form controls but to the old-style drawing controls.</p> + */ +interface XSheetObject : ooo::vba::XHelperInterface +{ + /** Left coordinate of the drawing object, in points. */ + [attribute] double Left; + + /** Top coordinate of the drawing object, in points. */ + [attribute] double Top; + + /** Width of the drawing object, in points. */ + [attribute] double Width; + + /** Height of the drawing object, in points. */ + [attribute] double Height; + + /** The name of the drawing object, used as collection key. */ + [attribute] string Name; + + /** Name of a macro that will be executed when the drawing object is clicked. */ + [attribute] string OnAction; + + /** Anchor mode of the object (fixed or variable position and size). Must + be a value from <type>ooo::vba::excel::XlPlacement</type>. */ + [attribute] long Placement; + + /** True = print object, false = skip object on printing. */ + [attribute] boolean PrintObject; +}; + +//============================================================================= + +/** Additional attributes for all drawing controls (this interface does not + belong to ActiveX form controls). + */ +interface XControlObject : com::sun::star::uno::XInterface +{ + [attribute] boolean AutoSize; +}; + +//============================================================================= + +/** Additional attributes for a push button drawing control (this interface + does not belong to ActiveX form controls). + */ +interface XButton : com::sun::star::uno::XInterface +{ + /** Visible caption of the button. */ + [attribute] string Caption; + + /** Font settings for the entire caption text. */ + [attribute] XFont Font; + + /** Horizontal alignment of the caption. */ + [attribute] long HorizontalAlignment; + + /** Vertical alignment of the caption. */ + [attribute] long VerticalAlignment; + + /** Orientation (rotation) of the text. Must be a value from + <type>ooo::vba::excel::XlOrientation</type>. */ + [attribute] long Orientation; + + /** Access to text and text formatting of the button caption. */ + XCharacters Characters( [in] any aStart, [in] any aLength ); +}; + +//============================================================================= + +/** Represents a drawing button control in a spreadsheet. */ +service Button +{ + interface XSheetObject; + interface XControlObject; + interface XButton; +}; + +//============================================================================= + +}; }; }; + +#endif diff --git a/oovbaapi/ooo/vba/excel/SheetObjects.idl b/oovbaapi/ooo/vba/excel/SheetObjects.idl new file mode 100755 index 000000000000..0339059e1231 --- /dev/null +++ b/oovbaapi/ooo/vba/excel/SheetObjects.idl @@ -0,0 +1,150 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __ooo_vba_excel_SheetObjects_idl__ +#define __ooo_vba_excel_SheetObjects_idl__ + +#include <ooo/vba/XCollection.idl> + +//============================================================================= + +/* Note: This file collects all compatibility interfaces for collections of + drawing objects and drawing controls embedded in sheets. All these symbols + are deprecated in VBA and kept for compatibility with old VBA scripts. */ + +//============================================================================= + +module ooo { module vba { module excel { + +//============================================================================= + +/** Collections that implement this interface provide access to a specific type + of drawing objects in a single sheet. + + <p>The following sheet symbols represent collections of graphic objects, + and therefore implement this interface:</p> + <ul><li>Buttons: push button (command button) controls,</li> + <li>ChartObjects: chart objects embedded in the sheet,</li> + <li>CheckBoxes: check box controls,</li> + <li>DropDowns: drop-down listbox controls,</li> + <li>EditBoxes: text edit controls (dialog sheets only),</li> + <li>GroupBoxes: group frame controls,</li> + <li>GroupObjects: group objects containing other child objects,</li> + <li>Labels: fixed text controls,</li> + <li>ListBoxes: plain listbox controls,</li> + <li>OptionButtons: option button (radio button) controls,</li> + <li>Ovals: simple ovals and circles,</li> + <li>Pictures: picture objects,</li> + <li>Rectangles: simple rectangle objects,</li> + <li>ScrollBars: scrollbar controls,</li> + <li>Spinners: spinner (spin button) controls,</li> + <li>TextBoxes: rectangle objects with embedded text.</li></ul> + + <p>These symbols are now deprecated in VBA but kept for compatibility with + old VBA scripts. All symbols representing collections of form controls do + NOT belong to ActiveX form controls but to the old-style drawing controls. + </p> + */ +interface XGraphicObjects : com::sun::star::uno::XInterface +{ + /** Adds a new graphic object to the sheet this collection belongs to. The + type of the object is determined by the type of the collection. + + @param fLeft Position of the left border in points (1/72 inch). + @param fTop Position of the top border in points (1/72 inch). + @param fWidth Width of the object in points (1/72 inch). + @param fHeight Height of the object in points (1/72 inch). + + @return The created graphic object. + */ + any Add( [in] any fLeft, [in] any fTop, [in] any fWidth, [in] any fHeight ); +}; + +//============================================================================= + +/** Collections that implement this interface provide access to a specific type + of drawing objects in a single sheet. + + <p>The following sheet symbols represent collections of line objects, and + therefore implement this interface:</p> + <ul><li>Arcs: arc objects, and</li> + <li>Lines: straight line ojects.</li></ul> + + <p>These symbols are now deprecated in VBA but kept for compatibility with + old VBA scripts.</p> + */ +interface XLineObjects : com::sun::star::uno::XInterface +{ + /** Adds a new line object to the sheet this collection belongs to. The + type of the object is determined by the type of the collection. + + @param fX1 Position of the first X coordinate in points (1/72 inch). + @param fY1 Position of the first Y coordinate in points (1/72 inch). + @param fX2 Position of the last X coordinate in points (1/72 inch). + @param fY2 Position of the last Y coordinate in points (1/72 inch). + + @return The created line object. + */ + any Add( [in] any fX1, [in] any fY1, [in] any fX2, [in] any fY2 ); +}; + +//============================================================================= + +/** A collection providing access to all polygon objects in a single sheet. + + <p>This symbol is now deprecated in VBA but kept for compatibility with old + VBA scripts.</p> + */ +interface XDrawings : com::sun::star::uno::XInterface +{ + /** Adds a new polygon object to the sheet this collection belongs to. + + @param fX1 Position of the first X coordinate in points (1/72 inch). + @param fY1 Position of the first Y coordinate in points (1/72 inch). + @param fX2 Position of the last X coordinate in points (1/72 inch). + @param fY2 Position of the last Y coordinate in points (1/72 inch). + @param bClosed True = outline closed (last and first point connected). + + @return The created polygon object. + */ + any Add( [in] any fX1, [in] any fY1, [in] any fX2, [in] any fY2, [in] any bClosed ); +}; + +//============================================================================= + +/** Represents the collection of drawing button controls in a spreadsheet. */ +service Buttons +{ + interface ooo::vba::XCollection; + interface XGraphicObjects; +}; + +//============================================================================= + +}; }; }; + +#endif diff --git a/oovbaapi/ooo/vba/excel/XHyperlinks.idl b/oovbaapi/ooo/vba/excel/XHyperlinks.idl new file mode 100755 index 000000000000..dbaab84568e8 --- /dev/null +++ b/oovbaapi/ooo/vba/excel/XHyperlinks.idl @@ -0,0 +1,70 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __ooo_vba_excel_XHyperlinks_idl__ +#define __ooo_vba_excel_XHyperlinks_idl__ + +#include <ooo/vba/XCollection.idl> + +//============================================================================= + +module ooo { module vba { module excel { + +//============================================================================= + +interface XHyperlink; + +interface XHyperlinks +{ + // ------------------------------------------------------------------------ + + interface ::ooo::vba::XCollection; + + // ------------------------------------------------------------------------ + + XHyperlink Add( + [in] any aAnchor, + [in] any aAddress, + [in] any aSubAddress, + [in] any aScreenTip, + [in] any aTextToDisplay ); + + // ------------------------------------------------------------------------ + + void Delete(); + + // ------------------------------------------------------------------------ + +}; + +//============================================================================= + +}; }; }; + +//============================================================================= + +#endif diff --git a/vbahelper/source/msforms/vbasystemaxcontrol.cxx b/vbahelper/source/msforms/vbasystemaxcontrol.cxx new file mode 100755 index 000000000000..ed2fc70164ac --- /dev/null +++ b/vbahelper/source/msforms/vbasystemaxcontrol.cxx @@ -0,0 +1,101 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * ( a copy is included in the LICENSE file that accompanied this code ). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#include "vbasystemaxcontrol.hxx" + +using namespace com::sun::star; +using namespace ooo::vba; + +//---------------------------------------------------------- +VbaSystemAXControl::VbaSystemAXControl( const uno::Reference< ov::XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< uno::XInterface >& xControl, const uno::Reference< frame::XModel >& xModel, AbstractGeometryAttributes* pGeomHelper ) +: SystemAXControlImpl_BASE( xParent, xContext, xControl, xModel, pGeomHelper ) +, m_xControlInvocation( xControl, uno::UNO_QUERY_THROW ) +{ +} + +//---------------------------------------------------------- +uno::Reference< beans::XIntrospectionAccess > SAL_CALL VbaSystemAXControl::getIntrospection() + throw ( uno::RuntimeException ) +{ + return m_xControlInvocation->getIntrospection(); +} + +//---------------------------------------------------------- +uno::Any SAL_CALL VbaSystemAXControl::invoke( const ::rtl::OUString& aFunctionName, const uno::Sequence< uno::Any >& aParams, uno::Sequence< ::sal_Int16 >& aOutParamIndex, uno::Sequence< uno::Any >& aOutParam ) + throw ( lang::IllegalArgumentException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException ) +{ + return m_xControlInvocation->invoke( aFunctionName, aParams, aOutParamIndex, aOutParam ); +} + +//---------------------------------------------------------- +void SAL_CALL VbaSystemAXControl::setValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) + throw ( beans::UnknownPropertyException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException ) +{ + m_xControlInvocation->setValue( aPropertyName, aValue ); +} + +//---------------------------------------------------------- +uno::Any SAL_CALL VbaSystemAXControl::getValue( const ::rtl::OUString& aPropertyName ) + throw ( beans::UnknownPropertyException, uno::RuntimeException ) +{ + return m_xControlInvocation->getValue( aPropertyName ); +} + +//---------------------------------------------------------- +::sal_Bool SAL_CALL VbaSystemAXControl::hasMethod( const ::rtl::OUString& aName ) + throw ( uno::RuntimeException ) +{ + return m_xControlInvocation->hasMethod( aName ); +} + +//---------------------------------------------------------- +::sal_Bool SAL_CALL VbaSystemAXControl::hasProperty( const ::rtl::OUString& aName ) + throw ( uno::RuntimeException ) +{ + return m_xControlInvocation->hasProperty( aName ); +} + +//---------------------------------------------------------- +rtl::OUString& +VbaSystemAXControl::getServiceImplName() +{ + static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM( "VbaSystemAXControl" ) ); + return sImplName; +} + +//---------------------------------------------------------- +uno::Sequence< rtl::OUString > +VbaSystemAXControl::getServiceNames() +{ + static uno::Sequence< rtl::OUString > aServiceNames; + if ( aServiceNames.getLength() == 0 ) + { + aServiceNames.realloc( 1 ); + aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.msforms.Frame" ) ); + } + return aServiceNames; +} + diff --git a/vbahelper/source/msforms/vbasystemaxcontrol.hxx b/vbahelper/source/msforms/vbasystemaxcontrol.hxx new file mode 100755 index 000000000000..bffe5b99c4f1 --- /dev/null +++ b/vbahelper/source/msforms/vbasystemaxcontrol.hxx @@ -0,0 +1,58 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * ( a copy is included in the LICENSE file that accompanied this code ). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef VBA_SYSTEMAXCONTROL_HXX +#define VBA_SYSTEMAXCONTROL_HXX + +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/script/XInvocation.hpp> + +#include "vbacontrol.hxx" +#include <vbahelper/vbahelper.hxx> + +typedef cppu::ImplInheritanceHelper1< ScVbaControl, css::script::XInvocation > SystemAXControlImpl_BASE; + +class VbaSystemAXControl : public SystemAXControlImpl_BASE +{ + css::uno::Reference< css::script::XInvocation > m_xControlInvocation; + +public: + VbaSystemAXControl( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::uno::XInterface >& xControl, const css::uno::Reference< css::frame::XModel >& xModel, ov::AbstractGeometryAttributes* pGeomHelper ); + + // XInvocation + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XIntrospectionAccess > SAL_CALL getIntrospection( ) throw ( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Any SAL_CALL invoke( const ::rtl::OUString& aFunctionName, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aParams, ::com::sun::star::uno::Sequence< ::sal_Int16 >& aOutParamIndex, ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aOutParam ) throw ( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::script::CannotConvertException, ::com::sun::star::reflection::InvocationTargetException, ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL setValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw ( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::script::CannotConvertException, ::com::sun::star::reflection::InvocationTargetException, ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Any SAL_CALL getValue( const ::rtl::OUString& aPropertyName ) throw ( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException ); + virtual ::sal_Bool SAL_CALL hasMethod( const ::rtl::OUString& aName ) throw ( ::com::sun::star::uno::RuntimeException ); + virtual ::sal_Bool SAL_CALL hasProperty( const ::rtl::OUString& aName ) throw ( ::com::sun::star::uno::RuntimeException ); + + //XHelperInterface + virtual rtl::OUString& getServiceImplName(); + virtual css::uno::Sequence<rtl::OUString> getServiceNames(); +}; + +#endif |