diff options
Diffstat (limited to 'udkapi/com/sun/star/bridge')
33 files changed, 2337 insertions, 0 deletions
diff --git a/udkapi/com/sun/star/bridge/Bridge.idl b/udkapi/com/sun/star/bridge/Bridge.idl new file mode 100644 index 000000000000..90b53687ea5d --- /dev/null +++ b/udkapi/com/sun/star/bridge/Bridge.idl @@ -0,0 +1,94 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_Bridge_idl__ +#define __com_sun_star_bridge_Bridge_idl__ + +#ifndef __com_sun_star_lang_XInitialization_idl__ +#include <com/sun/star/lang/XInitialization.idl> +#endif + +#ifndef __com_sun_star_lang_XComponent_idl__ +#include <com/sun/star/lang/XComponent.idl> +#endif + +#ifndef __com_sun_star_bridge_XBridge_idl__ +#include <com/sun/star/bridge/XBridge.idl> +#endif + +//============================================================================= + +module com { module sun { module star { module bridge { + +//============================================================================= + +/** This meta service allows the bridgefactory service to instantiate an + interprocess bridge using a certain transfer protocol. + + <p> Components, that support a certain protocol, must have at least two + service names: </p> + + <ul> + <li> com.sun.star.bridge.Bridge </li> + <li> arbitrary-module-path.ProtocolnameBridge </li> + </ul> + + <p>The protocol name should be written as common servicenames, first letter is a + capital letter, the rest in small letters postfixed by Bridge (e.g.: + <code>com.sun.star.bridge.UrpBridge</code> would be correct servicename for the + "urp" protocol). However, the protocol names are compared case insensitive. + If there exist two services supporting the same protocol, it is arbitrary + which one is chosen, so this should be omitted. </p> + */ +published service Bridge +{ + /** allows to initialize the bridge service with the necessary + arguments. The sequence<any> must have 4 members. + + <ol> + <li> String: The unique name of the bridge or an empty string</li> + <li> String: The protocol, that shall be instantiated</li> + <li> XConnection: The bidirectional connection, the bridge should work on</li> + <li> XInstanceProvider: + The instance provider, that shall be called to access the initial object.</li> + </ol> + */ + interface com::sun::star::lang::XInitialization; + + /** The main interface of the service + */ + interface com::sun::star::bridge::XBridge; + + /** This interface allows to terminate the interprocess bridge. + */ + interface com::sun::star::lang::XComponent; + +}; + +//============================================================================= + +}; }; }; }; +#endif diff --git a/udkapi/com/sun/star/bridge/BridgeExistsException.idl b/udkapi/com/sun/star/bridge/BridgeExistsException.idl new file mode 100644 index 000000000000..565322cf1c44 --- /dev/null +++ b/udkapi/com/sun/star/bridge/BridgeExistsException.idl @@ -0,0 +1,44 @@ +/************************************************************************* + * + * 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 _COM_SUN_STAR_CONNECTION_BRIDGEEXISTSEXCEPTION_IDL_ +#define _COM_SUN_STAR_CONNECTION_BRIDGEEXISTSEXCEPTION_IDL_ + +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module bridge { + +/** Indicates, that it was tried to create a remote bridge with a name, + which already existed. + */ +published exception BridgeExistsException: com::sun::star::uno::Exception +{ +}; + + +};};};}; + +#endif diff --git a/udkapi/com/sun/star/bridge/BridgeFactory.idl b/udkapi/com/sun/star/bridge/BridgeFactory.idl new file mode 100644 index 000000000000..8bf10c381504 --- /dev/null +++ b/udkapi/com/sun/star/bridge/BridgeFactory.idl @@ -0,0 +1,66 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_BridgeFactory_idl__ +#define __com_sun_star_bridge_BridgeFactory_idl__ + +#ifndef __com_sun_star_lang_XComponent_idl__ +#include <com/sun/star/lang/XComponent.idl> +#endif + +#ifndef __com_sun_star_bridge_XBridgeFactory_idl__ +#include <com/sun/star/bridge/XBridgeFactory.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module bridge { + +//============================================================================= + +/** allows to create new or access existing interprocess bridges. + + <p> It enumerates at the servicemanager all services supporting + the meta service com.sun.star.bridge.Bridge to get all known, possible + protocols. + + @see com::sun::star::bridge::Bridge + */ +published service BridgeFactory +{ + /** The main interface of the service + */ + interface com::sun::star::bridge::XBridgeFactory; + + /** This interface allows to break possible cyclic references. + */ + interface com::sun::star::lang::XComponent; +}; + +//============================================================================= + +}; }; }; }; +#endif diff --git a/udkapi/com/sun/star/bridge/IiopBridge.idl b/udkapi/com/sun/star/bridge/IiopBridge.idl new file mode 100644 index 000000000000..7b38e2052ca0 --- /dev/null +++ b/udkapi/com/sun/star/bridge/IiopBridge.idl @@ -0,0 +1,80 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_Iiop_idl__ +#define __com_sun_star_bridge_Iiop_idl__ + +#ifndef __com_sun_star_lang_XInitialization_idl__ +#include <com/sun/star/lang/XInitialization.idl> +#endif + +#ifndef __com_sun_star_lang_XComponent_idl__ +#include <com/sun/star/lang/XComponent.idl> +#endif + +#ifndef __com_sun_star_bridge_XBridge_idl__ +#include <com/sun/star/bridge/XBridge.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module bridge { + +//============================================================================= +/** Concrete service of the meta service Bridge for iiop. + + <p> This bridge works with the iiop protocol. </p> + + @see com.sun.star.bridge.Bridge + */ +published service IiopBridge +{ + /** This interface allows to initialize the bridge service with the necessary + arguments. The sequence<any> must have 4 members. + + <ol> + <li> String: The unique name of the bridge or an empty string</li> + <li> String: iiop</li> + <li> XConnection: The bidirectional connection, the bridge should work on</li> + <li> XInstanceProvider: + The instance provider, that shall be called to access the initial object.</li> + </ol> + */ + interface com::sun::star::lang::XInitialization; + + /** The main interface of the service. + */ + interface com::sun::star::bridge::XBridge; + + /** allows to terminate the interprocess bridge. + */ + interface com::sun::star::lang::XComponent; + +}; +//============================================================================= + +}; }; }; }; +#endif diff --git a/udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl b/udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl new file mode 100644 index 000000000000..3f52050126ba --- /dev/null +++ b/udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl @@ -0,0 +1,54 @@ +/************************************************************************* + * + * 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 _COM_SUN_STAR_BRIDGE_INVALIDPROTCOLCHANGEEXCEPTION_IDL_ +#define _COM_SUN_STAR_BRIDGE_INVALIDPROTCOLCHANGEEXCEPTION_IDL_ +#include <com/sun/star/bridge/ProtocolProperty.idl> +#include <com/sun/star/uno/Exception.idl> + +module com { module sun { module star { module bridge { + + +/** Indicates, that a requested property change could not be executed by the + remote counterpart. + + @see XProtocolProperties +*/ +published exception InvalidProtocolChangeException : com::sun::star::uno::Exception +{ + /** The first invalid property. + */ + ProtocolProperty invalidProperty; + + /** Contains 1, if the property name is unknown to the thrower; + or contains 2, if the property's value can't be accepted by the thrower. + */ + long reason; +}; + +};};};}; + +#endif diff --git a/udkapi/com/sun/star/bridge/ModelDependent.idl b/udkapi/com/sun/star/bridge/ModelDependent.idl new file mode 100644 index 000000000000..d85a2dbb886b --- /dev/null +++ b/udkapi/com/sun/star/bridge/ModelDependent.idl @@ -0,0 +1,79 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_ModelDependent_idl__ +#define __com_sun_star_bridge_ModelDependent_idl__ + + +//============================================================================= + + module com { module sun { module star { module bridge { + +//============================================================================= + +// DocMerge from idl: constants com::sun::star::bridge::ModelDependent +/** These constants are used to specify model-dependant representations. + + <p>They are only used for creating bridges to other component models. + + @see com::sun::star::bridge::XBridgeSupplier2 + */ +published constants ModelDependent +{ + //------------------------------------------------------------------------- + // DOCUMENTATION OMITTED FOR constants::1 + + // DocMerge: empty anyway + const short UNO = 1; + + //------------------------------------------------------------------------- + // DOCUMENTATION OMITTED FOR constants::2 + + // DocMerge: empty anyway + const short OLE = 2; + + //------------------------------------------------------------------------- + // DOCUMENTATION OMITTED FOR constants::3 + + // DocMerge: empty anyway + const short JAVA = 3; + + //------------------------------------------------------------------------- + // DOCUMENTATION OMITTED FOR constants::4 + + // DocMerge: empty anyway + const short CORBA = 4; + +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/bridge/OleApplicationRegistration.idl b/udkapi/com/sun/star/bridge/OleApplicationRegistration.idl new file mode 100644 index 000000000000..7ad209982130 --- /dev/null +++ b/udkapi/com/sun/star/bridge/OleApplicationRegistration.idl @@ -0,0 +1,75 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_OleApplicationRegistration_idl__ +#define __com_sun_star_bridge_OleApplicationRegistration_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module bridge { + +//============================================================================= + +/** registers UNO objects as COM objects. + <p /> + That is, COM class factories are registered with COM at runtime. The required + EXE server is the application which deploys this service. In order to access the + factories by COM API functions, there need to be proper registry entries. This service + does not provide for writing those entries.<p> + The instantiation of the registered objects can be carried out by any ordinary mechanism + which is used in a certain language to create COM components. For example, CreateObject + in Visual Basic, CoCreateInstance in C++. + <p /> + Currently only a factory for the service com.sun.star.long.MultiServiceFactory is registered + by this service. The CLSID is {82154420-0FBF-11d4-8313-005004526AB4} and the ProgId is + com.sun.star.ServiceManager. + + <p>OleApplicationRegistration does not provide any particular interface because the UNO objects + are registered while instantiating this service and deregistered + if the implementation, which makes use of this service, is being released.</p> + <p> + @deprecated + */ +published service OleApplicationRegistration +{ + + interface com::sun::star::uno::XInterface; + +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/bridge/OleBridgeSupplier.idl b/udkapi/com/sun/star/bridge/OleBridgeSupplier.idl new file mode 100644 index 000000000000..3d1b9a655717 --- /dev/null +++ b/udkapi/com/sun/star/bridge/OleBridgeSupplier.idl @@ -0,0 +1,63 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_OleBridgeSupplier_idl__ +#define __com_sun_star_bridge_OleBridgeSupplier_idl__ + +#ifndef __com_sun_star_bridge_XBridgeSupplier_idl__ +#include <com/sun/star/bridge/XBridgeSupplier.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module bridge { + +//============================================================================= + + +/** makes it possible to generate OLE bridges to UNO objects and vice versa. + + <p>The service implements the <type>XBridgeSupplier</type> interface + and handles the model types <const>ModelDependent::UNO</const> and + <const>ModelDependent::OLE</const>. The service does not specify any + requirements on registering OLE objects and class factories. </p> + @deprecated + */ +published service OleBridgeSupplier +{ + interface com::sun::star::bridge::XBridgeSupplier; + +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl b/udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl new file mode 100644 index 000000000000..e9bf3d696ff0 --- /dev/null +++ b/udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl @@ -0,0 +1,75 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_OleBridgeSupplier2_idl__ +#define __com_sun_star_bridge_OleBridgeSupplier2_idl__ + +#ifndef __com_sun_star_bridge_XBridgeSupplier2_idl__ +#include <com/sun/star/bridge/XBridgeSupplier2.idl> +#endif + + +//============================================================================= + +module com { module sun { module star { module bridge { + +//============================================================================= +/** maps UNO types to oleautomation types and vice versa.<p> + + The XBridgeSupplier2 interface provides the function <code>createBridge</code> which + maps a value of an UNO or Automation type to the desired target type. If an UNO interface + was mapped to IDispatch, then all objects (interfaces, structs) and other + types which + are obtained from that Automation object are automatically mapped to the corresponding + Automation types. Hence, if one provides an initial object which forms the root of all + other objects, such as a service manager, then only that object needs to be explicitly + mapped by a call to <code>createBridge</code>. The same holds true if an automation + object is mapped to an UNO interface.<br> + <p>The Automation types <code>VT_CY</code> and <code>VT_DATE</code> are not supported. + For Automation objects to be mapped they have to implement IDispatch interface. Other + COM interfaces, + except for IUnknown, are not supported.UNO interfaces and structs are mapped to IDispatch. + + <p>The service implements the <type>XBridgeSupplier2</type> interface + and handles the model types + <const>com::sun::star::bridge::ModelDependent::UNO</const> and + <const>com::sun::star::bridge::ModelDependent::OLE</const>. + The service does not specify any + requirements for registering OLE objects and class factories. </p> + + @deprecated +*/ +published service OleBridgeSupplier2 +{ + interface com::sun::star::bridge::XBridgeSupplier2; + +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl b/udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl new file mode 100644 index 000000000000..6a237efb3185 --- /dev/null +++ b/udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl @@ -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 __com_sun_star_bridge_OleBridgeSupplierVar1_idl__ +#define __com_sun_star_bridge_OleBridgeSupplierVar1_idl__ + +#ifndef __com_sun_star_bridge_OBridgeSupplier2_idl__ +#include <com/sun/star/bridge/OleBridgeSupplier2.idl> +#endif + + + module com { module sun { module star { module bridge { + + +/** maps UNO types to COM types and vice versa. It is optimized for use in a + remote szenario. <p> +The functionality is basically the same as +<type scope="com::sun::star::bridge">OleBridgeSupplier2</type>. +However, the implementation should be optimized for remote access. For example, it could +try to reduce the calls into the remote process. Also it could create components on its own behalf in the remote process, if this increases performance. + +@deprecated +*/ +published service OleBridgeSupplierVar1 +{ + service OleBridgeSupplier2; + +}; + +//============================================================================= + +}; }; }; }; + + +#endif diff --git a/udkapi/com/sun/star/bridge/OleObjectFactory.idl b/udkapi/com/sun/star/bridge/OleObjectFactory.idl new file mode 100644 index 000000000000..3bc0ab7d5d3f --- /dev/null +++ b/udkapi/com/sun/star/bridge/OleObjectFactory.idl @@ -0,0 +1,67 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_OleObjectFactory_idl__ +#define __com_sun_star_bridge_OleObjectFactory_idl__ + +#ifndef __com_sun_star_lang_XMultiServiceFactory_idl__ +#include <com/sun/star/lang/XMultiServiceFactory.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module bridge { + +//============================================================================= + +/** makes it possible to create COM objects as UNO objects. + + <p>A COM object must have a ProgId since the ProgId is used as argument for + XMultiServiceFactory::createInstance. The only interfaces which are mapped + are <code>IUnknown</code> and <code>IDispatch</code>. + The created UNO objects support <type scope="com::sun::star::script">XInvocation</type> + if the original COM objects support IDispatch. </p> + + <p>The optional parameters of the method + <member scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments()</member> + are reserved for future use; at this time they are ignored. </p> + + @deprecated + */ +published service OleObjectFactory +{ + interface com::sun::star::lang::XMultiServiceFactory; +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/bridge/ProtocolProperty.idl b/udkapi/com/sun/star/bridge/ProtocolProperty.idl new file mode 100644 index 000000000000..8a9e1f7635a0 --- /dev/null +++ b/udkapi/com/sun/star/bridge/ProtocolProperty.idl @@ -0,0 +1,46 @@ +/************************************************************************* + * + * 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 _COM_SUN_STAR_BRIDGE_PROTOCOLPROPERTY_IDL_ +#define _COM_SUN_STAR_BRIDGE_PROTOCOLPROPERTY_IDL_ + +module com { module sun { module star { module bridge { + +/** string/value pair + */ +published struct ProtocolProperty +{ + /** @missing + */ + string Name; + + /** @missing + */ + any Value; +}; + +}; }; }; }; +#endif diff --git a/udkapi/com/sun/star/bridge/UnoUrlResolver.idl b/udkapi/com/sun/star/bridge/UnoUrlResolver.idl new file mode 100644 index 000000000000..55eb1e28a3ac --- /dev/null +++ b/udkapi/com/sun/star/bridge/UnoUrlResolver.idl @@ -0,0 +1,51 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_UnoUrlResolver_idl__ +#define __com_sun_star_bridge_UnoUrlResolver_idl__ + +//============================================================================= + + module com { module sun { module star { module bridge { + +published interface XUnoUrlResolver; + +//============================================================================= + +/** provides the ability to access remote processes, + resolving them by an UNO url. + <br> + */ +published service UnoUrlResolver: XUnoUrlResolver; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/bridge/UrpBridge.idl b/udkapi/com/sun/star/bridge/UrpBridge.idl new file mode 100644 index 000000000000..15326e5dd8b4 --- /dev/null +++ b/udkapi/com/sun/star/bridge/UrpBridge.idl @@ -0,0 +1,80 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_Urp_idl__ +#define __com_sun_star_bridge_Urp_idl__ + +#ifndef __com_sun_star_lang_XInitialization_idl__ +#include <com/sun/star/lang/XInitialization.idl> +#endif + +#ifndef __com_sun_star_lang_XComponent_idl__ +#include <com/sun/star/lang/XComponent.idl> +#endif + +#ifndef __com_sun_star_bridge_XBridge_idl__ +#include <com/sun/star/bridge/XBridge.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module bridge { + +//============================================================================= +/** Concrete service of the meta service Bridge for the urp protocol. + + <p>This bridge works with the urp protocol. + + @see com.sun.star.bridge.Bridge + */ +published service UrpBridge +{ + /** This interface allows to initialize the bridge service with the necessary + arguments. The sequence<any> must have 4 members. + + <ol> + <li> String: The unique name of the bridge or an empty string</li> + <li> String: urp</li> + <li> XConnection: The bidirectional connection, the bridge should work on</li> + <li> XInstanceProvider: + The instance provider, that shall be called to access the initial object.</li> + </ol> + */ + interface com::sun::star::lang::XInitialization; + + /** The main interface of the service. + */ + interface com::sun::star::bridge::XBridge; + + /** allows to terminate the interprocess bridge. + */ + interface com::sun::star::lang::XComponent; + +}; +//============================================================================= + +}; }; }; }; +#endif diff --git a/udkapi/com/sun/star/bridge/XBridge.idl b/udkapi/com/sun/star/bridge/XBridge.idl new file mode 100644 index 000000000000..baebaefceefc --- /dev/null +++ b/udkapi/com/sun/star/bridge/XBridge.idl @@ -0,0 +1,64 @@ +/************************************************************************* + * + * 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 _COM_SUN_STAR_BRIDGE_XBRIDGE_IDL_ +#define _COM_SUN_STAR_BRIDGE_XBRIDGE_IDL_ + +#include <com/sun/star/uno/XInterface.idl> + +module com { module sun { module star { module bridge { + +/** main interface for an interprocess bridge. + */ +published interface XBridge: com::sun::star::uno::XInterface +{ + /** tries to get an interface from the remote that is known by this name. + + <p>In general, this method is called once to get the initial object from the + remote, but it is allowed to call the method multiple times. </p> + + @param sInstanceName The name of the object, that shall be retrieved from the + remote process. The call is delegated to + com.sun.star.bridge.XInstanceProvider.getInstance() in the + remote process. + @see com.sun.star.bridge.XInstanceProvider + */ + com::sun::star::uno::XInterface getInstance( [in] string sInstanceName ); + + + /** name that the bridge got when it was created. + */ + string getName(); + + + /** a unique descriptive string: protocol + ":" + XConnection.getDescription() + */ + string getDescription(); +}; + +};};};}; + +#endif diff --git a/udkapi/com/sun/star/bridge/XBridgeFactory.idl b/udkapi/com/sun/star/bridge/XBridgeFactory.idl new file mode 100644 index 000000000000..fb6db1a0c339 --- /dev/null +++ b/udkapi/com/sun/star/bridge/XBridgeFactory.idl @@ -0,0 +1,95 @@ +/************************************************************************* + * + * 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 _COM_SUN_STAR_BRIDGE_XBRIDGEFACTORY_IDL_ +#define _COM_SUN_STAR_BRIDGE_XBRIDGEFACTORY_IDL_ + +#include <com/sun/star/lang/IllegalArgumentException.idl> + +#include <com/sun/star/connection/XConnection.idl> +#include <com/sun/star/bridge/XBridge.idl> +#include <com/sun/star/bridge/BridgeExistsException.idl> +#include <com/sun/star/bridge/XInstanceProvider.idl> + + module com { module sun { module star { module bridge { + +/** factory to create interprocess bridges. + */ +published interface XBridgeFactory: com::sun::star::uno::XInterface +{ + /** tries to create a UNO interprocess bridge. + + @param sName + The name of the bridge. This allows other components to reuse + an already created bridge (using getBridge). + <p> + If empty, an anonymous bridge is created, which cannot be retrieved with + getBridge(). No BridgeExistsException can be thrown in this case. + + @param sProtocol + The protocol, that will be used on the connection (e.g., urp) plus additional + comma separated name=value protocol properties. + + @param aConnection + The connection, which is used to transfer the calls. The bridge expects to + own the connection, thus it will close the connection, in case it does not + need it anymore. + + @param anInstanceProvider + gets called, when a request from remote comes in. You can pass a null reference + in case you don't want to export any objects. + + @throws BridgeExistsException + There is already a bridge registered with this name. Use getBridge instead. + + @throws IllegalArgumentException + The protocol is unknown or the connection is null. + */ + XBridge createBridge( + [in] string sName, + [in] string sProtocol , + [in] com::sun::star::connection::XConnection aConnection , + [in] XInstanceProvider anInstanceProvider ) + raises ( BridgeExistsException , com::sun::star::lang::IllegalArgumentException ); + + + /** tries to get a bridge by this name. + <p> Cannot be retrieved, when the bridge got disposed before. + + @return An existing remote bridge or a null reference. + */ + XBridge getBridge( [in] string sName ); + + /** returns the sequence of all named and unnamed UNO interprocess + bridges that are instantiated at the time the call is made. + */ + sequence < XBridge > getExistingBridges( ); +}; + + +};};};}; + +#endif diff --git a/udkapi/com/sun/star/bridge/XBridgeSupplier.idl b/udkapi/com/sun/star/bridge/XBridgeSupplier.idl new file mode 100644 index 000000000000..d0597be94ce5 --- /dev/null +++ b/udkapi/com/sun/star/bridge/XBridgeSupplier.idl @@ -0,0 +1,107 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_XBridgeSupplier_idl__ +#define __com_sun_star_bridge_XBridgeSupplier_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_uno_Uik_idl__ +#include <com/sun/star/uno/Uik.idl> +#endif + +#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ +#include <com/sun/star/lang/IllegalArgumentException.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module bridge { + +//============================================================================= + + +/** defines the interface for creating bridges to other object models. + + <p>Because bridges sometimes can not be generated in an address space, + the implementation needs to check the address space of the caller by + comparing the machine and process ID against its own. These IDs are + provided by the UNO runtime. </p> + + <p>All objects, whether they are part of the UNO object model or not, + are carried in an <atom>any</atom>. The representation of this object + is heavily model-dependent and has to be specified in the following list: </p> + + <dl> + <dt>UNO: </dt> + <dd>The any carries normal UNO types, which can be any base type, + struct, sequence, enum, or interface. </dd> + + <dt>OLE: </dt> + <dd>The any carries an <atom>unsigned long</atom> (on 32-bit systems) + or an <atom>unsigned hyper</atom> (on 64-bit systems), which is + interpreted as a variant pointer. The any does not control the + lifetime of the represented variant. That implies that the caller + has the responsibility of freeing the OLE resources represented + by the any value. </dd> + + <dt>JAVA: </dt> + <dd>not yet specified. </dd> + + <dt>CORBA: </dt> + <dd>not yet specified. </dd> + </dl> + + <p>Any implementation can supply its own bridges to other object + models by implementing this interface and returning the bridge + when the method is called with itself as the first parameter. </p> + + @see com::sun::star::bridge::OleBridgeSupplier + @deprecated + */ +published interface XBridgeSupplier: com::sun::star::uno::XInterface +{ + + /** creates a bridge to provide an object of one object model with another. + */ + any createBridge( [in] any modelDepObject, + [in] com::sun::star::uno::Uik MachineId, + [in] long ProcessId, + [in] short sourceModelType, + [in] short destModelType ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/bridge/XBridgeSupplier2.idl b/udkapi/com/sun/star/bridge/XBridgeSupplier2.idl new file mode 100644 index 000000000000..5dbbbff5487d --- /dev/null +++ b/udkapi/com/sun/star/bridge/XBridgeSupplier2.idl @@ -0,0 +1,121 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_XBridgeSupplier2_idl__ +#define __com_sun_star_bridge_XBridgeSupplier2_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ +#include <com/sun/star/lang/IllegalArgumentException.idl> +#endif + + +//============================================================================= + + module com { module sun { module star { module bridge { + +//============================================================================= + +/** defines the interface for creating bridges to other object models. + <p /> + <p> + The created bridges are transparent to the user. That is, if one maps + an interface into the target model, then the resulting target interface + is a bridge implementation, that is not being noticed by an user. During + a call on that interface, the bridge is invoked to convert the arguments + and carry out a call according to the rules of the source model. + Return values are automatically mapped to the types of the target model. + </p> + <p> + Simple types are mapped to simple target types. That is, there is no additional + bridging code involved when those types are being used. + </p> + + <p>Sometimes a bridge cannot be created, depending on whether a programm uses + the XBridgeSupplier2 interface remotely. Assuming one wants to bridge an + OLE Automation object to UNO by calling createBridge on a proxy, then the UNO remote + bridge would not recognise that the Any argument contains an IDispatch interface. + Therefore it cannot marshal it as COM requires it and the bridgeing would fail. + To prevent this, implementations of this interface should be aware of this scenario and + if necessary take the appropriate steps. The process ID argument to the createBridge + function represents the calling process and may be used by the implementation to determine + if it is being accessed remotely. + </p> + <p>All objects, whether they are part of the UNO object model or not, + are carried in an <atom>any</atom>. The representation of this object + is heavily model-dependent and has to be specified in the following list: </p> + + <dl> + <dt>UNO: </dt> + <dd>The any carries normal UNO types, which can be any base type, + struct, sequence, enum or interface. </dd> + + <dt>OLE: </dt> + <dd>The any carries an <atom>unsigned long</atom> (on 32-bit systems) + or an <atom>unsigned hyper</atom> (on 64-bit systems), which is + interpreted as a variant pointer. The any does not control the + lifetime of the represented variant. That implies that the caller + has the responsibility of freeing the OLE resources represented + by the any value. </dd> + + <dt>JAVA: </dt> + <dd>not specified yet. </dd> + + <dt>CORBA: </dt> + <dd>not specified yet. </dd> + </dl> + + </p> + <p>Any implementation can supply its own bridges to other object + models by implementing this interface and returning the bridge + when the method <member>XBridgeSupplier2::createBridge()</member> + is called with itself as the first parameter. </p> + + @see com::sun::star::bridge::OleBridgeSupplier2 + */ +published interface XBridgeSupplier2: com::sun::star::uno::XInterface +{ + /** creates a bridge to provide an object of one object model with another. + */ + any createBridge( [in] any aModelDepObject, + [in] sequence< byte > aProcessId, + [in] short nSourceModelType, + [in] short nDestModelType ) + raises( com::sun::star::lang::IllegalArgumentException ); + +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/bridge/XInstanceProvider.idl b/udkapi/com/sun/star/bridge/XInstanceProvider.idl new file mode 100644 index 000000000000..8555020650dd --- /dev/null +++ b/udkapi/com/sun/star/bridge/XInstanceProvider.idl @@ -0,0 +1,64 @@ +/************************************************************************* + * + * 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 _COM_SUN_STAR_BRIDGE_XINSTANCEPROVIDER_IDL_ +#define _COM_SUN_STAR_BRIDGE_XINSTANCEPROVIDER_IDL_ + +#include <com/sun/star/container/NoSuchElementException.idl> + + module com { module sun { module star { module bridge { + + +/** allows to export UNO objects to other processes. + + @see XBridge + */ +published interface XInstanceProvider: com::sun::star::uno::XInterface +{ + + /** gets called, when an initial object is requested from a remote process. + You may either create a new instance or return an existing object. + + @param sInstanceName + The name of the requested object. + + @returns + the object associated with the name. The return value may be null in case + there is no object to offer for this string. In this case, XBridge.getInstance() + (in the other process) will also return a null reference. + + @throws NoSuchElementException + You may throw this exception to indicate, that there is no object for this + name. Due to a specification bug, this exception will appear as a RuntimeException + at the XBridge.getInstance() method. + */ + com::sun::star::uno::XInterface getInstance( [in] string sInstanceName ) + raises ( com::sun::star::container::NoSuchElementException ); +}; + +};};};}; + +#endif diff --git a/udkapi/com/sun/star/bridge/XProtocolProperties.idl b/udkapi/com/sun/star/bridge/XProtocolProperties.idl new file mode 100644 index 000000000000..c3ff6d4c8e92 --- /dev/null +++ b/udkapi/com/sun/star/bridge/XProtocolProperties.idl @@ -0,0 +1,100 @@ +/************************************************************************* + * + * 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 _COM_SUN_STAR_BRIDGE_XPROTOCOLPROPERTIES_IDL_ +#define _COM_SUN_STAR_BRIDGE_XPROTOCOLPROPERTIES_IDL_ +#include <com/sun/star/bridge/ProtocolProperty.idl> +#include <com/sun/star/bridge/InvalidProtocolChangeException.idl> + +module com { module sun { module star { module bridge { + + +/** Bridge internal interface, that allows to change protocol settings of the remote + counter part. + + <p>In general, this interface is implemented by the bridge itself. It must not + be called from outside the bridge.</p> + + <p>INTERNAL INTERFACE, DO NOT USE IT ELSEWHERE!</p> +*/ +published interface XProtocolProperties : com::sun::star::uno::XInterface +{ + /** called to get a list of bridge internal properties. Which properties can be retrieved, + is protocol dependent. + + <p> The properties MUST NOT change between a requestChange and a commit change call.</p> + */ + sequence< ProtocolProperty > getProperties( ); + + /** called to initiate a protocol change. + + <p>This method should always be called in the scope of the local bridge setting object, + because the remote counter part may do such a call at the same time + (typically at startup time). </p> + + @param nRandomNumber + In case both processes call requestChange at the same time, + the caller with the higher nRandomNumber is allowed to call + commitChange. + + @returns + 1, if the caller may ( and MUST !!!) call commitChange. + 0, if the caller is not allowed to call commitChange. This can only happen, + if the other bridge has called requestChange at the same time and + nRandomNumber is smaller than the other bridge's nRandomNumber. + The remote counterpart is supposed to call commitChange within a small + time span. Please call requestChange() after the remote counterpart has + called commitChange(). + -1 if the nRandomNumber is of the same value as the previously + sent requestChange (sent by the remote counterpart). This is a draw :o). + Generate a new random number and try again. + */ + long requestChange( [in] long nRandomNumber ); + + /** called to commit a protocol change. + + <p>It is only allowed to call commitChange, if requestChange + has been called previously and the return value was true. The new properties are + valid after the reply of commitChange has been received. + Note, that this is difficult for the callee, because it must marshal the reply + with the old settings. </p> + + <p>All properties not mentioned in the list are unchanged. + Note that the bridge must be blocked for other threads, + before commitChange is sent and unblocked + after the reply has been received. This blocks the bridge.</p> + + @throws InvalidProtocolChangeException + when the remote counterpart could not change at least one of the properties. + No property has been changed. requestChange must be called + again to initiate a new change of the protocol. + */ + void commitChange( [in] sequence< ProtocolProperty > newValues ) + raises ( com::sun::star::bridge::InvalidProtocolChangeException ); +}; + +};};};}; +#endif diff --git a/udkapi/com/sun/star/bridge/XUnoUrlResolver.idl b/udkapi/com/sun/star/bridge/XUnoUrlResolver.idl new file mode 100644 index 000000000000..597d3b66ce03 --- /dev/null +++ b/udkapi/com/sun/star/bridge/XUnoUrlResolver.idl @@ -0,0 +1,66 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_XUnoUrlResolver_idl__ +#define __com_sun_star_bridge_XUnoUrlResolver_idl__ + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/connection/ConnectionSetupException.idl> +#include <com/sun/star/connection/NoConnectException.idl> + +//============================================================================= + + module com { module sun { module star { module bridge { + +//============================================================================= + +/** allows to resolve an object using the uno-url. + */ +published interface XUnoUrlResolver: com::sun::star::uno::XInterface +{ + + /** resolves an object using the given uno-url. + @param sUnoUrl the uno-url. The uno-url is specified + <a href="http://udk.openoffice.org/common/man/spec/uno-url.html">here</a>. + + @returns the resolved object, in general a proxy for a remote object. + You can use it the same way as you use local references. + */ + com::sun::star::uno::XInterface resolve( [in] string sUnoUrl ) + raises (com::sun::star::connection::NoConnectException, + com::sun::star::connection::ConnectionSetupException, + com::sun::star::lang::IllegalArgumentException); +}; + +//============================================================================= + +}; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/bridge/makefile.mk b/udkapi/com/sun/star/bridge/makefile.mk new file mode 100644 index 000000000000..74c95bfced33 --- /dev/null +++ b/udkapi/com/sun/star/bridge/makefile.mk @@ -0,0 +1,66 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +PRJ=..$/..$/..$/.. + +PRJNAME=api + +TARGET=cssbridge +PACKAGE=com$/sun$/star$/bridge + +# --- Settings ----------------------------------------------------- +.INCLUDE : $(PRJ)$/util$/makefile.pmk + +# ------------------------------------------------------------------------ + +IDLFILES=\ + ModelDependent.idl\ + OleApplicationRegistration.idl\ + OleBridgeSupplier.idl\ + OleBridgeSupplier2.idl\ + OleBridgeSupplierVar1.idl\ + OleObjectFactory.idl\ + XBridgeSupplier.idl\ + XBridgeSupplier2.idl\ + XBridge.idl \ + XBridgeFactory.idl\ + XInstanceProvider.idl\ + BridgeExistsException.idl \ + XUnoUrlResolver.idl \ + UnoUrlResolver.idl \ + XProtocolProperties.idl \ + ProtocolProperty.idl \ + InvalidProtocolChangeException.idl \ + Bridge.idl \ + BridgeFactory.idl \ + UrpBridge.idl \ + IiopBridge.idl + +# ------------------------------------------------------------------ + +.INCLUDE : target.mk +.INCLUDE : $(PRJ)$/util$/target.pmk diff --git a/udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl b/udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl new file mode 100644 index 000000000000..8abd2d8068a1 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl @@ -0,0 +1,81 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_oleautomation_ApplicationRegistration_idl__ +#define __com_sun_star_bridge_oleautomation_ApplicationRegistration_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + + +//============================================================================= + +module com { module sun { module star { module bridge { module oleautomation { + +//============================================================================= + +/** registers UNO objects as COM objects. + <p> + That is, COM class factories are registered with COM at runtime. The required + EXE server is the application which deploys this service. In order to access + the factories by COM API functions, there need to be proper registry entries. + This service does not provide for writing those entries. + </p> + <p> + The instantiation of the registered objects can be carried out by any + ordinary mechanism which is used in a certain language to create COM + components. For example, <code>CreateObject</code> in Visual Basic, + <code>CoCreateInstance</code> in C++. + </p> + <p> + Currently only a factory for the service + <type scope="com::sun::star::lang">MultiServiceFactory</type> is registered + by this service. The CLSID is {82154420-0FBF-11d4-8313-005004526AB4} and the + ProgId is com.sun.star.ServiceManager. + </p> + <p> + <type>ApplicationRegistration</type> does not provide any particular + interface because the UNO objects are registered while instantiating this + service and deregistered if the implementation, which makes use of this + service, is being released. + </p> + */ +service ApplicationRegistration +{ + + interface com::sun::star::uno::XInterface; + +}; + +//============================================================================= + +}; }; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl b/udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl new file mode 100644 index 000000000000..508b8831c994 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl @@ -0,0 +1,80 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_oleautomation_BridgeSupplier_idl__ +#define __com_sun_star_bridge_oleautomation_BridgeSupplier_idl__ + +#ifndef __com_sun_star_bridge_XBridgeSupplier2_idl__ +#include <com/sun/star/bridge/XBridgeSupplier2.idl> +#endif + + +//============================================================================= + +module com { module sun { module star { module bridge { module oleautomation { + +//============================================================================= +/** maps UNO types to oleautomation types and vice versa. + <p> + The function + <member scope="com::sun::star::bridge">XBridgeSupplier2::createBridge</member> + maps a value of a UNO or Automation type to the desired target type. If a UNO + interface was mapped to <code>IDispatch</code>, then all objects + (interfaces, structs) and other types which are obtained from that Automation + object are automatically mapped to the corresponding Automation types. Hence, + if one provides an initial object which forms the root of all other objects, + such as a service manager, then only that object needs to be explicitly + mapped by a call to + <member scope="com::sun::star::bridge">XBridgeSupplier2::createBridge</member>. + The same holds true if an automation object is mapped to an UNO interface. + </p> + <p> + For Automation objects to be mapped they have to implement + <code>IDispatch</code> interface. Other COM interfaces, except for + <code>IUnknown</code>, are not supported. UNO interfaces and structs are + mapped to <code>IDispatch</code>. + </p> + <p> + The service implements the + <type scope="com::sun::star::bridge">XBridgeSupplier2</type> interface and + handles the model types + <const>com::sun::star::bridge::ModelDependent::UNO</const> and + <const>com::sun::star::bridge::ModelDependent::OLE</const>. + The service does not specify any requirements for registering OLE objects and + class factories. + </p> +*/ +service BridgeSupplier +{ + interface com::sun::star::bridge::XBridgeSupplier2; + +}; + +//============================================================================= + +}; }; }; }; }; + +#endif diff --git a/udkapi/com/sun/star/bridge/oleautomation/Currency.idl b/udkapi/com/sun/star/bridge/oleautomation/Currency.idl new file mode 100644 index 000000000000..6441e3daa9ed --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/Currency.idl @@ -0,0 +1,61 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_oleautomation_Currency_idl__ +#define __com_sun_star_bridge_oleautomation_Currency_idl__ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** is the UNO representation of the Automation type <code>CY</code>, also know + as <code>CURRENCY</code>. + <p> + A <code>CY</code> could actually be represented as <atom>hyper</atom> in UNO + and therefore a typedef from <atom>hyper</atom> to a currency type would do. + But a typedef cannot be expressed in all language bindings. In the case + where no typedefs are supported the actual type is used. That is, a + typedef'd currency type would be represented as <code>long</code> in Java. + The information that the <code>long</code> is a currency type is lost. + </p> + <p> + When calling Automation objects from UNO the distinction between + <atom>hyper</atom> and a currency type is important. Therefore + <type>Currency</type> is declared as struct. + </p> + + @since OOo 1.1.2 + */ +struct Currency +{ + /** corresponds to the Automation type <code>CY</code>. + */ + hyper Value; +}; + +}; }; }; }; }; + + +#endif diff --git a/udkapi/com/sun/star/bridge/oleautomation/Date.idl b/udkapi/com/sun/star/bridge/oleautomation/Date.idl new file mode 100644 index 000000000000..baac640171cb --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/Date.idl @@ -0,0 +1,60 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_oleautomation_Date_idl__ +#define __com_sun_star_bridge_oleautomation_Date_idl__ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** is the UNO representation of the Automation type <code>DATE</code>. + <p> + A <code>DATE</code> could actually be representd as<atom>double</atom> in + UNO and therefore a typedef from <atom>double</atom> to a date type would + do. But a typedef cannot be expressed in all language bindings. In the + case where no typedefs are supported the actual type is used. That is, a + typedef'd date type would be represented as <code>double</code> in Java. + The information that the <atom>double</atom> is a date type is lost. + </p> + <p> + When calling Automation objects from UNO the distinction between + <atom>double</atom> and date type is important. Therefore <type>Date</type> + is declared as struct. + </p> + + @since OOo 1.1.2 + */ +struct Date +{ + /** corresponds to the Automation type <code>DATE</code>. + */ + double Value; +}; + +}; }; }; }; }; + + +#endif diff --git a/udkapi/com/sun/star/bridge/oleautomation/Decimal.idl b/udkapi/com/sun/star/bridge/oleautomation/Decimal.idl new file mode 100644 index 000000000000..fe8a58779fdc --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/Decimal.idl @@ -0,0 +1,64 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_oleautomation_Decimal_idl__ +#define __com_sun_star_bridge_oleautomation_Decimal_idl__ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** is the UNO representation of the Automation type <code>DECIMAL</code>. + + + @since OOo 1.1.2 + */ +struct Decimal +{ + /** corresponds to <code>DECIMAL.scale</code>. + */ + byte Scale; + + /** corresponds to <code>DECIMAL.sign</code>. + */ + byte Sign; + + /** corresponds to <code>DECIMAL.Lo32</code>. + */ + unsigned long LowValue; + + /** corresponds to <code>DECIMAL.Mid32</code>. + */ + unsigned long MiddleValue; + + /** corresponds to <code>DECIMAL.Hi32</code>. + */ + unsigned long HighValue; +}; + +}; }; }; }; }; + + +#endif diff --git a/udkapi/com/sun/star/bridge/oleautomation/Factory.idl b/udkapi/com/sun/star/bridge/oleautomation/Factory.idl new file mode 100644 index 000000000000..3863e0f11a5f --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/Factory.idl @@ -0,0 +1,69 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_oleautomation_Factory_idl__ +#define __com_sun_star_bridge_oleautomation_Factory_idl__ + +#ifndef __com_sun_star_lang_XMultiServiceFactory_idl__ +#include <com/sun/star/lang/XMultiServiceFactory.idl> +#endif + + +//============================================================================= + +module com { module sun { module star { module bridge { module oleautomation { + +//============================================================================= + +/** makes it possible to create COM objects as UNO objects. + + <p> + A COM object must have a ProgId since the ProgId is used as argument for + <method scope="com::sun::star::lang">XMultiServiceFactory::createInstance</method>. + The only interfaces which are mapped are <code>IUnknown</code> and + <code>IDispatch</code>. The created UNO objects support + <type scope="com::sun::star::script">XInvocation</type> if the original COM + objects support <code>IDispatch</code>. + </p> + <p> + The optional parameters of the method + <method scope="com::sun::star::lang">XMultiServiceFactory::createInstanceWithArguments</method> + are reserved for future use; at this time they are ignored. + </p> + */ +service Factory +{ + interface com::sun::star::lang::XMultiServiceFactory; +}; + +//============================================================================= + +}; }; }; }; }; + +/*============================================================================= + +=============================================================================*/ +#endif diff --git a/udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl b/udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl new file mode 100644 index 000000000000..cd4e77d3f691 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl @@ -0,0 +1,63 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_oleautomation_NamedArgument_idl__ +#define __com_sun_star_bridge_oleautomation_NamedArgument_idl__ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** represents a named argument in a call to a method of an Automation object. + <p> + The Automation bridge accepts values of <type>NamedArgument</type> when a + call to an Automation object is made. The call is done through the + <method scope="com::sun::star::script">XInvocation::invoke</method> + method, which takes all arguments in a sequence of anys. Usually the order + of the arguments must correspond to the order of arguments in the Automation + method. By using instances of <type>NamedArgument</type> the arguments in the + sequence can be unordered. The Automation object being called must support + named arguments, otherwise the call fails. + </p> + + @since OOo 1.1.2 + */ +struct NamedArgument +{ + /** The name of the argument, for which + <member>NamedArgument::Value</member> is intended. + */ + string Name; + + /** The value of the argument whoose name is the one as contained in the + member <member>Name</member>. + */ + any Value; +}; + +}; }; }; }; }; + + +#endif diff --git a/udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl b/udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl new file mode 100644 index 000000000000..9cb268d7d9a6 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.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 __com_sun_star_bridge_oleautomation_PropertyPutArgument_idl__ +#define __com_sun_star_bridge_oleautomation_PropertyPutArgument_idl__ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** contains a value that is used as argument in a "property put" + operation on a Automation object. + <p> + If a Automation object is converted into a UNO object by a scripting + bridge, such as + <type scope="com::sun::star::bridge::oleautomation">BridgeSupplier</type>, + then it is accessed through the + <type scope="com::sun::star::script">XInvocation</type> interface. + The methods + <member scope="com::sun::star::script">XInvocation::setValue</member> + and + <member scope="com::sun::star::script">XInvocation::getValue</member> + are used to access properties which do not have additional + arguments. To access a property with additional arguments, the + method + <member scope="com::sun::star::script">XInvocation::invoke</member> + has to be used. The method implementation must decide, if the + property is to be written or read so it can perform the proper + operation on the Automation object. To make this decision, the + caller has to provide the information if the current call is + intended to be a write or read operation. This is done by + providing either instances of <type>PropertyPutArgument</type> or + <type>PropertyGetArgument</type> as arguments to + <member scope="com::sun::star::script">XInvocation::Invoke</member>. + + @since OOo 1.1.2 +*/ +struct PropertyPutArgument +{ + /** contains the actual argument. + */ + any Value; +}; + +}; }; }; }; }; + + +#endif diff --git a/udkapi/com/sun/star/bridge/oleautomation/SCode.idl b/udkapi/com/sun/star/bridge/oleautomation/SCode.idl new file mode 100644 index 000000000000..06e636228af7 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/SCode.idl @@ -0,0 +1,62 @@ +/************************************************************************* + * + * 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 __com_sun_star_bridge_oleautomation_SCode_idl__ +#define __com_sun_star_bridge_oleautomation_SCode_idl__ + + +module com { module sun { module star { module bridge { module oleautomation { + +/** <p>is the UNO representation of the Automation type SCODE. + </p> + <p> + A <code>SCODE</code> is used to express errors in Automation. + In UNO it could be represented by a <atom>long</atom> and therefore a typedef + from <atom>long</atom> to a particular error type would do. But a typedef + cannot be expressed in all language bindings. In the case where no typedefs + are supported the actual type is used. That is, a typedef'd error type would + be represented as <code>int</code> in Java. The information that the + <code>int</code> is an error type is lost. + </p> + <p> + When calling Automation objects from UNO the distinction between error type + and <atom>long</atom> is important. Therefore the <type>Scode</type> is + declared as struct. + </p> + + @since OOo 1.1.2 + */ + + +struct SCode +{ + long Value; +}; + +}; }; }; }; }; + + +#endif diff --git a/udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl b/udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl new file mode 100644 index 000000000000..6c165693bcdc --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl @@ -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 __com_sun_star_bridge_oleautomation_XAutomationObject_idl__ +#define __com_sun_star_bridge_oleautomation_XAutomationObject_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +module com { module sun { module star { module bridge { module oleautomation { + + +/** a tagging interface for UNO objects which represent Automation + objects. + <p> + If a Automation object is bridged into the UNO environment, then + the resulting UNO object does not distinguish itself from any + other ordinary UNO object. However, it may be desirable to have + that distinction regardless, if a UNO client needs to take + particular Automation specific characteristics into account. + By providing <type>XAutomationObject</type> an object declares + to be representing an Automation object. + + @since OOo 1.1.2 + */ +interface XAutomationObject: com::sun::star::uno::XInterface +{ + +}; + +}; }; }; }; }; + + +#endif diff --git a/udkapi/com/sun/star/bridge/oleautomation/makefile.mk b/udkapi/com/sun/star/bridge/oleautomation/makefile.mk new file mode 100644 index 000000000000..acb0365a4a71 --- /dev/null +++ b/udkapi/com/sun/star/bridge/oleautomation/makefile.mk @@ -0,0 +1,54 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +PRJ=..$/..$/..$/..$/.. + +PRJNAME=api + +TARGET=cssboleautomation +PACKAGE=com$/sun$/star$/bridge$/oleautomation + +# --- Settings ----------------------------------------------------- +.INCLUDE : $(PRJ)$/util$/makefile.pmk + +# ------------------------------------------------------------------------ + +IDLFILES=\ + ApplicationRegistration.idl\ + BridgeSupplier.idl\ + Factory.idl \ + Decimal.idl \ + Currency.idl \ + Date.idl \ + NamedArgument.idl \ + SCode.idl \ + PropertyPutArgument.idl \ + XAutomationObject.idl +# ------------------------------------------------------------------ + +.INCLUDE : target.mk +.INCLUDE : $(PRJ)$/util$/target.pmk |