summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@suse.com>2011-08-15 23:56:37 -0400
committerKohei Yoshida <kohei.yoshida@suse.com>2011-08-16 21:22:44 -0400
commit11207ae93191fb966676423e6d377c8292a8cf0b (patch)
tree52c6b04d103ba2f31539dbae209a0a7acefdc236
parent8657e723d0853a868599a2c20a353fba0d03d8e6 (diff)
Make XPropertSet2 not a child interface of XPropertySet.
This is to preserve ABI backward compatibility with cppu::OPropertySetHelper.
-rw-r--r--cppuhelper/inc/cppuhelper/propshlp.hxx2
-rw-r--r--cppuhelper/source/msvc_win32_intel.map3
-rw-r--r--udkapi/com/sun/star/beans/XPropertySet2.idl12
3 files changed, 15 insertions, 2 deletions
diff --git a/cppuhelper/inc/cppuhelper/propshlp.hxx b/cppuhelper/inc/cppuhelper/propshlp.hxx
index 779eda28fced..335fc6003628 100644
--- a/cppuhelper/inc/cppuhelper/propshlp.hxx
+++ b/cppuhelper/inc/cppuhelper/propshlp.hxx
@@ -33,6 +33,7 @@
#include <cppuhelper/interfacecontainer.hxx>
+#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/beans/XPropertySet2.hpp>
#include <com/sun/star/beans/XMultiPropertySet.hpp>
#include <com/sun/star/beans/XFastPropertySet.hpp>
@@ -350,6 +351,7 @@ public:
*/
class OPropertySetHelper : public ::com::sun::star::beans::XMultiPropertySet,
public ::com::sun::star::beans::XFastPropertySet,
+ public ::com::sun::star::beans::XPropertySet,
public ::com::sun::star::beans::XPropertySet2
{
public:
diff --git a/cppuhelper/source/msvc_win32_intel.map b/cppuhelper/source/msvc_win32_intel.map
index 39a1469e11a9..1d397bfec585 100644
--- a/cppuhelper/source/msvc_win32_intel.map
+++ b/cppuhelper/source/msvc_win32_intel.map
@@ -64,7 +64,7 @@ GetVersionInfo;
??_7OPropertyArrayHelper@cppu@@6B@;
??_7OPropertySetHelper@cppu@@6BXFastPropertySet@beans@star@sun@com@@@;
??_7OPropertySetHelper@cppu@@6BXMultiPropertySet@beans@star@sun@com@@@;
-??_7OPropertySetHelper@cppu@@6BXPropertySet2@beans@star@sun@com@@@;
+??_7OPropertySetHelper@cppu@@6BXPropertySet@beans@star@sun@com@@@;
??_GIPropertyArrayHelper@cppu@@UAEPAXI@Z;
??_GOPropertyArrayHelper@cppu@@UAEPAXI@Z;
?addPropertiesChangeListener@OPropertySetHelper@cppu@@UAAXABV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@ABV?$Reference@VXPropertiesChangeListener@beans@star@sun@com@@@4567@@Z;
@@ -288,4 +288,5 @@ UDK_3.7 { # OOo 3.4
UDK_3.8 { # LibO 3.5
global:
?enableChangeListenerNotification@OPropertySetHelper@cppu@@UAAXE@Z;
+ ??_7OPropertySetHelper@cppu@@6BXPropertySet2@beans@star@sun@com@@@;
} UDK_3.7;
diff --git a/udkapi/com/sun/star/beans/XPropertySet2.idl b/udkapi/com/sun/star/beans/XPropertySet2.idl
index e4868bfac808..61f3dfe1c250 100644
--- a/udkapi/com/sun/star/beans/XPropertySet2.idl
+++ b/udkapi/com/sun/star/beans/XPropertySet2.idl
@@ -6,8 +6,18 @@
module com { module sun { module star { module beans {
-interface XPropertySet2: com::sun::star::beans::XPropertySet
+/**
+ * This interface should be conceptually derived from XPropertySet but isn't
+ * due to ABI compatibility on Windows; cppu::OPrpertySetHelper exports
+ * XPropertySet's vtable symbol in the UDK_3_0_0 section which must stay
+ * there. Once we hit LibreOffice 4 we should clean this mess up.
+ */
+interface XPropertySet2: com::sun::star::uno::XInterface
{
+ /**
+ * Turn on or off notifying change listeners on property value change. It
+ * notifies registered change listeners by default.
+ */
void enableChangeListenerNotification( [in] boolean bEnable );
};