diff options
518 files changed, 6801 insertions, 22201 deletions
diff --git a/basegfx/source/curve/b2dcubicbezier.cxx b/basegfx/source/curve/b2dcubicbezier.cxx index adf819a214a1..adec8a2ac6ca 100644 --- a/basegfx/source/curve/b2dcubicbezier.cxx +++ b/basegfx/source/curve/b2dcubicbezier.cxx @@ -978,10 +978,10 @@ namespace basegfx // calculate the x-extrema parameters by zeroing first x-derivative // of the cubic bezier's parametric formula, which results in a // quadratic equation: dBezier/dt = t*t*fAX - 2*t*fBX + fCX - const B2DPoint aRelativeEndPoint(maEndPoint-maStartPoint); - const double fAX = 3 * (maControlPointA.getX() - maControlPointB.getX()) + aRelativeEndPoint.getX(); - const double fBX = 2 * maControlPointA.getX() - maControlPointB.getX() - maStartPoint.getX(); - double fCX(maControlPointA.getX() - maStartPoint.getX()); + const B2DPoint aControlDiff( maControlPointA - maControlPointB ); + double fCX = maControlPointA.getX() - maStartPoint.getX(); + const double fBX = fCX + aControlDiff.getX(); + const double fAX = 3 * aControlDiff.getX() + (maEndPoint.getX() - maStartPoint.getX()); if(fTools::equalZero(fCX)) { @@ -997,9 +997,9 @@ namespace basegfx { const double fS = sqrt(fD); // calculate both roots (avoiding a numerically unstable subtraction) - const double fQ = -(fBX + ((fBX >= 0) ? +fS : -fS)); + const double fQ = fBX + ((fBX >= 0) ? +fS : -fS); impCheckExtremumResult(fQ / fAX, rResults); - if( fD > 0.0 ) // ignore root multiplicity + if( !fTools::equalZero(fS) ) // ignore root multiplicity impCheckExtremumResult(fCX / fQ, rResults); } } @@ -1010,9 +1010,9 @@ namespace basegfx } // calculate the y-extrema parameters by zeroing first y-derivative - const double fAY = 3 * (maControlPointA.getY() - maControlPointB.getY()) + aRelativeEndPoint.getY(); - const double fBY = 2 * maControlPointA.getY() - maControlPointB.getY() - maStartPoint.getY(); - double fCY(maControlPointA.getY() - maStartPoint.getY()); + double fCY = maControlPointA.getY() - maStartPoint.getY(); + const double fBY = fCY + aControlDiff.getY(); + const double fAY = 3 * aControlDiff.getY() + (maEndPoint.getY() - maStartPoint.getY()); if(fTools::equalZero(fCY)) { @@ -1024,13 +1024,13 @@ namespace basegfx { // derivative is polynomial of order 2 => use binomial formula const double fD = fBY*fBY - fAY*fCY; - if( fD >= 0 ) + if( fD >= 0.0 ) { const double fS = sqrt(fD); // calculate both roots (avoiding a numerically unstable subtraction) - const double fQ = -(fBY + ((fBY >= 0) ? +fS : -fS)); + const double fQ = fBY + ((fBY >= 0) ? +fS : -fS); impCheckExtremumResult(fQ / fAY, rResults); - if( fD > 0.0 ) // ignore root multiplicity, TODO: use equalZero() instead? + if( !fTools::equalZero(fS) ) // ignore root multiplicity impCheckExtremumResult(fCY / fQ, rResults); } } diff --git a/basegfx/source/polygon/b2dtrapezoid.cxx b/basegfx/source/polygon/b2dtrapezoid.cxx index c1e0f7f6c7c1..d89ec7c6cf73 100644 --- a/basegfx/source/polygon/b2dtrapezoid.cxx +++ b/basegfx/source/polygon/b2dtrapezoid.cxx @@ -798,6 +798,7 @@ namespace basegfx if(splitEdgeAtGivenPoint(aLeft, *pNewLeft, aCurrent)) { maNewPoints.push_back(pNewLeft); + bDone = true; } else { @@ -809,13 +810,12 @@ namespace basegfx if(splitEdgeAtGivenPoint(aRight, *pNewRight, aCurrent)) { maNewPoints.push_back(pNewRight); + bDone = true; } else { delete pNewRight; } - - bDone = true; } } diff --git a/canvas/prj/build.lst b/canvas/prj/build.lst index cacbdb5bb894..2adfe155e0b1 100644 --- a/canvas/prj/build.lst +++ b/canvas/prj/build.lst @@ -1,4 +1,4 @@ -cv canvas : javaunohelper comphelper cppuhelper offuh unoil tools svtools vcl AGG:agg basegfx CAIRO:cairo NULL +cv canvas : javaunohelper comphelper cppuhelper offuh unoil tools svtools vcl AGG:agg basegfx CAIRO:cairo LIBXSLT:libxslt NULL cv canvas usr1 - all cv_mkout NULL cv canvas\inc nmake - all cv_inc NULL cv canvas\source\tools nmake - all cv_tools cv_inc NULL diff --git a/comphelper/inc/comphelper/docpasswordhelper.hxx b/comphelper/inc/comphelper/docpasswordhelper.hxx index dbbb68372a07..7e9f06318a26 100644 --- a/comphelper/inc/comphelper/docpasswordhelper.hxx +++ b/comphelper/inc/comphelper/docpasswordhelper.hxx @@ -28,6 +28,7 @@ #ifndef COMPHELPER_DOCPASSWORDHELPR_HXX #define COMPHELPER_DOCPASSWORDHELPR_HXX +#include <com/sun/star/beans/NamedValue.hpp> #include "comphelper/comphelperdllapi.h" #include <vector> #include "comphelper/docpasswordrequest.hxx" @@ -53,7 +54,7 @@ enum DocPasswordVerifierResult /** Base class for a password verifier used by the DocPasswordHelper class below. - Users have to implement the virtual function and pass an instance of the + Users have to implement the virtual functions and pass an instance of the verifier to one of the password request functions. */ class COMPHELPER_DLLPUBLIC IDocPasswordVerifier @@ -63,6 +64,14 @@ public: /** Will be called everytime a password needs to be verified. + @param rPassword + The password to be verified + + @param o_rEncryptionData + Output parameter, that is filled with the EncryptionData generated + from the password. The data is filled only if the validation was + successful. + @return The result of the verification. - DocPasswordVerifierResult_OK, if and only if the passed password is valid and can be used to process the related document. @@ -72,7 +81,23 @@ public: occured while password verification. The password request loop will be aborted. */ - virtual DocPasswordVerifierResult verifyPassword( const ::rtl::OUString& rPassword ) = 0; + virtual DocPasswordVerifierResult verifyPassword( const ::rtl::OUString& rPassword, ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& o_rEncryptionData ) = 0; + + /** Will be called everytime an encryption data needs to be verified. + + @param rEncryptionData + The data will be validated + + @return The result of the verification. + - DocPasswordVerifierResult_OK, if and only if the passed encryption data + is valid and can be used to process the related document. + - DocPasswordVerifierResult_WRONG_PASSWORD, if the encryption data is + wrong. + - DocPasswordVerifierResult_ABORT, if an unrecoverable error + occured while data verification. The password request loop + will be aborted. + */ + virtual DocPasswordVerifierResult verifyEncryptionData( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& o_rEncryptionData ) = 0; }; @@ -195,6 +220,35 @@ public: // ------------------------------------------------------------------------ + /** This helper function generates a random sequence of bytes of + requested length. + */ + + static ::com::sun::star::uno::Sequence< sal_Int8 > GenerateRandomByteSequence( + sal_Int32 nLength ); + + // ------------------------------------------------------------------------ + + /** This helper function generates a byte sequence representing the + key digest value used by MSCodec_Std97 codec. + */ + + static ::com::sun::star::uno::Sequence< sal_Int8 > GenerateStd97Key( + const ::rtl::OUString& aPassword, + const ::com::sun::star::uno::Sequence< sal_Int8 >& aDocId ); + + // ------------------------------------------------------------------------ + + /** This helper function generates a byte sequence representing the + key digest value used by MSCodec_Std97 codec. + */ + + static ::com::sun::star::uno::Sequence< sal_Int8 > GenerateStd97Key( + const sal_uInt16 pPassData[16], + const ::com::sun::star::uno::Sequence< sal_Int8 >& aDocId ); + + // ------------------------------------------------------------------------ + /** This helper function tries to request and verify a password to load a protected document. @@ -248,8 +302,9 @@ public: passed password verifier. If empty, no valid password has been found, or the user has chossen to cancel password input. */ - static ::rtl::OUString requestAndVerifyDocPassword( + static ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > requestAndVerifyDocPassword( IDocPasswordVerifier& rVerifier, + const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& rMediaEncData, const ::rtl::OUString& rMediaPassword, const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& rxInteractHandler, @@ -300,7 +355,7 @@ public: passed password verifier. If empty, no valid password has been found, or the user has chossen to cancel password input. */ - static ::rtl::OUString requestAndVerifyDocPassword( + static ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > requestAndVerifyDocPassword( IDocPasswordVerifier& rVerifier, MediaDescriptor& rMediaDesc, DocPasswordRequestType eRequestType, diff --git a/comphelper/inc/comphelper/documentconstants.hxx b/comphelper/inc/comphelper/documentconstants.hxx index b78150586e28..73b90d72cc8a 100644 --- a/comphelper/inc/comphelper/documentconstants.hxx +++ b/comphelper/inc/comphelper/documentconstants.hxx @@ -111,3 +111,41 @@ #define ODFVER_012_TEXT ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ODFVER_012_TEXT_ASCII ) ) #endif +// filter flags +// TODO/LATER: The flags should be part of the UNO specification +#define SFX_FILTER_IMPORT 0x00000001L +#define SFX_FILTER_EXPORT 0x00000002L +#define SFX_FILTER_TEMPLATE 0x00000004L +#define SFX_FILTER_INTERNAL 0x00000008L +#define SFX_FILTER_TEMPLATEPATH 0x00000010L +#define SFX_FILTER_OWN 0x00000020L +#define SFX_FILTER_ALIEN 0x00000040L +#define SFX_FILTER_USESOPTIONS 0x00000080L + +#define SFX_FILTER_DEFAULT 0x00000100L +#define SFX_FILTER_EXECUTABLE 0x00000200L +#define SFX_FILTER_SUPPORTSSELECTION 0x00000400L +#define SFX_FILTER_MAPTOAPPPLUG 0x00000800L +#define SFX_FILTER_NOTINFILEDLG 0x00001000L +#define SFX_FILTER_NOTINCHOOSER 0x00002000L +#define SFX_FILTER_ASYNC 0x00004000L +#define SFX_FILTER_CREATOR 0x00008000L +#define SFX_FILTER_OPENREADONLY 0x00010000L +#define SFX_FILTER_MUSTINSTALL 0x00020000L +#define SFX_FILTER_CONSULTSERVICE 0x00040000L + +#define SFX_FILTER_STARONEFILTER 0x00080000L +#define SFX_FILTER_PACKED 0x00100000L +#define SFX_FILTER_SILENTEXPORT 0x00200000L + +#define SFX_FILTER_BROWSERPREFERED 0x00400000L + +#define SFX_FILTER_ENCRYPTION 0x01000000L +#define SFX_FILTER_PASSWORDTOMODIFY 0x02000000L + +#define SFX_FILTER_PREFERED 0x10000000L + +#define SFX_FILTER_VERSION_NONE 0 +#define SFX_FILTER_NOTINSTALLED SFX_FILTER_MUSTINSTALL | SFX_FILTER_CONSULTSERVICE + + diff --git a/comphelper/inc/comphelper/mediadescriptor.hxx b/comphelper/inc/comphelper/mediadescriptor.hxx index 7d2333045390..e92a6c4650f6 100644 --- a/comphelper/inc/comphelper/mediadescriptor.hxx +++ b/comphelper/inc/comphelper/mediadescriptor.hxx @@ -78,6 +78,7 @@ class COMPHELPER_DLLPUBLIC MediaDescriptor : public SequenceAsHashMap static const ::rtl::OUString& PROP_DEEPDETECTION(); static const ::rtl::OUString& PROP_DETECTSERVICE(); static const ::rtl::OUString& PROP_DOCUMENTSERVICE(); + static const ::rtl::OUString& PROP_ENCRYPTIONDATA(); static const ::rtl::OUString& PROP_EXTENSION(); static const ::rtl::OUString& PROP_FILENAME(); static const ::rtl::OUString& PROP_FILTERNAME(); @@ -127,10 +128,6 @@ class COMPHELPER_DLLPUBLIC MediaDescriptor : public SequenceAsHashMap //------------------------------------------- // interface public: - /** Value type of the 'ComponentData' property. - */ - typedef ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > ComponentDataSequence; - //--------------------------------------- /** @short these ctors do nothing - excepting that they forward the given parameters to the base class ctors. @@ -204,8 +201,9 @@ class COMPHELPER_DLLPUBLIC MediaDescriptor : public SequenceAsHashMap /** Returns a value from the sequence contained in the property 'ComponentData' of this media descriptor. - @descr The property 'ComponentData' should be empty or should - contain a value of type ComponentDataSequence (see above). + @descr The property 'ComponentData' should be empty, or should + contain a value of type sequence<com.sun.star.beans.NamedValue> + or sequence<com.sun.star.beans.PropertyValue>. @return The value with the specified name, if existing in the sequence of the 'ComponentData' property, otherwise an empty @@ -218,10 +216,11 @@ class COMPHELPER_DLLPUBLIC MediaDescriptor : public SequenceAsHashMap /** Inserts a value into the sequence contained in the property 'ComponentData' of the media descriptor. - @descr The property 'ComponentData' should be empty or should - contain a value of type ComponentDataSequence (see above). The - passed value will be inserted into the sequence, or, if already - existing, will be overwritten. + @descr The property 'ComponentData' should be empty, or should + contain a value of type sequence<com.sun.star.beans.NamedValue> + or sequence<com.sun.star.beans.PropertyValue>. The passed value + will be inserted into the sequence, or, if already existing, + will be overwritten. @param rName The name of the value to be inserted into the sequence of the 'ComponentData' property. @@ -237,10 +236,10 @@ class COMPHELPER_DLLPUBLIC MediaDescriptor : public SequenceAsHashMap /** Removes a value from the sequence contained in the property 'ComponentData' of the media descriptor. - @descr The property 'ComponentData' should be empty or should - contain a value of type ComponentDataSequence (see above). The - value with the passed name will be removed from the sequence, - if existing. + @descr The property 'ComponentData' should be empty, or should + contain a value of type sequence<com.sun.star.beans.NamedValue> + or sequence<com.sun.star.beans.PropertyValue>. The value with + the passed name will be removed from the sequence, if existing. @param rName The name of the value to be removed from the sequence of the 'ComponentData' property. diff --git a/comphelper/inc/comphelper/mimeconfighelper.hxx b/comphelper/inc/comphelper/mimeconfighelper.hxx index 5e02d4761cb1..16a0a159d5a4 100644 --- a/comphelper/inc/comphelper/mimeconfighelper.hxx +++ b/comphelper/inc/comphelper/mimeconfighelper.hxx @@ -32,6 +32,7 @@ #include <com/sun/star/uno/Sequence.hxx> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/container/XNameAccess.hpp> +#include <com/sun/star/container/XContainerQuery.hpp> #include <com/sun/star/beans/NamedValue.hpp> #include <com/sun/star/beans/PropertyValue.hpp> #include <com/sun/star/embed/VerbDescriptor.hpp> @@ -50,6 +51,8 @@ class COMPHELPER_DLLPUBLIC MimeConfigurationHelper ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xVerbsConfig; ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xMediaTypeConfig; + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xFilterFactory; + public: MimeConfigurationHelper( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory ); @@ -106,6 +109,10 @@ public: ::rtl::OUString GetFactoryNameByMediaType( const ::rtl::OUString& aMediaType ); // typedetection related + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > GetFilterFactory(); + + sal_Int32 GetFilterFlags( const ::rtl::OUString& aFilterName ); + ::rtl::OUString UpdateMediaDescriptorWithFilterName( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescr, sal_Bool bIgnoreType ); @@ -117,6 +124,14 @@ public: ::rtl::OUString GetDefaultFilterFromServiceName( const ::rtl::OUString& aServName, sal_Int32 nVersion ); + ::rtl::OUString GetExportFilterFromImportFilter( const ::rtl::OUString& aImportFilterName ); + + static ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SearchForFilter( + const ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainerQuery >& xFilterQuery, + const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aSearchRequest, + sal_Int32 nMustFlags, + sal_Int32 nDontFlags ); + static sal_Bool ClassIDsEqual( const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID1, const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID2 ); static ::com::sun::star::uno::Sequence< sal_Int8 > GetSequenceClassID( sal_uInt32 n1, sal_uInt16 n2, sal_uInt16 n3, diff --git a/comphelper/inc/comphelper/namedvaluecollection.hxx b/comphelper/inc/comphelper/namedvaluecollection.hxx index 72cd0e7cdfbe..e13059361b0a 100644 --- a/comphelper/inc/comphelper/namedvaluecollection.hxx +++ b/comphelper/inc/comphelper/namedvaluecollection.hxx @@ -39,6 +39,7 @@ #include <memory> #include <algorithm> +#include <vector> //........................................................................ namespace comphelper @@ -91,6 +92,11 @@ namespace comphelper ~NamedValueCollection(); + inline void assign( const ::com::sun::star::uno::Any& i_rWrappedElements ) + { + impl_assign( i_rWrappedElements ); + } + inline void assign( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& _rArguments ) { impl_assign( _rArguments ); @@ -117,6 +123,11 @@ namespace comphelper /// determines whether the collection is empty bool empty() const; + /** returns the names of all elements in the collection + */ + ::std::vector< ::rtl::OUString > + getNames() const; + /** merges the content of another collection into |this| @param _rAdditionalValues the collection whose values are to be merged @@ -312,6 +323,7 @@ namespace comphelper } private: + void impl_assign( const ::com::sun::star::uno::Any& i_rWrappedElements ); void impl_assign( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& _rArguments ); void impl_assign( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& _rArguments ); void impl_assign( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& _rArguments ); diff --git a/comphelper/inc/comphelper/optionalvalue.hxx b/comphelper/inc/comphelper/optionalvalue.hxx deleted file mode 100644 index f63e1cde51aa..000000000000 --- a/comphelper/inc/comphelper/optionalvalue.hxx +++ /dev/null @@ -1,187 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _COMPHELPER_OPTIONALVALUE_HXX -#define _COMPHELPER_OPTIONALVALUE_HXX - -#include <com/sun/star/uno/Any.hxx> - -namespace comphelper -{ - -/** @deprecated - Use boost/optional.hpp instead. -*/ - - - - /* Definition of OptionalValue template */ - - /** This template provides 'optionality' for the given value type. - - Especially for PODs, optionality either needs to be achieved - by special 'magic' values (i.e. an int value is not set when - -1 etc.), or an additional bool denoting value - validity. This template encapsulates the latter into an atomic - data type. - - @tpl Element - The value type that should be made optional - */ - template< typename Element > class OptionalValue - { - public: - typedef Element ValueType; - - /** Default-construct the value. - - A default-constructed value is not valid. You have to - explicitely set a value. - */ - OptionalValue() : - maValue(), - mbValid( false ) - { - } - - /** Construct the value. - - An explicitely constructed value is valid. To create an - invalid value, you have to default-construct it. - */ - OptionalValue( const Element& rValue ) : - maValue( rValue ), - mbValid( true ) - { - } - - // default copy/assignment operators are okay here - //OptionalValue(const OptionalValue&); - //OptionalValue& operator=( const OptionalValue& ); - - /** Query whether the value is valid - - @return true, if this object contains a valid value. - */ - bool isValid() const - { - return mbValid; - } - - /** Set a value. - - After this call, the object contains a valid value. - */ - void setValue( const Element& rValue ) - { - maValue = rValue; - mbValid = true; - } - - /** Get the value. - - The return value of this method is undefined, if the - object does not contain a valid value. - */ - Element getValue() const - { - return maValue; - } - - /** Clear the value. - - After this call, the object no longer contains a valid - value. - */ - void clearValue() - { - mbValid = false; - } - - // NOTE: The following two methods would optimally have been - // implemented as operator>>=/operator<<= - // overloads. Unfortunately, there's already a templatized - // version for those two methods, namely for UNO interface - // types. Adding a second would lead to ambiguities. - - /** Export the value into an Any. - - This method extracts the value into an Any. If the value - is invalid, the Any will be cleared. - - @return true, if the value has been successfully - transferred to the Any. Clearing the Any from an invalid - object is also considered a successful operation. - */ - bool exportValue( ::com::sun::star::uno::Any& o_rAny ) - { - o_rAny.clear(); - - if( isValid() ) - { - if( !(o_rAny <<= getValue()) ) - return false; - } - - return true; - } - - /** Import the value from an Any. - - This method imports the value from an Any. If the Any - is invalid, the object will get an invalid value. - - @return true, if the value has been successfully - transferred from the Any. Setting the value to invalid - from an empty Any is also considered a successful - operation. - */ - bool importValue( const ::com::sun::star::uno::Any& rAny ) - { - clearValue(); - - if( rAny.hasValue() ) - { - Element tmp; - - if( !(rAny >>= tmp) ) - return false; - - setValue( tmp ); - } - - return true; - } - - private: - Element maValue; - bool mbValid; - }; - -} - -#endif /* _COMPHELPER_OPTIONALVALUE_HXX */ diff --git a/comphelper/inc/comphelper/property.hxx b/comphelper/inc/comphelper/property.hxx index 5631cf5670f2..9b5b1a9804fe 100644 --- a/comphelper/inc/comphelper/property.hxx +++ b/comphelper/inc/comphelper/property.hxx @@ -150,11 +150,11 @@ COMPHELPER_DLLPUBLIC void copyProperties(const staruno::Reference<starbeans::XPr sal_False, if the value could be converted and has not changed @exception InvalidArgumentException thrown if the value could not be converted to the requested type (which is the template argument) */ -template <class TYPE> -sal_Bool tryPropertyValue(staruno::Any& /*out*/_rConvertedValue, staruno::Any& /*out*/_rOldValue, const staruno::Any& _rValueToSet, const TYPE& _rCurrentValue) +template <typename T> +sal_Bool tryPropertyValue(staruno::Any& /*out*/_rConvertedValue, staruno::Any& /*out*/_rOldValue, const staruno::Any& _rValueToSet, const T& _rCurrentValue) { sal_Bool bModified(sal_False); - TYPE aNewValue; + T aNewValue = T(); ::cppu::convertPropertyValue(aNewValue, _rValueToSet); if (aNewValue != _rCurrentValue) { @@ -207,7 +207,7 @@ sal_Bool tryPropertyValueEnum(staruno::Any& /*out*/_rConvertedValue, staruno::An inline sal_Bool tryPropertyValue(staruno::Any& /*out*/_rConvertedValue, staruno::Any& /*out*/_rOldValue, const staruno::Any& _rValueToSet, sal_Bool _bCurrentValue) { sal_Bool bModified(sal_False); - sal_Bool bNewValue; + sal_Bool bNewValue(sal_False); ::cppu::convertPropertyValue(bNewValue, _rValueToSet); if (bNewValue != _bCurrentValue) { diff --git a/comphelper/inc/comphelper/querydeep.hxx b/comphelper/inc/comphelper/querydeep.hxx deleted file mode 100644 index 4115412d8d6c..000000000000 --- a/comphelper/inc/comphelper/querydeep.hxx +++ /dev/null @@ -1,484 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _COMPHELPER_QUERYDEEPINTERFACE_HXX -#define _COMPHELPER_QUERYDEEPINTERFACE_HXX - -#include <com/sun/star/uno/XInterface.hpp> -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/uno/Type.hxx> - -/** */ //for docpp -namespace comphelper -{ - -//-------------------------------------------------------------------------------------------------------- -/** - * Inspect interfaces types whether they are related by inheritance. - *<BR> - * @return true if rType is derived from rBaseType - * @param rBaseType a <type>Type</type> of an interface. - * @param rType a <type>Type</type> of an interface. - */ -sal_Bool isDerivedFrom( - const ::com::sun::star::uno::Type & rBaseType, - const ::com::sun::star::uno::Type & rType ); - -//-------------------------------------------------------------------------------------------------------- -/** - * Inspect interface types whether they are related by inheritance. - *<BR> - * @return true if p is of a type derived from rBaseType - * @param rBaseType a <type>Type</type> of an interface. - * @param p a pointer to an interface. - */ -template <class Interface> -inline sal_Bool isDerivedFrom( - const ::com::sun::star::uno::Type& rBaseType, - Interface* /*p*/) -{ - return isDerivedFrom(rBaseType, Interface::static_type()); -} - -//-------------------------------------------------------------------------------------------------------- -// possible optimization ? -// Any aRet(::cppu::queryInterface(rType, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)); -// if (aRet.hasValue()) -// return aRet; - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - */ -template< class Interface1 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - */ -template< class Interface1, class Interface2 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - * @param p8 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7, class Interface8 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7, Interface8 * p8 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else if (isDerivedFrom(rType, Interface8::static_type())) - return ::com::sun::star::uno::Any( &p8, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - * @param p8 a pointer to an interface. - * @param p9 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7, class Interface8, class Interface9 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7, Interface8 * p8, Interface9 * p9 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else if (isDerivedFrom(rType, Interface8::static_type())) - return ::com::sun::star::uno::Any( &p8, rType ); - else if (isDerivedFrom(rType, Interface9::static_type())) - return ::com::sun::star::uno::Any( &p9, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - * @param p8 a pointer to an interface. - * @param p9 a pointer to an interface. - * @param p10 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7, class Interface8, class Interface9, class Interface10 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7, Interface8 * p8, Interface9 * p9, Interface10 * p10 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else if (isDerivedFrom(rType, Interface8::static_type())) - return ::com::sun::star::uno::Any( &p8, rType ); - else if (isDerivedFrom(rType, Interface9::static_type())) - return ::com::sun::star::uno::Any( &p9, rType ); - else if (isDerivedFrom(rType, Interface10::static_type())) - return ::com::sun::star::uno::Any( &p10, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - * @param p8 a pointer to an interface. - * @param p9 a pointer to an interface. - * @param p10 a pointer to an interface. - * @param p11 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7, class Interface8, class Interface9, class Interface10, - class Interface11 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7, Interface8 * p8, Interface9 * p9, Interface10 * p10, - Interface11 * p11 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else if (isDerivedFrom(rType, Interface8::static_type())) - return ::com::sun::star::uno::Any( &p8, rType ); - else if (isDerivedFrom(rType, Interface9::static_type())) - return ::com::sun::star::uno::Any( &p9, rType ); - else if (isDerivedFrom(rType, Interface10::static_type())) - return ::com::sun::star::uno::Any( &p10, rType ); - else if (isDerivedFrom(rType, Interface11::static_type())) - return ::com::sun::star::uno::Any( &p11, rType ); - else - return ::com::sun::star::uno::Any(); -} - -/** - * Inspect types and choose return proper interface. - *<BR> - * @param p1 a pointer to an interface. - * @param p2 a pointer to an interface. - * @param p3 a pointer to an interface. - * @param p4 a pointer to an interface. - * @param p5 a pointer to an interface. - * @param p6 a pointer to an interface. - * @param p7 a pointer to an interface. - * @param p8 a pointer to an interface. - * @param p9 a pointer to an interface. - * @param p10 a pointer to an interface. - * @param p11 a pointer to an interface. - * @param p12 a pointer to an interface. - */ -template< class Interface1, class Interface2, class Interface3, class Interface4, class Interface5, - class Interface6, class Interface7, class Interface8, class Interface9, class Interface10, - class Interface11, class Interface12 > -inline ::com::sun::star::uno::Any queryDeepInterface( - const ::com::sun::star::uno::Type & rType, - Interface1 * p1, Interface2 * p2, Interface3 * p3, Interface4 * p4, Interface5 * p5, - Interface6 * p6, Interface7 * p7, Interface8 * p8, Interface9 * p9, Interface10 * p10, - Interface11 * p11, Interface12 * p12 ) -{ - if (isDerivedFrom(rType, Interface1::static_type())) - return ::com::sun::star::uno::Any( &p1, rType ); - else if (isDerivedFrom(rType, Interface2::static_type())) - return ::com::sun::star::uno::Any( &p2, rType ); - else if (isDerivedFrom(rType, Interface3::static_type())) - return ::com::sun::star::uno::Any( &p3, rType ); - else if (isDerivedFrom(rType, Interface4::static_type())) - return ::com::sun::star::uno::Any( &p4, rType ); - else if (isDerivedFrom(rType, Interface5::static_type())) - return ::com::sun::star::uno::Any( &p5, rType ); - else if (isDerivedFrom(rType, Interface6::static_type())) - return ::com::sun::star::uno::Any( &p6, rType ); - else if (isDerivedFrom(rType, Interface7::static_type())) - return ::com::sun::star::uno::Any( &p7, rType ); - else if (isDerivedFrom(rType, Interface8::static_type())) - return ::com::sun::star::uno::Any( &p8, rType ); - else if (isDerivedFrom(rType, Interface9::static_type())) - return ::com::sun::star::uno::Any( &p9, rType ); - else if (isDerivedFrom(rType, Interface10::static_type())) - return ::com::sun::star::uno::Any( &p10, rType ); - else if (isDerivedFrom(rType, Interface11::static_type())) - return ::com::sun::star::uno::Any( &p11, rType ); - else if (isDerivedFrom(rType, Interface12::static_type())) - return ::com::sun::star::uno::Any( &p12, rType ); - else - return ::com::sun::star::uno::Any(); -} - -} // namespace comphelper - -#endif // _COMPHELPER_QUERYDEEPINTERFACE_HXX - diff --git a/comphelper/inc/comphelper/scopeguard.hxx b/comphelper/inc/comphelper/scopeguard.hxx index 4841a564ae61..1fdd179404a2 100644 --- a/comphelper/inc/comphelper/scopeguard.hxx +++ b/comphelper/inc/comphelper/scopeguard.hxx @@ -33,6 +33,7 @@ #endif #include "boost/function.hpp" #include "boost/noncopyable.hpp" +#include "boost/bind.hpp" namespace comphelper { @@ -66,6 +67,21 @@ private: exc_handling const m_excHandling; }; +class COMPHELPER_DLLPUBLIC FlagGuard : ScopeGuard +{ +public: + explicit FlagGuard( bool& i_flagRef, exc_handling i_excHandling = IGNORE_EXCEPTIONS ) + :ScopeGuard( ::boost::bind( ResetFlag, ::boost::ref( i_flagRef ) ), i_excHandling ) + { + } + +private: + static void ResetFlag( bool& i_flagRef ) + { + i_flagRef = false; + } +}; + } // namespace comphelper #endif // ! defined(INCLUDED_COMPHELPER_SCOPEGUARD_HXX) diff --git a/comphelper/inc/comphelper/servicedecl.hxx b/comphelper/inc/comphelper/servicedecl.hxx index adf120b3bae2..5ea7972e29a2 100644 --- a/comphelper/inc/comphelper/servicedecl.hxx +++ b/comphelper/inc/comphelper/servicedecl.hxx @@ -67,7 +67,7 @@ typedef ::boost::function3< The declaration can be done in various ways, the (simplest) form is <pre> - class MyClass : cppu::WeakImplHelper2<XInterface1, XInterface2> { + class MyClass : public cppu::WeakImplHelper2<XInterface1, XInterface2> { public: MyClass( uno::Reference<uno::XComponentContext> const& xContext ) [...] @@ -85,7 +85,7 @@ typedef ::boost::function3< context: <pre> - class MyClass : cppu::WeakImplHelper2<XInterface1, XInterface2> { + class MyClass : public cppu::WeakImplHelper2<XInterface1, XInterface2> { public: MyClass( uno::Sequence<uno::Any> const& args, uno::Reference<uno:XComponentContext> const& xContext ) diff --git a/comphelper/inc/comphelper/storagehelper.hxx b/comphelper/inc/comphelper/storagehelper.hxx index b7e5704c4d68..9d44b42e9514 100644 --- a/comphelper/inc/comphelper/storagehelper.hxx +++ b/comphelper/inc/comphelper/storagehelper.hxx @@ -33,6 +33,7 @@ #include <com/sun/star/lang/XSingleServiceFactory.hpp> #include <com/sun/star/embed/XStorage.hpp> #include <com/sun/star/embed/ElementModes.hpp> +#include <com/sun/star/beans/NamedValue.hpp> #include <com/sun/star/io/XInputStream.hpp> #include <com/sun/star/io/XOutputStream.hpp> #include <com/sun/star/io/XStream.hpp> @@ -43,6 +44,9 @@ #define ZIP_STORAGE_FORMAT_STRING ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ZipFormat" ) ) #define OFOPXML_STORAGE_FORMAT_STRING ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OFOPXMLFormat" ) ) +#define PACKAGE_ENCRYPTIONDATA_SHA1UTF8 ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PackageSHA1UTF8EncryptionKey" ) ) +#define PACKAGE_ENCRYPTIONDATA_SHA1MS1252 ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PackageSHA1MS1252EncryptionKey" ) ) + namespace comphelper { class COMPHELPER_DLLPUBLIC OStorageHelper @@ -112,9 +116,9 @@ public: = ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() ) throw ( ::com::sun::star::uno::Exception ); - static void SetCommonStoragePassword( + static void SetCommonStorageEncryptionData( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage, - const ::rtl::OUString& aPass ) + const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aEncryptionData ) throw ( ::com::sun::star::uno::Exception ); // the following method supports only storages of OOo formats @@ -159,6 +163,9 @@ public: sal_Bool bRepairStorage = sal_False ) throw ( ::com::sun::star::uno::Exception ); + static ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > + CreatePackageEncryptionData( const ::rtl::OUString& aPassword ); + static sal_Bool IsValidZipEntryFileName( const ::rtl::OUString& aName, sal_Bool bSlashAllowed ); static sal_Bool IsValidZipEntryFileName( const sal_Unicode *pChar, sal_Int32 nLength, sal_Bool bSlashAllowed ); diff --git a/comphelper/prj/build.lst b/comphelper/prj/build.lst index 793d8bf30e09..91e836cabd68 100644 --- a/comphelper/prj/build.lst +++ b/comphelper/prj/build.lst @@ -1,4 +1,4 @@ -ph comphelper : cppuhelper ucbhelper offuh vos salhelper NULL +ph comphelper : cppuhelper ucbhelper offuh vos salhelper LIBXSLT:libxslt NULL ph comphelper usr1 - all ph_mkout NULL ph comphelper\inc nmake - all ph_inc NULL ph comphelper\source\container nmake - all ph_container ph_inc NULL diff --git a/comphelper/source/misc/docpasswordhelper.cxx b/comphelper/source/misc/docpasswordhelper.cxx index 37941352ae28..3c8d66bd57e4 100644 --- a/comphelper/source/misc/docpasswordhelper.cxx +++ b/comphelper/source/misc/docpasswordhelper.cxx @@ -84,16 +84,9 @@ uno::Sequence< beans::PropertyValue > DocPasswordHelper::GenerateNewModifyPasswo { uno::Sequence< beans::PropertyValue > aResult; - uno::Sequence< sal_Int8 > aSalt( 16 ); + uno::Sequence< sal_Int8 > aSalt = GenerateRandomByteSequence( 16 ); sal_Int32 nCount = 1024; - TimeValue aTime; - osl_getSystemTime( &aTime ); - rtlRandomPool aRandomPool = rtl_random_createPool (); - rtl_random_addBytes ( aRandomPool, &aTime, 8 ); - - rtl_random_getBytes ( aRandomPool, aSalt.getArray(), 16 ); - uno::Sequence< sal_Int8 > aNewHash = GeneratePBKDF2Hash( aPassword, aSalt, nCount, 16 ); if ( aNewHash.getLength() ) { @@ -108,9 +101,6 @@ uno::Sequence< beans::PropertyValue > DocPasswordHelper::GenerateNewModifyPasswo aResult[3].Value <<= aNewHash; } - // Clean up random pool memory - rtl_random_destroyPool ( aRandomPool ); - return aResult; } @@ -282,9 +272,98 @@ Sequence< sal_Int8 > DocPasswordHelper::GetXLHashAsSequence( } // ============================================================================ +/*static*/ uno::Sequence< sal_Int8 > DocPasswordHelper::GenerateRandomByteSequence( sal_Int32 nLength ) +{ + uno::Sequence< sal_Int8 > aResult( nLength ); + + TimeValue aTime; + osl_getSystemTime( &aTime ); + rtlRandomPool aRandomPool = rtl_random_createPool (); + rtl_random_addBytes ( aRandomPool, &aTime, 8 ); + rtl_random_getBytes ( aRandomPool, aResult.getArray(), nLength ); + rtl_random_destroyPool ( aRandomPool ); -/*static*/ OUString DocPasswordHelper::requestAndVerifyDocPassword( + return aResult; +} + + +// ============================================================================ +/*static*/ uno::Sequence< sal_Int8 > DocPasswordHelper::GenerateStd97Key( const ::rtl::OUString& aPassword, const uno::Sequence< sal_Int8 >& aDocId ) +{ + uno::Sequence< sal_Int8 > aResultKey; + if ( aPassword.getLength() && aDocId.getLength() == 16 ) + { + sal_uInt16 pPassData[16]; + rtl_zeroMemory( pPassData, sizeof(pPassData) ); + + sal_Int32 nPassLen = ::std::min< sal_Int32 >( aPassword.getLength(), 15 ); + rtl_copyMemory( pPassData, aPassword.getStr(), nPassLen * sizeof(pPassData[0]) ); + + aResultKey = GenerateStd97Key( pPassData, aDocId ); + } + + return aResultKey; +} + +// ============================================================================ +/*static*/ uno::Sequence< sal_Int8 > DocPasswordHelper::GenerateStd97Key( const sal_uInt16 pPassData[16], const uno::Sequence< sal_Int8 >& aDocId ) +{ + uno::Sequence< sal_Int8 > aResultKey; + if ( pPassData[0] && aDocId.getLength() == 16 ) + { + sal_uInt8 pKeyData[64]; + rtl_zeroMemory( pKeyData, sizeof(pKeyData) ); + + sal_Int32 nInd = 0; + + // Fill PassData into KeyData. + for ( nInd = 0; nInd < 16 && pPassData[nInd]; nInd++) + { + pKeyData[2*nInd] = sal::static_int_cast< sal_uInt8 >( (pPassData[nInd] >> 0) & 0xff ); + pKeyData[2*nInd + 1] = sal::static_int_cast< sal_uInt8 >( (pPassData[nInd] >> 8) & 0xff ); + } + + pKeyData[2*nInd] = 0x80; + pKeyData[56] = sal::static_int_cast< sal_uInt8 >( nInd << 4 ); + + // Fill raw digest of KeyData into KeyData. + rtlDigest hDigest = rtl_digest_create ( rtl_Digest_AlgorithmMD5 ); + (void)rtl_digest_updateMD5 ( + hDigest, pKeyData, sizeof(pKeyData)); + (void)rtl_digest_rawMD5 ( + hDigest, pKeyData, RTL_DIGEST_LENGTH_MD5); + + // Update digest with KeyData and Unique. + for ( nInd = 0; nInd < 16; nInd++ ) + { + rtl_digest_updateMD5( hDigest, pKeyData, 5 ); + rtl_digest_updateMD5( hDigest, (const sal_uInt8*)aDocId.getConstArray(), aDocId.getLength() ); + } + + // Update digest with padding. + pKeyData[16] = 0x80; + rtl_zeroMemory( pKeyData + 17, sizeof(pKeyData) - 17 ); + pKeyData[56] = 0x80; + pKeyData[57] = 0x0a; + + rtl_digest_updateMD5( hDigest, &(pKeyData[16]), sizeof(pKeyData) - 16 ); + + // Fill raw digest of above updates + aResultKey.realloc( RTL_DIGEST_LENGTH_MD5 ); + rtl_digest_rawMD5 ( hDigest, (sal_uInt8*)aResultKey.getArray(), aResultKey.getLength() ); + + // Erase KeyData array and leave. + rtl_zeroMemory( pKeyData, sizeof(pKeyData) ); + } + + return aResultKey; +} + +// ============================================================================ + +/*static*/ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > DocPasswordHelper::requestAndVerifyDocPassword( IDocPasswordVerifier& rVerifier, + const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& rMediaEncData, const OUString& rMediaPassword, const Reference< XInteractionHandler >& rxInteractHandler, const OUString& rDocumentName, @@ -292,7 +371,7 @@ Sequence< sal_Int8 > DocPasswordHelper::GetXLHashAsSequence( const ::std::vector< OUString >* pDefaultPasswords, bool* pbIsDefaultPassword ) { - OUString aPassword; + ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > aEncData; DocPasswordVerifierResult eResult = DocPasswordVerifierResult_WRONG_PASSWORD; // first, try provided default passwords @@ -302,23 +381,32 @@ Sequence< sal_Int8 > DocPasswordHelper::GetXLHashAsSequence( { for( ::std::vector< OUString >::const_iterator aIt = pDefaultPasswords->begin(), aEnd = pDefaultPasswords->end(); (eResult == DocPasswordVerifierResult_WRONG_PASSWORD) && (aIt != aEnd); ++aIt ) { - aPassword = *aIt; - OSL_ENSURE( aPassword.getLength() > 0, "DocPasswordHelper::requestAndVerifyDocPassword - unexpected empty default password" ); - if( aPassword.getLength() > 0 ) + OSL_ENSURE( aIt->getLength() > 0, "DocPasswordHelper::requestAndVerifyDocPassword - unexpected empty default password" ); + if( aIt->getLength() > 0 ) { - eResult = rVerifier.verifyPassword( aPassword ); + eResult = rVerifier.verifyPassword( *aIt, aEncData ); if( pbIsDefaultPassword ) *pbIsDefaultPassword = eResult == DocPasswordVerifierResult_OK; } } } + // try media encryption data (skip, if result is OK or ABORT) + if( eResult == DocPasswordVerifierResult_WRONG_PASSWORD ) + { + if( rMediaEncData.getLength() > 0 ) + { + eResult = rVerifier.verifyEncryptionData( rMediaEncData ); + if( eResult == DocPasswordVerifierResult_OK ) + aEncData = rMediaEncData; + } + } + // try media password (skip, if result is OK or ABORT) if( eResult == DocPasswordVerifierResult_WRONG_PASSWORD ) { - aPassword = rMediaPassword; - if( aPassword.getLength() > 0 ) - eResult = rVerifier.verifyPassword( aPassword ); + if( rMediaPassword.getLength() > 0 ) + eResult = rVerifier.verifyPassword( rMediaPassword, aEncData ); } // request a password (skip, if result is OK or ABORT) @@ -332,9 +420,8 @@ Sequence< sal_Int8 > DocPasswordHelper::GetXLHashAsSequence( rxInteractHandler->handle( xRequest ); if( pRequest->isPassword() ) { - aPassword = pRequest->getPassword(); - if( aPassword.getLength() > 0 ) - eResult = rVerifier.verifyPassword( aPassword ); + if( pRequest->getPassword().getLength() > 0 ) + eResult = rVerifier.verifyPassword( pRequest->getPassword(), aEncData ); } else { @@ -347,15 +434,17 @@ Sequence< sal_Int8 > DocPasswordHelper::GetXLHashAsSequence( { } - return (eResult == DocPasswordVerifierResult_OK) ? aPassword : OUString(); + return (eResult == DocPasswordVerifierResult_OK) ? aEncData : uno::Sequence< beans::NamedValue >(); } -/*static*/ OUString DocPasswordHelper::requestAndVerifyDocPassword( +/*static*/ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > DocPasswordHelper::requestAndVerifyDocPassword( IDocPasswordVerifier& rVerifier, MediaDescriptor& rMediaDesc, DocPasswordRequestType eRequestType, const ::std::vector< OUString >* pDefaultPasswords ) { + uno::Sequence< beans::NamedValue > aMediaEncData = rMediaDesc.getUnpackedValueOrDefault( + MediaDescriptor::PROP_ENCRYPTIONDATA(), uno::Sequence< beans::NamedValue >() ); OUString aMediaPassword = rMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_PASSWORD(), OUString() ); Reference< XInteractionHandler > xInteractHandler = rMediaDesc.getUnpackedValueOrDefault( @@ -364,14 +453,17 @@ Sequence< sal_Int8 > DocPasswordHelper::GetXLHashAsSequence( MediaDescriptor::PROP_URL(), OUString() ); bool bIsDefaultPassword = false; - OUString aPassword = requestAndVerifyDocPassword( - rVerifier, aMediaPassword, xInteractHandler, aDocumentName, eRequestType, pDefaultPasswords, &bIsDefaultPassword ); + uno::Sequence< beans::NamedValue > aEncryptionData = requestAndVerifyDocPassword( + rVerifier, aMediaEncData, aMediaPassword, xInteractHandler, aDocumentName, eRequestType, pDefaultPasswords, &bIsDefaultPassword ); + + rMediaDesc.erase( MediaDescriptor::PROP_PASSWORD() ); + rMediaDesc.erase( MediaDescriptor::PROP_ENCRYPTIONDATA() ); // insert valid password into media descriptor (but not a default password) - if( (aPassword.getLength() > 0) && !bIsDefaultPassword ) - rMediaDesc[ MediaDescriptor::PROP_PASSWORD() ] <<= aPassword; + if( (aEncryptionData.getLength() > 0) && !bIsDefaultPassword ) + rMediaDesc[ MediaDescriptor::PROP_ENCRYPTIONDATA() ] <<= aEncryptionData; - return aPassword; + return aEncryptionData; } // ============================================================================ diff --git a/comphelper/source/misc/makefile.mk b/comphelper/source/misc/makefile.mk index cecba554b332..0bb4defb4165 100644 --- a/comphelper/source/misc/makefile.mk +++ b/comphelper/source/misc/makefile.mk @@ -74,7 +74,6 @@ SLOFILES= \ $(SLO)$/officeresourcebundle.obj \ $(SLO)$/officerestartmanager.obj \ $(SLO)$/proxyaggregation.obj \ - $(SLO)$/querydeep.obj \ $(SLO)$/regpathhelper.obj \ $(SLO)$/scopeguard.obj \ $(SLO)$/SelectionMultiplex.obj \ diff --git a/comphelper/source/misc/mediadescriptor.cxx b/comphelper/source/misc/mediadescriptor.cxx index 9e02afe8c56c..e0b3e797264a 100644 --- a/comphelper/source/misc/mediadescriptor.cxx +++ b/comphelper/source/misc/mediadescriptor.cxx @@ -28,6 +28,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_comphelper.hxx" #include <comphelper/mediadescriptor.hxx> +#include <comphelper/namedvaluecollection.hxx> #include <comphelper/stillreadwriteinteraction.hxx> #include <com/sun/star/ucb/XContent.hpp> @@ -112,6 +113,12 @@ const ::rtl::OUString& MediaDescriptor::PROP_DOCUMENTSERVICE() return sProp; } +const ::rtl::OUString& MediaDescriptor::PROP_ENCRYPTIONDATA() +{ + static const ::rtl::OUString sProp(RTL_CONSTASCII_USTRINGPARAM("EncryptionData")); + return sProp; +} + const ::rtl::OUString& MediaDescriptor::PROP_EXTENSION() { static const ::rtl::OUString sProp(RTL_CONSTASCII_USTRINGPARAM("Extension")); @@ -477,27 +484,30 @@ sal_Bool MediaDescriptor::isStreamReadOnly() const css::uno::Any MediaDescriptor::getComponentDataEntry( const ::rtl::OUString& rName ) const { - SequenceAsHashMap aCompDataMap( getUnpackedValueOrDefault( PROP_COMPONENTDATA(), ComponentDataSequence() ) ); - SequenceAsHashMap::iterator aIt = aCompDataMap.find( rName ); - return (aIt == aCompDataMap.end()) ? css::uno::Any() : aIt->second; + css::uno::Any aEntry; + SequenceAsHashMap::const_iterator aPropertyIter = find( PROP_COMPONENTDATA() ); + if( aPropertyIter != end() ) + return NamedValueCollection( aPropertyIter->second ).get( rName ); + return css::uno::Any(); } void MediaDescriptor::setComponentDataEntry( const ::rtl::OUString& rName, const css::uno::Any& rValue ) { if( rValue.hasValue() ) { - // get or craete the 'ComponentData' property entry + // get or create the 'ComponentData' property entry css::uno::Any& rCompDataAny = operator[]( PROP_COMPONENTDATA() ); - // check type, insert the value - OSL_ENSURE( !rCompDataAny.hasValue() || rCompDataAny.has< ComponentDataSequence >(), - "MediaDescriptor::setComponentDataEntry - incompatible 'ComponentData' property in media descriptor" ); - if( !rCompDataAny.hasValue() || rCompDataAny.has< ComponentDataSequence >() ) + // insert the value (retain sequence type, create NamedValue elements by default) + bool bHasNamedValues = !rCompDataAny.hasValue() || rCompDataAny.has< css::uno::Sequence< css::beans::NamedValue > >(); + bool bHasPropValues = rCompDataAny.has< css::uno::Sequence< css::beans::PropertyValue > >(); + OSL_ENSURE( bHasNamedValues || bHasPropValues, "MediaDescriptor::setComponentDataEntry - incompatible 'ComponentData' property in media descriptor" ); + if( bHasNamedValues || bHasPropValues ) { // insert or overwrite the passed value SequenceAsHashMap aCompDataMap( rCompDataAny ); aCompDataMap[ rName ] = rValue; - // write back the sequence (sal_False = use NamedValue instead of PropertyValue) - rCompDataAny = aCompDataMap.getAsConstAny( sal_False ); + // write back the sequence (restore sequence with correct element type) + rCompDataAny = aCompDataMap.getAsConstAny( bHasPropValues ); } } else @@ -512,18 +522,20 @@ void MediaDescriptor::clearComponentDataEntry( const ::rtl::OUString& rName ) SequenceAsHashMap::iterator aPropertyIter = find( PROP_COMPONENTDATA() ); if( aPropertyIter != end() ) { - OSL_ENSURE( aPropertyIter->second.has< ComponentDataSequence >(), - "MediaDescriptor::clearComponentDataEntry - incompatible 'ComponentData' property in media descriptor" ); - if( aPropertyIter->second.has< ComponentDataSequence >() ) + css::uno::Any& rCompDataAny = aPropertyIter->second; + bool bHasNamedValues = rCompDataAny.has< css::uno::Sequence< css::beans::NamedValue > >(); + bool bHasPropValues = rCompDataAny.has< css::uno::Sequence< css::beans::PropertyValue > >(); + OSL_ENSURE( bHasNamedValues || bHasPropValues, "MediaDescriptor::clearComponentDataEntry - incompatible 'ComponentData' property in media descriptor" ); + if( bHasNamedValues || bHasPropValues ) { // remove the value with the passed name - SequenceAsHashMap aCompDataMap( aPropertyIter->second ); + SequenceAsHashMap aCompDataMap( rCompDataAny ); aCompDataMap.erase( rName ); // write back the sequence, or remove it completely if it is empty if( aCompDataMap.empty() ) erase( aPropertyIter ); else - aPropertyIter->second = aCompDataMap.getAsConstAny( sal_False ); + rCompDataAny = aCompDataMap.getAsConstAny( bHasPropValues ); } } } diff --git a/comphelper/source/misc/mimeconfighelper.cxx b/comphelper/source/misc/mimeconfighelper.cxx index b677c977739e..5be9df3d61b6 100644 --- a/comphelper/source/misc/mimeconfighelper.cxx +++ b/comphelper/source/misc/mimeconfighelper.cxx @@ -35,6 +35,7 @@ #include <comphelper/mimeconfighelper.hxx> #include <comphelper/classids.hxx> #include <comphelper/sequenceashashmap.hxx> +#include <comphelper/documentconstants.hxx> using namespace ::com::sun::star; @@ -187,6 +188,46 @@ uno::Reference< container::XNameAccess > MimeConfigurationHelper::GetMediaTypeCo return m_xMediaTypeConfig; } + +//----------------------------------------------------------------------- +uno::Reference< container::XNameAccess > MimeConfigurationHelper::GetFilterFactory() +{ + osl::MutexGuard aGuard( m_aMutex ); + + if ( !m_xFilterFactory.is() ) + m_xFilterFactory.set( + m_xFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.document.FilterFactory" ) ), + uno::UNO_QUERY ); + + return m_xFilterFactory; +} + +//----------------------------------------------------------------------- +sal_Int32 MimeConfigurationHelper::GetFilterFlags( const ::rtl::OUString& aFilterName ) +{ + sal_Int32 nFlags = 0; + try + { + if ( aFilterName.getLength() ) + { + uno::Reference< container::XNameAccess > xFilterFactory( + GetFilterFactory(), + uno::UNO_SET_THROW ); + + uno::Any aFilterAny = xFilterFactory->getByName( aFilterName ); + uno::Sequence< beans::PropertyValue > aData; + if ( aFilterAny >>= aData ) + { + SequenceAsHashMap aFilterHM( aData ); + nFlags = aFilterHM.getUnpackedValueOrDefault( ::rtl::OUString::createFromAscii( "Flags" ), (sal_Int32)0 ); + } + } + } catch( uno::Exception& ) + {} + + return nFlags; +} + //------------------------------------------------------------------------- ::rtl::OUString MimeConfigurationHelper::GetDocServiceNameFromFilter( const ::rtl::OUString& aFilterName ) { @@ -195,8 +236,8 @@ uno::Reference< container::XNameAccess > MimeConfigurationHelper::GetMediaTypeCo try { uno::Reference< container::XNameAccess > xFilterFactory( - m_xFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.document.FilterFactory" ) ), - uno::UNO_QUERY_THROW ); + GetFilterFactory(), + uno::UNO_SET_THROW ); uno::Any aFilterAnyData = xFilterFactory->getByName( aFilterName ); uno::Sequence< beans::PropertyValue > aFilterData; @@ -668,36 +709,17 @@ uno::Sequence< beans::NamedValue > MimeConfigurationHelper::GetObjectPropsByDocu sal_Bool MimeConfigurationHelper::AddFilterNameCheckOwnFile( uno::Sequence< beans::PropertyValue >& aMediaDescr ) { + sal_Bool bResult = sal_False; + ::rtl::OUString aFilterName = UpdateMediaDescriptorWithFilterName( aMediaDescr, sal_False ); if ( aFilterName.getLength() ) { - try - { - uno::Reference< container::XNameAccess > xFilterFactory( - m_xFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.document.FilterFactory" ) ), - uno::UNO_QUERY_THROW ); - - uno::Any aFilterAnyData = xFilterFactory->getByName( aFilterName ); - uno::Sequence< beans::PropertyValue > aFilterData; - if ( aFilterAnyData >>= aFilterData ) - { - for ( sal_Int32 nInd = 0; nInd < aFilterData.getLength(); nInd++ ) - if ( aFilterData[nInd].Name.equalsAscii( "Flags" ) ) - { - uno::Any aVal = aFilterData[nInd].Value; - sal_Int32 nFlags = 0; - // check the OWN flag - if ( ( aFilterData[nInd].Value >>= nFlags ) && ( nFlags & 0x20 ) ) - return sal_True; - break; - } - } - } - catch( uno::Exception& ) - {} + sal_Int32 nFlags = GetFilterFlags( aFilterName ); + // check the OWN flag + bResult = ( nFlags & SFX_FILTER_OWN ); } - return sal_False; + return bResult; } //----------------------------------------------------------- @@ -709,7 +731,7 @@ sal_Bool MimeConfigurationHelper::AddFilterNameCheckOwnFile( try { uno::Reference< container::XContainerQuery > xFilterQuery( - m_xFactory->createInstance( ::rtl::OUString::createFromAscii( "com.sun.star.document.FilterFactory" ) ), + GetFilterFactory(), uno::UNO_QUERY_THROW ); uno::Sequence< beans::NamedValue > aSearchRequest( 2 ); @@ -734,14 +756,15 @@ sal_Bool MimeConfigurationHelper::AddFilterNameCheckOwnFile( (sal_Int32)0 ); // that should be import, export, own filter and not a template filter ( TemplatePath flag ) - if ( ( ( nFlags & 0x23L ) == 0x23L ) && !( nFlags & 0x10 ) ) + sal_Int32 nRequired = ( SFX_FILTER_OWN | SFX_FILTER_EXPORT | SFX_FILTER_IMPORT ); + if ( ( ( nFlags & nRequired ) == nRequired ) && !( nFlags & SFX_FILTER_TEMPLATEPATH ) ) { // if there are more than one filter the preffered one should be used // if there is no preffered filter the first one will be used - if ( !aResult.getLength() || ( nFlags & 0x10000000L ) ) + if ( !aResult.getLength() || ( nFlags & SFX_FILTER_PREFERED ) ) aResult = aPropsHM.getUnpackedValueOrDefault( ::rtl::OUString::createFromAscii( "Name" ), ::rtl::OUString() ); - if ( nFlags & 0x10000000L ) + if ( nFlags & SFX_FILTER_PREFERED ) break; // the preffered filter was found } } @@ -752,6 +775,116 @@ sal_Bool MimeConfigurationHelper::AddFilterNameCheckOwnFile( return aResult; } + +//------------------------------------------------------------------------- +::rtl::OUString MimeConfigurationHelper::GetExportFilterFromImportFilter( const ::rtl::OUString& aImportFilterName ) +{ + ::rtl::OUString aExportFilterName; + + try + { + if ( aImportFilterName.getLength() ) + { + uno::Reference< container::XNameAccess > xFilterFactory( + GetFilterFactory(), + uno::UNO_SET_THROW ); + + uno::Any aImpFilterAny = xFilterFactory->getByName( aImportFilterName ); + uno::Sequence< beans::PropertyValue > aImpData; + if ( aImpFilterAny >>= aImpData ) + { + SequenceAsHashMap aImpFilterHM( aImpData ); + sal_Int32 nFlags = aImpFilterHM.getUnpackedValueOrDefault( ::rtl::OUString::createFromAscii( "Flags" ), + (sal_Int32)0 ); + + if ( !( nFlags & SFX_FILTER_IMPORT ) ) + { + OSL_ENSURE( sal_False, "This is no import filter!" ); + throw uno::Exception(); + } + + if ( nFlags & SFX_FILTER_EXPORT ) + { + aExportFilterName = aImportFilterName; + } + else + { + ::rtl::OUString aDocumentServiceName = aImpFilterHM.getUnpackedValueOrDefault( ::rtl::OUString::createFromAscii( "DocumentService" ), ::rtl::OUString() ); + ::rtl::OUString aTypeName = aImpFilterHM.getUnpackedValueOrDefault( ::rtl::OUString::createFromAscii( "Type" ), ::rtl::OUString() ); + + OSL_ENSURE( aDocumentServiceName.getLength() && aTypeName.getLength(), "Incomplete filter data!" ); + if ( aDocumentServiceName.getLength() && aTypeName.getLength() ) + { + uno::Sequence< beans::NamedValue > aSearchRequest( 2 ); + aSearchRequest[0].Name = ::rtl::OUString::createFromAscii( "Type" ); + aSearchRequest[0].Value <<= aTypeName; + aSearchRequest[1].Name = ::rtl::OUString::createFromAscii( "DocumentService" ); + aSearchRequest[1].Value <<= aDocumentServiceName; + + uno::Sequence< beans::PropertyValue > aExportFilterProps = SearchForFilter( + uno::Reference< container::XContainerQuery >( xFilterFactory, uno::UNO_QUERY_THROW ), + aSearchRequest, + SFX_FILTER_EXPORT, + SFX_FILTER_INTERNAL ); + + if ( aExportFilterProps.getLength() ) + { + SequenceAsHashMap aExpPropsHM( aExportFilterProps ); + aExportFilterName = aExpPropsHM.getUnpackedValueOrDefault( ::rtl::OUString::createFromAscii( "Name" ), ::rtl::OUString() ); + } + } + } + } + } + } + catch( uno::Exception& ) + {} + + return aExportFilterName; +} + +//------------------------------------------------------------------------- +// static +uno::Sequence< beans::PropertyValue > MimeConfigurationHelper::SearchForFilter( + const uno::Reference< container::XContainerQuery >& xFilterQuery, + const uno::Sequence< beans::NamedValue >& aSearchRequest, + sal_Int32 nMustFlags, + sal_Int32 nDontFlags ) +{ + uno::Sequence< beans::PropertyValue > aFilterProps; + uno::Reference< container::XEnumeration > xFilterEnum = + xFilterQuery->createSubSetEnumerationByProperties( aSearchRequest ); + + // the first default filter will be taken, + // if there is no filter with flag default the first acceptable filter will be taken + if ( xFilterEnum.is() ) + { + while ( xFilterEnum->hasMoreElements() ) + { + uno::Sequence< beans::PropertyValue > aProps; + if ( xFilterEnum->nextElement() >>= aProps ) + { + SequenceAsHashMap aPropsHM( aProps ); + sal_Int32 nFlags = aPropsHM.getUnpackedValueOrDefault( ::rtl::OUString::createFromAscii( "Flags" ), + (sal_Int32)0 ); + if ( ( ( nFlags & nMustFlags ) == nMustFlags ) && !( nFlags & nDontFlags ) ) + { + if ( ( nFlags & SFX_FILTER_DEFAULT ) == SFX_FILTER_DEFAULT ) + { + aFilterProps = aProps; + break; + } + else if ( !aFilterProps.getLength() ) + aFilterProps = aProps; + } + } + } + } + + return aFilterProps; +} + + //------------------------------------------------------------------------- sal_Bool MimeConfigurationHelper::ClassIDsEqual( const uno::Sequence< sal_Int8 >& aClassID1, const uno::Sequence< sal_Int8 >& aClassID2 ) { @@ -764,7 +897,8 @@ sal_Bool MimeConfigurationHelper::ClassIDsEqual( const uno::Sequence< sal_Int8 > return sal_True; } -//---------------------------------------------- + +//------------------------------------------------------------------------- uno::Sequence< sal_Int8 > MimeConfigurationHelper::GetSequenceClassID( sal_uInt32 n1, sal_uInt16 n2, sal_uInt16 n3, sal_uInt8 b8, sal_uInt8 b9, sal_uInt8 b10, sal_uInt8 b11, sal_uInt8 b12, sal_uInt8 b13, sal_uInt8 b14, sal_uInt8 b15 ) @@ -789,6 +923,8 @@ uno::Sequence< sal_Int8 > MimeConfigurationHelper::GetSequenceClassID( sal_uInt3 return aResult; } + +//------------------------------------------------------------------------- uno::Sequence<sal_Int8> MimeConfigurationHelper::GetSequenceClassIDFromObjectName(const ::rtl::OUString& _sObjectName) { uno::Sequence<sal_Int8> aClassId; diff --git a/comphelper/source/misc/namedvaluecollection.cxx b/comphelper/source/misc/namedvaluecollection.cxx index 8bab7fa3d7c7..566e5526019c 100644 --- a/comphelper/source/misc/namedvaluecollection.cxx +++ b/comphelper/source/misc/namedvaluecollection.cxx @@ -99,21 +99,7 @@ namespace comphelper NamedValueCollection::NamedValueCollection( const Any& _rElements ) :m_pImpl( new NamedValueCollection_Impl ) { - Sequence< NamedValue > aNamedValues; - Sequence< PropertyValue > aPropertyValues; - NamedValue aNamedValue; - PropertyValue aPropertyValue; - - if ( _rElements >>= aNamedValues ) - impl_assign( aNamedValues ); - else if ( _rElements >>= aPropertyValues ) - impl_assign( aPropertyValues ); - else if ( _rElements >>= aNamedValue ) - impl_assign( Sequence< NamedValue >( &aNamedValue, 1 ) ); - else if ( _rElements >>= aPropertyValue ) - impl_assign( Sequence< PropertyValue >( &aPropertyValue, 1 ) ); - else - OSL_ENSURE( !_rElements.hasValue(), "NamedValueCollection::NamedValueCollection(Any): unsupported type!" ); + impl_assign( _rElements ); } //-------------------------------------------------------------------- @@ -170,6 +156,39 @@ namespace comphelper } //-------------------------------------------------------------------- + ::std::vector< ::rtl::OUString > NamedValueCollection::getNames() const + { + ::std::vector< ::rtl::OUString > aNames( m_pImpl->aValues.size() ); + ::std::transform( + m_pImpl->aValues.begin(), + m_pImpl->aValues.end(), + aNames.begin(), + ::std::select1st< NamedValueRepository::value_type >() + ); + return aNames; + } + + //-------------------------------------------------------------------- + void NamedValueCollection::impl_assign( const Any& i_rWrappedElements ) + { + Sequence< NamedValue > aNamedValues; + Sequence< PropertyValue > aPropertyValues; + NamedValue aNamedValue; + PropertyValue aPropertyValue; + + if ( i_rWrappedElements >>= aNamedValues ) + impl_assign( aNamedValues ); + else if ( i_rWrappedElements >>= aPropertyValues ) + impl_assign( aPropertyValues ); + else if ( i_rWrappedElements >>= aNamedValue ) + impl_assign( Sequence< NamedValue >( &aNamedValue, 1 ) ); + else if ( i_rWrappedElements >>= aPropertyValue ) + impl_assign( Sequence< PropertyValue >( &aPropertyValue, 1 ) ); + else + OSL_ENSURE( !i_rWrappedElements.hasValue(), "NamedValueCollection::impl_assign(Any): unsupported type!" ); + } + + //-------------------------------------------------------------------- void NamedValueCollection::impl_assign( const Sequence< Any >& _rArguments ) { { diff --git a/comphelper/source/misc/querydeep.cxx b/comphelper/source/misc/querydeep.cxx deleted file mode 100644 index 92e475686783..000000000000 --- a/comphelper/source/misc/querydeep.cxx +++ /dev/null @@ -1,76 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_comphelper.hxx" -#include <comphelper/querydeep.hxx> -#include <typelib/typedescription.h> - -//__________________________________________________________________________________________________ - -sal_Bool comphelper::isDerivedFrom( - const ::com::sun::star::uno::Type & rBaseType, - const ::com::sun::star::uno::Type & rType ) -{ - using namespace ::com::sun::star::uno; - - TypeClass eClass = rBaseType.getTypeClass(); - - if (eClass != TypeClass_INTERFACE) - return sal_False; - - // supported TypeClass - do the types match ? - if (eClass != rType.getTypeClass()) - return sal_False; - - sal_Bool bRet; - - // shortcut for simple case - if (rBaseType == ::getCppuType(static_cast<const Reference< XInterface > *>(0))) - { - bRet = sal_True; - } - else - { - // now ask in cppu (aka typelib) - ::typelib_TypeDescription *pBaseTD = 0, *pTD = 0; - - rBaseType. getDescription(&pBaseTD); - rType. getDescription(&pTD); - - // interfaces are assignable to a base - bRet = ::typelib_typedescription_isAssignableFrom(pBaseTD, pTD); - - ::typelib_typedescription_release(pBaseTD); - ::typelib_typedescription_release(pTD); - } - - return bRet; -} - - - diff --git a/comphelper/source/misc/storagehelper.cxx b/comphelper/source/misc/storagehelper.cxx index db5ba71cd876..60ffa965fcf1 100644 --- a/comphelper/source/misc/storagehelper.cxx +++ b/comphelper/source/misc/storagehelper.cxx @@ -28,12 +28,15 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_comphelper.hxx" #include <com/sun/star/embed/ElementModes.hpp> -#include <com/sun/star/embed/XEncryptionProtectedSource.hpp> +#include <com/sun/star/embed/XEncryptionProtectedSource2.hpp> #include <com/sun/star/ucb/XSimpleFileAccess.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/beans/PropertyValue.hpp> +#include <com/sun/star/beans/NamedValue.hpp> #include <com/sun/star/beans/IllegalTypeException.hpp> +#include <rtl/digest.h> + #include <ucbhelper/content.hxx> #include <comphelper/fileformat.h> @@ -236,16 +239,16 @@ uno::Reference< io::XInputStream > OStorageHelper::GetInputStreamFromURL( } // ---------------------------------------------------------------------- -void OStorageHelper::SetCommonStoragePassword( +void OStorageHelper::SetCommonStorageEncryptionData( const uno::Reference< embed::XStorage >& xStorage, - const ::rtl::OUString& aPass ) + const uno::Sequence< beans::NamedValue >& aEncryptionData ) throw ( uno::Exception ) { - uno::Reference< embed::XEncryptionProtectedSource > xEncrSet( xStorage, uno::UNO_QUERY ); + uno::Reference< embed::XEncryptionProtectedSource2 > xEncrSet( xStorage, uno::UNO_QUERY ); if ( !xEncrSet.is() ) throw io::IOException(); // TODO - xEncrSet->setEncryptionPassword( aPass ); + xEncrSet->setEncryptionData( aEncryptionData ); } // ---------------------------------------------------------------------- @@ -419,6 +422,45 @@ uno::Reference< embed::XStorage > OStorageHelper::GetStorageOfFormatFromStream( } // ---------------------------------------------------------------------- +uno::Sequence< beans::NamedValue > OStorageHelper::CreatePackageEncryptionData( const ::rtl::OUString& aPassword ) +{ + // TODO/LATER: Should not the method be part of DocPasswordHelper? + uno::Sequence< beans::NamedValue > aEncryptionData; + if ( aPassword.getLength() ) + { + // MS_1252 encoding was used for SO60 document format password encoding, + // this encoding supports only a minor subset of nonascii characters, + // but for compatibility reasons it has to be used for old document formats + aEncryptionData.realloc( 2 ); + aEncryptionData[0].Name = PACKAGE_ENCRYPTIONDATA_SHA1UTF8; + aEncryptionData[1].Name = PACKAGE_ENCRYPTIONDATA_SHA1MS1252; + + rtl_TextEncoding pEncoding[2] = { RTL_TEXTENCODING_UTF8, RTL_TEXTENCODING_MS_1252 }; + + for ( sal_Int32 nInd = 0; nInd < 2; nInd++ ) + { + ::rtl::OString aByteStrPass = ::rtl::OUStringToOString( aPassword, pEncoding[nInd] ); + + sal_uInt8 pBuffer[RTL_DIGEST_LENGTH_SHA1]; + rtlDigestError nError = rtl_digest_SHA1( aByteStrPass.getStr(), + aByteStrPass.getLength(), + pBuffer, + RTL_DIGEST_LENGTH_SHA1 ); + + if ( nError != rtl_Digest_E_None ) + { + aEncryptionData.realloc( 0 ); + break; + } + + aEncryptionData[nInd].Value <<= uno::Sequence< sal_Int8 >( (sal_Int8*)pBuffer, RTL_DIGEST_LENGTH_SHA1 ); + } + } + + return aEncryptionData; +} + +// ---------------------------------------------------------------------- sal_Bool OStorageHelper::IsValidZipEntryFileName( const ::rtl::OUString& aName, sal_Bool bSlashAllowed ) { return IsValidZipEntryFileName( aName.getStr(), aName.getLength(), bSlashAllowed ); diff --git a/comphelper/source/officeinstdir/officeinstallationdirectories.cxx b/comphelper/source/officeinstdir/officeinstallationdirectories.cxx index 3ce0d4de865a..ebeedc92839d 100644 --- a/comphelper/source/officeinstdir/officeinstallationdirectories.cxx +++ b/comphelper/source/officeinstdir/officeinstallationdirectories.cxx @@ -101,10 +101,12 @@ static bool makeCanonicalFileURL( rtl::OUString & rURL ) OfficeInstallationDirectories::OfficeInstallationDirectories( const uno::Reference< uno::XComponentContext > & xCtx ) -: m_aOfficeDirMacro( RTL_CONSTASCII_USTRINGPARAM( "$(baseinsturl)" ) ), +: m_aOfficeBrandDirMacro( RTL_CONSTASCII_USTRINGPARAM( "$(brandbaseurl)" ) ), + m_aOfficeBaseDirMacro( RTL_CONSTASCII_USTRINGPARAM( "$(baseinsturl)" ) ), m_aUserDirMacro( RTL_CONSTASCII_USTRINGPARAM( "$(userdataurl)" ) ), m_xCtx( xCtx ), - m_pOfficeDir( 0 ), + m_pOfficeBrandDir( 0 ), + m_pOfficeBaseDir( 0 ), m_pUserDir( 0 ) { } @@ -113,6 +115,9 @@ OfficeInstallationDirectories::OfficeInstallationDirectories( // virtual OfficeInstallationDirectories::~OfficeInstallationDirectories() { + delete m_pOfficeBrandDir; + delete m_pOfficeBaseDir; + delete m_pUserDir; } //========================================================================= @@ -124,9 +129,8 @@ rtl::OUString SAL_CALL OfficeInstallationDirectories::getOfficeInstallationDirectoryURL() throw ( uno::RuntimeException ) { - // late init m_pOfficeDir and m_pUserDir initDirs(); - return rtl::OUString( *m_pOfficeDir ); + return rtl::OUString( *m_pOfficeBrandDir ); } //========================================================================= @@ -135,7 +139,6 @@ rtl::OUString SAL_CALL OfficeInstallationDirectories::getOfficeUserDataDirectoryURL() throw ( uno::RuntimeException ) { - // late init m_pOfficeDir and m_pUserDir initDirs(); return rtl::OUString( *m_pUserDir ); } @@ -149,29 +152,39 @@ OfficeInstallationDirectories::makeRelocatableURL( const rtl::OUString& URL ) { if ( URL.getLength() > 0 ) { - // late init m_pOfficeDir and m_pUserDir initDirs(); rtl::OUString aCanonicalURL( URL ); makeCanonicalFileURL( aCanonicalURL ); - sal_Int32 nIndex = aCanonicalURL.indexOf( *m_pOfficeDir ); + sal_Int32 nIndex = aCanonicalURL.indexOf( *m_pOfficeBrandDir ); if ( nIndex != -1 ) { return rtl::OUString( URL.replaceAt( nIndex, - m_pOfficeDir->getLength(), - m_aOfficeDirMacro ) ); + m_pOfficeBrandDir->getLength(), + m_aOfficeBrandDirMacro ) ); } else { - nIndex = aCanonicalURL.indexOf( *m_pUserDir ); + nIndex = aCanonicalURL.indexOf( *m_pOfficeBaseDir ); if ( nIndex != -1 ) { return rtl::OUString( URL.replaceAt( nIndex, - m_pUserDir->getLength(), - m_aUserDirMacro ) ); + m_pOfficeBaseDir->getLength(), + m_aOfficeBaseDirMacro ) ); + } + else + { + nIndex = aCanonicalURL.indexOf( *m_pUserDir ); + if ( nIndex != -1 ) + { + return rtl::OUString( + URL.replaceAt( nIndex, + m_pUserDir->getLength(), + m_aUserDirMacro ) ); + } } } } @@ -186,29 +199,40 @@ OfficeInstallationDirectories::makeAbsoluteURL( const rtl::OUString& URL ) { if ( URL.getLength() > 0 ) { - sal_Int32 nIndex = URL.indexOf( m_aOfficeDirMacro ); + sal_Int32 nIndex = URL.indexOf( m_aOfficeBrandDirMacro ); if ( nIndex != -1 ) { - // late init m_pOfficeDir and m_pUserDir initDirs(); return rtl::OUString( URL.replaceAt( nIndex, - m_aOfficeDirMacro.getLength(), - *m_pOfficeDir ) ); + m_aOfficeBrandDirMacro.getLength(), + *m_pOfficeBrandDir ) ); } else { - nIndex = URL.indexOf( m_aUserDirMacro ); + nIndex = URL.indexOf( m_aOfficeBaseDirMacro ); if ( nIndex != -1 ) { - // late init m_pOfficeDir and m_pUserDir initDirs(); return rtl::OUString( URL.replaceAt( nIndex, - m_aUserDirMacro.getLength(), - *m_pUserDir ) ); + m_aOfficeBaseDirMacro.getLength(), + *m_pOfficeBaseDir ) ); + } + else + { + nIndex = URL.indexOf( m_aUserDirMacro ); + if ( nIndex != -1 ) + { + initDirs(); + + return rtl::OUString( + URL.replaceAt( nIndex, + m_aUserDirMacro.getLength(), + *m_pUserDir ) ); + } } } } @@ -300,13 +324,14 @@ OfficeInstallationDirectories::Create( void OfficeInstallationDirectories::initDirs() { - if ( m_pOfficeDir == 0 ) + if ( m_pOfficeBrandDir == 0 ) { osl::MutexGuard aGuard( m_aMutex ); - if ( m_pOfficeDir == 0 ) + if ( m_pOfficeBrandDir == 0 ) { - m_pOfficeDir = new rtl::OUString; - m_pUserDir = new rtl::OUString; + m_pOfficeBrandDir = new rtl::OUString; + m_pOfficeBaseDir = new rtl::OUString; + m_pUserDir = new rtl::OUString; uno::Reference< util::XMacroExpander > xExpander; @@ -320,15 +345,24 @@ void OfficeInstallationDirectories::initDirs() if ( xExpander.is() ) { - *m_pOfficeDir = + *m_pOfficeBrandDir = + xExpander->expandMacros( + rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "$BRAND_BASE_DIR" ) ) ); + + OSL_ENSURE( m_pOfficeBrandDir->getLength() > 0, + "Unable to obtain office brand installation directory!" ); + + makeCanonicalFileURL( *m_pOfficeBrandDir ); + + *m_pOfficeBaseDir = xExpander->expandMacros( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "${$BRAND_BASE_DIR/program/" SAL_CONFIGFILE( "bootstrap" ) ":BaseInstallation}" ) ) ); - OSL_ENSURE( m_pOfficeDir->getLength() > 0, - "Unable to obtain office installation directory!" ); + OSL_ENSURE( m_pOfficeBaseDir->getLength() > 0, + "Unable to obtain office base installation directory!" ); - makeCanonicalFileURL( *m_pOfficeDir ); + makeCanonicalFileURL( *m_pOfficeBaseDir ); *m_pUserDir = xExpander->expandMacros( @@ -336,7 +370,7 @@ void OfficeInstallationDirectories::initDirs() "${$BRAND_BASE_DIR/program/" SAL_CONFIGFILE( "bootstrap" ) ":UserInstallation}" ) ) ); OSL_ENSURE( m_pUserDir->getLength() > 0, - "Unable to obtain office user data directory!" ); + "Unable to obtain office user data directory!" ); makeCanonicalFileURL( *m_pUserDir ); } diff --git a/comphelper/source/officeinstdir/officeinstallationdirectories.hxx b/comphelper/source/officeinstdir/officeinstallationdirectories.hxx index 2ffb3582718a..9c56f7ce80fd 100644 --- a/comphelper/source/officeinstdir/officeinstallationdirectories.hxx +++ b/comphelper/source/officeinstdir/officeinstallationdirectories.hxx @@ -94,11 +94,13 @@ public: private: void initDirs(); - rtl::OUString m_aOfficeDirMacro; + rtl::OUString m_aOfficeBrandDirMacro; + rtl::OUString m_aOfficeBaseDirMacro; rtl::OUString m_aUserDirMacro; com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > m_xCtx; - rtl::OUString * m_pOfficeDir; + rtl::OUString * m_pOfficeBrandDir; + rtl::OUString * m_pOfficeBaseDir; rtl::OUString * m_pUserDir; }; diff --git a/comphelper/source/property/propagg.cxx b/comphelper/source/property/propagg.cxx index e796c29eba90..9c2fd868d973 100644 --- a/comphelper/source/property/propagg.cxx +++ b/comphelper/source/property/propagg.cxx @@ -87,20 +87,36 @@ OPropertyArrayAggregationHelper::OPropertyArrayAggregationHelper( const Property* pDelegateProps = _rProperties.getConstArray(); Property* pMergedProps = m_aProperties.getArray(); + // if properties are present both at the delegatee and the aggregate, then the former are supposed to win. + // So, we'll need an existence check. + ::std::set< ::rtl::OUString > aDelegatorProps; + // create the map for the delegator properties sal_Int32 nMPLoop = 0; for ( ; nMPLoop < nDelegatorProps; ++nMPLoop, ++pDelegateProps ) + { m_aPropertyAccessors[ pDelegateProps->Handle ] = OPropertyAccessor( -1, nMPLoop, sal_False ); + OSL_ENSURE( aDelegatorProps.find( pDelegateProps->Name ) == aDelegatorProps.end(), + "OPropertyArrayAggregationHelper::OPropertyArrayAggregationHelper: duplicate delegatee property!" ); + aDelegatorProps.insert( pDelegateProps->Name ); + } // create the map for the aggregate properties sal_Int32 nAggregateHandle = _nFirstAggregateId; pMergedProps += nDelegatorProps; - for ( ; nMPLoop < nMergedProps; ++nMPLoop, ++pMergedProps, ++pAggregateProps ) + for ( ; nMPLoop < nMergedProps; ++pAggregateProps ) { + // if the aggregate property is present at the delegatee already, ignore it + if ( aDelegatorProps.find( pAggregateProps->Name ) != aDelegatorProps.end() ) + { + --nMergedProps; + continue; + } + // next aggregate property - remember it *pMergedProps = *pAggregateProps; - // determine the handle for the property which we will expose to the ourside world + // determine the handle for the property which we will expose to the outside world sal_Int32 nHandle = -1; // ask the infor service first if ( _pInfoService ) @@ -123,7 +139,11 @@ OPropertyArrayAggregationHelper::OPropertyArrayAggregationHelper( // remember the accessor for this property m_aPropertyAccessors[ nHandle ] = OPropertyAccessor( pMergedProps->Handle, nMPLoop, sal_True ); pMergedProps->Handle = nHandle; + + ++nMPLoop; + ++pMergedProps; } + m_aProperties.realloc( nMergedProps ); pMergedProps = m_aProperties.getArray(); // reset, needed again below // sortieren der Properties nach Namen diff --git a/cppcanvas/inc/cppcanvas/renderer.hxx b/cppcanvas/inc/cppcanvas/renderer.hxx index 780a27f31503..0b8bb43d7e3e 100644 --- a/cppcanvas/inc/cppcanvas/renderer.hxx +++ b/cppcanvas/inc/cppcanvas/renderer.hxx @@ -32,7 +32,7 @@ #include <rtl/ustring.hxx> #include <boost/shared_ptr.hpp> -#include <comphelper/optionalvalue.hxx> +#include <boost/optional.hpp> #include <basegfx/matrix/b2dhommatrix.hxx> #include <cppcanvas/canvasgraphic.hxx> #include <cppcanvas/color.hxx> @@ -109,16 +109,16 @@ namespace cppcanvas struct Parameters { /// Optionally forces the fill color attribute for all actions - ::comphelper::OptionalValue< Color::IntSRGBA > maFillColor; + ::boost::optional< Color::IntSRGBA > maFillColor; /// Optionally forces the line color attribute for all actions - ::comphelper::OptionalValue< Color::IntSRGBA > maLineColor; + ::boost::optional< Color::IntSRGBA > maLineColor; /// Optionally forces the text color attribute for all actions - ::comphelper::OptionalValue< Color::IntSRGBA > maTextColor; + ::boost::optional< Color::IntSRGBA > maTextColor; /// Optionally forces the given fontname for all text actions - ::comphelper::OptionalValue< ::rtl::OUString > maFontName; + ::boost::optional< ::rtl::OUString > maFontName; /** Optionally transforms all text output actions with the given matrix (in addition to the overall canvas @@ -128,16 +128,16 @@ namespace cppcanvas rect coordinate system, i.e. the metafile is assumed to be contained in the unit rect. */ - ::comphelper::OptionalValue< ::basegfx::B2DHomMatrix > maTextTransformation; + ::boost::optional< ::basegfx::B2DHomMatrix > maTextTransformation; /// Optionally forces the given font weight for all text actions - ::comphelper::OptionalValue< sal_Int8 > maFontWeight; + ::boost::optional< sal_Int8 > maFontWeight; /// Optionally forces the given font letter form (italics etc.) for all text actions - ::comphelper::OptionalValue< sal_Int8 > maFontLetterForm; + ::boost::optional< sal_Int8 > maFontLetterForm; /// Optionally forces underlining for all text actions - ::comphelper::OptionalValue< bool > maFontUnderline; + ::boost::optional< bool > maFontUnderline; }; }; diff --git a/cppcanvas/source/mtfrenderer/implrenderer.cxx b/cppcanvas/source/mtfrenderer/implrenderer.cxx index 1423cd42ed93..006d55a01de6 100644 --- a/cppcanvas/source/mtfrenderer/implrenderer.cxx +++ b/cppcanvas/source/mtfrenderer/implrenderer.cxx @@ -831,8 +831,8 @@ namespace cppcanvas { rendering::FontRequest aFontRequest; - if( rParms.mrParms.maFontName.isValid() ) - aFontRequest.FontDescription.FamilyName = rParms.mrParms.maFontName.getValue(); + if( rParms.mrParms.maFontName.is_initialized() ) + aFontRequest.FontDescription.FamilyName = *rParms.mrParms.maFontName; else aFontRequest.FontDescription.FamilyName = rFont.GetName(); @@ -843,12 +843,12 @@ namespace cppcanvas // TODO(F2): improve vclenum->panose conversion aFontRequest.FontDescription.FontDescription.Weight = - rParms.mrParms.maFontWeight.isValid() ? - rParms.mrParms.maFontWeight.getValue() : + rParms.mrParms.maFontWeight.is_initialized() ? + *rParms.mrParms.maFontWeight : ::canvas::tools::numeric_cast<sal_Int8>( ::basegfx::fround( rFont.GetWeight() ) ); aFontRequest.FontDescription.FontDescription.Letterform = - rParms.mrParms.maFontLetterForm.isValid() ? - rParms.mrParms.maFontLetterForm.getValue() : + rParms.mrParms.maFontLetterForm.is_initialized() ? + *rParms.mrParms.maFontLetterForm : (rFont.GetItalic() == ITALIC_NONE) ? 0 : 9; LanguageType aLang = rFont.GetLanguage(); @@ -1445,7 +1445,7 @@ namespace cppcanvas break; case META_LINECOLOR_ACTION: - if( !rParms.maLineColor.isValid() ) + if( !rParms.maLineColor.is_initialized() ) { setStateColor( static_cast<MetaLineColorAction*>(pCurrAct), getState( rStates ).isLineColorSet, @@ -1455,7 +1455,7 @@ namespace cppcanvas break; case META_FILLCOLOR_ACTION: - if( !rParms.maFillColor.isValid() ) + if( !rParms.maFillColor.is_initialized() ) { setStateColor( static_cast<MetaFillColorAction*>(pCurrAct), getState( rStates ).isFillColorSet, @@ -1466,7 +1466,7 @@ namespace cppcanvas case META_TEXTCOLOR_ACTION: { - if( !rParms.maTextColor.isValid() ) + if( !rParms.maTextColor.is_initialized() ) { // Text color is set unconditionally, thus, no // use of setStateColor here @@ -1486,7 +1486,7 @@ namespace cppcanvas break; case META_TEXTFILLCOLOR_ACTION: - if( !rParms.maTextColor.isValid() ) + if( !rParms.maTextColor.is_initialized() ) { setStateColor( static_cast<MetaTextFillColorAction*>(pCurrAct), getState( rStates ).isTextFillColorSet, @@ -1496,7 +1496,7 @@ namespace cppcanvas break; case META_TEXTLINECOLOR_ACTION: - if( !rParms.maTextColor.isValid() ) + if( !rParms.maTextColor.is_initialized() ) { setStateColor( static_cast<MetaTextLineColorAction*>(pCurrAct), getState( rStates ).isTextLineColorSet, @@ -1526,8 +1526,8 @@ namespace cppcanvas // TODO(Q2): define and use appropriate enumeration types rState.textReliefStyle = (sal_Int8)rFont.GetRelief(); rState.textOverlineStyle = (sal_Int8)rFont.GetOverline(); - rState.textUnderlineStyle = rParms.maFontUnderline.isValid() ? - (rParms.maFontUnderline.getValue() ? (sal_Int8)UNDERLINE_SINGLE : (sal_Int8)UNDERLINE_NONE) : + rState.textUnderlineStyle = rParms.maFontUnderline.is_initialized() ? + (*rParms.maFontUnderline ? (sal_Int8)UNDERLINE_SINGLE : (sal_Int8)UNDERLINE_NONE) : (sal_Int8)rFont.GetUnderline(); rState.textStrikeoutStyle = (sal_Int8)rFont.GetStrikeout(); rState.textEmphasisMarkStyle = (sal_Int8)rFont.GetEmphasisMark(); @@ -2946,28 +2946,28 @@ namespace cppcanvas getState( aStateStack ).textLineColor = pColor->getDeviceColor( 0x000000FF ); // apply overrides from the Parameters struct - if( rParams.maFillColor.isValid() ) + if( rParams.maFillColor.is_initialized() ) { getState( aStateStack ).isFillColorSet = true; - getState( aStateStack ).fillColor = pColor->getDeviceColor( rParams.maFillColor.getValue() ); + getState( aStateStack ).fillColor = pColor->getDeviceColor( *rParams.maFillColor ); } - if( rParams.maLineColor.isValid() ) + if( rParams.maLineColor.is_initialized() ) { getState( aStateStack ).isLineColorSet = true; - getState( aStateStack ).lineColor = pColor->getDeviceColor( rParams.maLineColor.getValue() ); + getState( aStateStack ).lineColor = pColor->getDeviceColor( *rParams.maLineColor ); } - if( rParams.maTextColor.isValid() ) + if( rParams.maTextColor.is_initialized() ) { getState( aStateStack ).isTextFillColorSet = true; getState( aStateStack ).isTextLineColorSet = true; getState( aStateStack ).textColor = getState( aStateStack ).textFillColor = - getState( aStateStack ).textLineColor = pColor->getDeviceColor( rParams.maTextColor.getValue() ); + getState( aStateStack ).textLineColor = pColor->getDeviceColor( *rParams.maTextColor ); } - if( rParams.maFontName.isValid() || - rParams.maFontWeight.isValid() || - rParams.maFontLetterForm.isValid() || - rParams.maFontUnderline.isValid() ) + if( rParams.maFontName.is_initialized() || + rParams.maFontWeight.is_initialized() || + rParams.maFontLetterForm.is_initialized() || + rParams.maFontUnderline.is_initialized() ) { ::cppcanvas::internal::OutDevState& rState = getState( aStateStack ); diff --git a/cppcanvas/source/mtfrenderer/textaction.cxx b/cppcanvas/source/mtfrenderer/textaction.cxx index bc4cf6688ca3..56ce197b7e8e 100644 --- a/cppcanvas/source/mtfrenderer/textaction.cxx +++ b/cppcanvas/source/mtfrenderer/textaction.cxx @@ -2069,7 +2069,7 @@ namespace cppcanvas rCanvas->getUNOCanvas()->getDevice(), aResultingPolyPolygon ) ); - if( rParms.maTextTransformation.isValid() ) + if( rParms.maTextTransformation.is_initialized() ) { return ActionSharedPtr( new OutlineAction( @@ -2085,7 +2085,7 @@ namespace cppcanvas rVDev, rCanvas, rState, - rParms.maTextTransformation.getValue() ) ); + *rParms.maTextTransformation ) ); } else { @@ -2186,7 +2186,7 @@ namespace cppcanvas rShadowColor == aEmptyColor ) { // nope - if( rParms.maTextTransformation.isValid() ) + if( rParms.maTextTransformation.is_initialized() ) { return ActionSharedPtr( new TextAction( aStartPoint, @@ -2195,7 +2195,7 @@ namespace cppcanvas nLen, rCanvas, rState, - rParms.maTextTransformation.getValue() ) ); + *rParms.maTextTransformation ) ); } else { @@ -2211,7 +2211,7 @@ namespace cppcanvas else { // at least one of the effects requested - if( rParms.maTextTransformation.isValid() ) + if( rParms.maTextTransformation.is_initialized() ) return ActionSharedPtr( new EffectTextAction( aStartPoint, aReliefOffset, @@ -2224,7 +2224,7 @@ namespace cppcanvas rVDev, rCanvas, rState, - rParms.maTextTransformation.getValue() ) ); + *rParms.maTextTransformation ) ); else return ActionSharedPtr( new EffectTextAction( aStartPoint, @@ -2250,7 +2250,7 @@ namespace cppcanvas rShadowColor == aEmptyColor ) { // nope - if( rParms.maTextTransformation.isValid() ) + if( rParms.maTextTransformation.is_initialized() ) return ActionSharedPtr( new TextArrayAction( aStartPoint, rText, @@ -2259,7 +2259,7 @@ namespace cppcanvas aCharWidths, rCanvas, rState, - rParms.maTextTransformation.getValue() ) ); + *rParms.maTextTransformation ) ); else return ActionSharedPtr( new TextArrayAction( aStartPoint, @@ -2273,7 +2273,7 @@ namespace cppcanvas else { // at least one of the effects requested - if( rParms.maTextTransformation.isValid() ) + if( rParms.maTextTransformation.is_initialized() ) return ActionSharedPtr( new EffectTextArrayAction( aStartPoint, aReliefOffset, @@ -2287,7 +2287,7 @@ namespace cppcanvas rVDev, rCanvas, rState, - rParms.maTextTransformation.getValue() ) ); + *rParms.maTextTransformation ) ); else return ActionSharedPtr( new EffectTextArrayAction( aStartPoint, diff --git a/dtrans/prj/build.lst b/dtrans/prj/build.lst index bd9c73582361..e30eccd59d7e 100644 --- a/dtrans/prj/build.lst +++ b/dtrans/prj/build.lst @@ -1,4 +1,4 @@ -dr dtrans : unotools offapi offuh rdbmaker vos stoc NULL +dr dtrans : unotools offapi offuh rdbmaker vos stoc LIBXSLT:libxslt NULL dr dtrans usr1 - all dr_mkout NULL dr dtrans\inc nmake - all dr_inc NULL dr dtrans\source\cnttype nmake - all dr_cnttype dr_generic dr_inc NULL diff --git a/i18npool/prj/build.lst b/i18npool/prj/build.lst index 24e9607596ac..22609becbe86 100644 --- a/i18npool/prj/build.lst +++ b/i18npool/prj/build.lst @@ -1,4 +1,4 @@ -inp i18npool : bridges sax stoc comphelper ICU:icu i18nutil regexp NULL +inp i18npool : bridges sax stoc comphelper ICU:icu i18nutil regexp LIBXSLT:libxslt NULL inp i18npool usr1 - all inp_mkout NULL inp i18npool\inc nmake - all inp_inc NULL inp i18npool\source\registerservices nmake - all inp_rserv inp_inc NULL diff --git a/l10ntools/inc/export.hxx b/l10ntools/inc/export.hxx index 8828594c54fd..768e63b03fd8 100644 --- a/l10ntools/inc/export.hxx +++ b/l10ntools/inc/export.hxx @@ -452,7 +452,6 @@ public: const ByteString &rTitle ) { - sText[ nId ] = rText; bTextFirst[ nId ] = true; sQuickHelpText[ nId ] = rQuickHelpText; @@ -508,39 +507,33 @@ public: class MergeDataFile { -private: - sal_Bool bErrorLog; - ByteString sErrorLog; - SvFileStream aErrLog; - ByteStringSet aLanguageSet; - MergeDataHashMap aMap; - ByteStringHashMap aLanguageMap; - std::vector<ByteString> aLanguageList; - ByteStringHashMap aFilenames; - - -public: - MergeDataFile( const ByteString &rFileName, const ByteString& rFile , sal_Bool bErrLog, CharSet aCharSet, bool bCaseSensitive = false ); - ~MergeDataFile(); - - - std::vector<ByteString> GetLanguages(); - MergeData *GetMergeData( ResData *pResData , bool bCaseSensitve = false ); - - PFormEntrys *GetPFormEntrys( ResData *pResData ); - PFormEntrys *GetPFormEntrysCaseSensitive( ResData *pResData ); - - void InsertEntry( const ByteString &rTYP, const ByteString &rGID, const ByteString &rLID, - const ByteString &rPFO, - const ByteString &nLang , const ByteString &rTEXT, - const ByteString &rQHTEXT, const ByteString &rTITLE , - const ByteString &sFilename , bool bCaseSensitive - ); - static sal_uInt16 GetLangIndex( sal_uInt16 nId ); - static ByteString CreateKey( const ByteString& rTYP , const ByteString& rGID , const ByteString& rLID , const ByteString& rFilename , bool bCaseSensitive = false ); - - ByteString Dump(); - void WriteError( const ByteString &rLine ); + private: + sal_Bool bErrorLog; + ByteString sErrorLog; + SvFileStream aErrLog; + MergeDataHashMap aMap; + std::set<ByteString> aLanguageSet; + + MergeData *GetMergeData( ResData *pResData , bool bCaseSensitve = false ); + void InsertEntry( const ByteString &rTYP, const ByteString &rGID, const ByteString &rLID, + const ByteString &rPFO, + const ByteString &nLang, const ByteString &rTEXT, + const ByteString &rQHTEXT, const ByteString &rTITLE, + const ByteString &sFilename, bool bCaseSensitive + ); + ByteString Dump(); + void WriteError( const ByteString &rLine ); + + public: + MergeDataFile( const ByteString &rFileName, const ByteString& rFile , sal_Bool bErrLog, CharSet aCharSet, bool bCaseSensitive = false ); + ~MergeDataFile(); + + std::vector<ByteString> GetLanguages(); + + PFormEntrys *GetPFormEntrys( ResData *pResData ); + PFormEntrys *GetPFormEntrysCaseSensitive( ResData *pResData ); + + static ByteString CreateKey( const ByteString& rTYP , const ByteString& rGID , const ByteString& rLID , const ByteString& rFilename , bool bCaseSensitive = false ); }; diff --git a/l10ntools/scripts/tool/l10ntool.py b/l10ntools/scripts/tool/l10ntool.py index f1630027ccdc..b65c262b6020 100644 --- a/l10ntools/scripts/tool/l10ntool.py +++ b/l10ntools/scripts/tool/l10ntool.py @@ -116,6 +116,11 @@ class AbstractL10nTool: return self._options.inputfile[0] == '@' def copy_file(self, inputfilename, outputfilename): + try: + os.remove(outputfilename) + except: + pass + try: shutil.copy(inputfilename, outputfilename) except IOError: diff --git a/l10ntools/source/help/HelpLinker.cxx b/l10ntools/source/help/HelpLinker.cxx index 8e6976c0efd1..4e3a4cedbe6f 100644 --- a/l10ntools/source/help/HelpLinker.cxx +++ b/l10ntools/source/help/HelpLinker.cxx @@ -46,17 +46,16 @@ #define DBHELP_ONLY - class IndexerPreProcessor { private: - std::string m_aModuleName; - fs::path m_fsIndexBaseDir; - fs::path m_fsCaptionFilesDirName; - fs::path m_fsContentFilesDirName; + std::string m_aModuleName; + fs::path m_fsIndexBaseDir; + fs::path m_fsCaptionFilesDirName; + fs::path m_fsContentFilesDirName; - xsltStylesheetPtr m_xsltStylesheetPtrCaption; - xsltStylesheetPtr m_xsltStylesheetPtrContent; + xsltStylesheetPtr m_xsltStylesheetPtrCaption; + xsltStylesheetPtr m_xsltStylesheetPtrContent; public: IndexerPreProcessor( const std::string& aModuleName, const fs::path& fsIndexBaseDir, @@ -245,7 +244,6 @@ class HelpLinker { public: void main(std::vector<std::string> &args, -// std::string* pExtensionPath = NULL, const rtl::OUString* pOfficeHelpPath = NULL ) std::string* pExtensionPath = NULL, std::string* pDestination = NULL, const rtl::OUString* pOfficeHelpPath = NULL ) @@ -667,8 +665,8 @@ void HelpLinker::link() throw( HelpProcessingException ) if( !bExtensionMode ) std::cout << std::endl; - } // try - catch( HelpProcessingException& ) + } // try + catch( const HelpProcessingException& ) { // catch HelpProcessingException to avoid locking data bases #ifndef DBHELP_ONLY @@ -1039,7 +1037,6 @@ void HelpLinker::main( std::vector<std::string> &args, aStrStream << "language missing" << std::endl; throw HelpProcessingException( HELPPROCESSING_GENERAL_ERROR, aStrStream.str() ); } - link(); } @@ -1102,7 +1099,7 @@ HelpProcessingErrorInfo& HelpProcessingErrorInfo::operator=( const struct HelpPr // Returns true in case of success, false in case of error HELPLINKER_DLLPUBLIC bool compileExtensionHelp ( - const rtl::OUString& aOfficeHelpPath, + const rtl::OUString& aOfficeHelpPath, const rtl::OUString& aExtensionName, const rtl::OUString& aExtensionLanguageRoot, sal_Int32 nXhpFileCount, const rtl::OUString* pXhpFiles, @@ -1112,31 +1109,20 @@ HELPLINKER_DLLPUBLIC bool compileExtensionHelp { bool bSuccess = true; - sal_Int32 argc = nXhpFileCount + 3; - const char** argv = new const char*[argc]; - argv[0] = ""; - argv[1] = "-mod"; + std::vector<std::string> args; + args.reserve(nXhpFileCount + 2); + args.push_back(std::string("-mod")); rtl::OString aOExtensionName = rtl::OUStringToOString( aExtensionName, fs::getThreadTextEncoding() ); - argv[2] = aOExtensionName.getStr(); + args.push_back(std::string(aOExtensionName.getStr())); for( sal_Int32 iXhp = 0 ; iXhp < nXhpFileCount ; ++iXhp ) { rtl::OUString aXhpFile = pXhpFiles[iXhp]; rtl::OString aOXhpFile = rtl::OUStringToOString( aXhpFile, fs::getThreadTextEncoding() ); - char* pArgStr = new char[aOXhpFile.getLength() + 1]; - strcpy( pArgStr, aOXhpFile.getStr() ); - argv[iXhp + 3] = pArgStr; + args.push_back(std::string(aOXhpFile.getStr())); } - std::vector<std::string> args; - for( sal_Int32 i = 1; i < argc; ++i ) - args.push_back(std::string( argv[i]) ); - - for( sal_Int32 iXhp = 0 ; iXhp < nXhpFileCount ; ++iXhp ) - delete[] argv[iXhp + 3]; - delete[] argv; - rtl::OString aOExtensionLanguageRoot = rtl::OUStringToOString( aExtensionLanguageRoot, fs::getThreadTextEncoding() ); const char* pExtensionPath = aOExtensionLanguageRoot.getStr(); std::string aStdStrExtensionPath = pExtensionPath; @@ -1206,6 +1192,3 @@ HELPLINKER_DLLPUBLIC bool compileExtensionHelp return bSuccess; } -// vnd.sun.star.help://swriter/52821?Language=en-US&System=UNIX -/* vi:set tabstop=4 shiftwidth=4 expandtab: */ - diff --git a/l10ntools/source/merge.cxx b/l10ntools/source/merge.cxx index 2a92dbdc7ab1..e6893ba8c721 100644 --- a/l10ntools/source/merge.cxx +++ b/l10ntools/source/merge.cxx @@ -35,18 +35,29 @@ using namespace std; +namespace +{ + static ::rtl::OString lcl_NormalizeFilename(const ::rtl::OString& rFilename) + { + return rFilename.copy( + ::std::max( + rFilename.lastIndexOf( "\\" ), + rFilename.lastIndexOf( "/" ))+1); + }; +} + extern void ConvertHalfwitdhToFullwidth( String& rString ); // // class PFormEntrys // -ByteString PFormEntrys::Dump(){ +ByteString PFormEntrys::Dump() +{ ByteString sRet( "PFormEntrys\n" ); - //sRet.Append( Export::DumpMap( ByteString("sText") , sText ) ); - //sRet.Append("\n"); ByteString a("sText"); - if ( sText.size() ) Export::DumpMap( a , sText ); + if(sText.size()) + Export::DumpMap(a , sText); return sRet; } @@ -69,21 +80,8 @@ sal_Bool PFormEntrys::GetTransex3Text( ByteString &rReturn, /*****************************************************************************/ sal_Bool PFormEntrys::GetText( ByteString &rReturn, sal_uInt16 nTyp, const ByteString &nLangIndex, sal_Bool bDel ) -/*****************************************************************************/ { - /*printf("DBG: PFormEntrys::GetText(nId=%s)\n",nLangIndex.GetBuffer() ); - - // DEBUG****************** - ByteStringHashMap::const_iterator idbg; - std::cout << "HASHKEYS : \n"; - for( idbg = sText.begin() ; idbg != sText.end(); ++idbg ) - std::cout << (idbg->first).GetBuffer() << "\n"; - std::cout << "\n\n"; - std::cout << "String sText[ nLangIndex ] = " << sText[ nLangIndex ].GetBuffer() << "\n"; - // DEBUG****************** -*/ - sal_Bool bReturn=sal_True; switch ( nTyp ) { case STRING_TYP_TEXT : @@ -111,7 +109,6 @@ sal_Bool PFormEntrys::GetText( ByteString &rReturn, bTitleFirst[ nLangIndex ] = sal_False; break; } - //printf("Returning '%s'\n",rReturn.GetBuffer()); return bReturn; } @@ -120,68 +117,53 @@ sal_Bool PFormEntrys::GetText( ByteString &rReturn, // class MergeData // -/*****************************************************************************/ MergeData::~MergeData() -/*****************************************************************************/ { } -/*****************************************************************************/ -PFormEntrys* MergeData::GetPFormEntrys( ResData *pResData ) -/*****************************************************************************/ +PFormEntrys* MergeData::GetPFormEntrys(ResData*) { - - (void) pResData; // FIXME - if( aMap.find( ByteString("HACK") ) != aMap.end() ){ - return aMap[ ByteString("HACK") ]; - } - else{ - return 0; - } + if( aMap.find( ByteString("HACK") ) != aMap.end() ) + return aMap[ ByteString("HACK") ]; + return NULL; } -void MergeData::Insert( const ByteString& rPFO , PFormEntrys* pfEntrys ){ - (void) rPFO; // FIXME +void MergeData::Insert(const ByteString&, PFormEntrys* pfEntrys ) +{ aMap.insert( PFormEntrysHashMap::value_type( ByteString("HACK") , pfEntrys ) ); - } + ByteString MergeData::Dump(){ ByteString sRet( "MergeData\n" ); printf("MergeData sTyp = %s , sGid = %s , sLid =%s , sFilename = %s\n",sTyp.GetBuffer(),sGID.GetBuffer(),sLID.GetBuffer(), sFilename.GetBuffer() ); PFormEntrysHashMap::const_iterator idbg; - for( idbg = aMap.begin() ; idbg != aMap.end(); ++idbg ){ + for( idbg = aMap.begin() ; idbg != aMap.end(); ++idbg ) + { printf("aMap[ %s ] = " ,idbg->first.GetBuffer()); ( (PFormEntrys*)(idbg->second) )->Dump(); - printf("\n") ; + printf("\n"); } - printf("\n") ; + printf("\n"); return sRet; } PFormEntrys* MergeData::GetPFObject( const ByteString& rPFO ){ - if( aMap.find( ByteString("HACK") ) != aMap.end() ){ + if( aMap.find( ByteString("HACK") ) != aMap.end() ) return aMap[ rPFO ]; - } - else{ - return 0; - } + return NULL; } -/*****************************************************************************/ PFormEntrys *MergeData::InsertEntry( const ByteString &rPForm ) -/*****************************************************************************/ { PFormEntrys* pFEntrys = new PFormEntrys( rPForm ); aMap.insert( PFormEntrysHashMap::value_type( rPForm , pFEntrys ) ); return pFEntrys; } -/*****************************************************************************/ sal_Bool MergeData::operator==( ResData *pData ) -/*****************************************************************************/ { ByteString sResTyp_upper( pData->sResTyp ); sResTyp_upper.ToUpperAscii(); @@ -202,130 +184,96 @@ sal_Bool MergeData::operator==( ResData *pData ) #define FFORMAT_NEW 0x0001 #define FFORMAT_OLD 0x0002 -/*****************************************************************************/ -MergeDataFile::MergeDataFile( const ByteString &rFileName, const ByteString& sFile ,sal_Bool bErrLog, -// CharSet aCharSet, sal_Bool bUTF8 , bool bCaseSensitive ) - CharSet aCharSet, bool bCaseSensitive ) -/*****************************************************************************/ - : bErrorLog( bErrLog ) +MergeDataFile::MergeDataFile( + const ByteString &rFileName, + const ByteString& sFile, + sal_Bool bErrLog, + CharSet aCharSet, + bool bCaseSensitive) + : bErrorLog( bErrLog ) { - SvFileStream aInputStream( String( rFileName, RTL_TEXTENCODING_ASCII_US ), STREAM_STD_READ ); aInputStream.SetStreamCharSet( aCharSet ); ByteString sLine; -// printf("\nReading localize.sdf ...\n"); - ByteString sTYP; - ByteString sGID; - ByteString sLID; - ByteString sPFO; - ByteString nLANG; - ByteString sTEXT; - ByteString sQHTEXT; - ByteString sTITLE; - ByteString sHACK("HACK"); + const ByteString sHACK("HACK"); + const ::rtl::OString sFileNormalized(lcl_NormalizeFilename(sFile)); + const bool isFileEmpty = sFileNormalized.getLength(); - const ByteString sEmpty(""); - - if( !aInputStream.IsOpen() ) { + if( !aInputStream.IsOpen() ) + { printf("Warning : Can't open %s\n", rFileName.GetBuffer()); - //exit( -1 ); return; } - while ( !aInputStream.IsEof()) { + while ( !aInputStream.IsEof()) + { xub_StrLen nToks; aInputStream.ReadLine( sLine ); sLine = sLine.Convert( RTL_TEXTENCODING_MS_1252, aCharSet ); nToks = sLine.GetTokenCount( '\t' ); - if ( nToks == 15 ) { + if ( nToks == 15 ) + { // Skip all wrong filenames - ByteString filename = sLine.GetToken( 1 , '\t' ); - filename = filename.Copy( filename.SearchCharBackward( "\\" )+1 , filename.Len() ); + const ::rtl::OString filename = lcl_NormalizeFilename(sLine.GetToken( 1 , '\t' )); - if( sFile.Equals( sEmpty ) || ( !sFile.Equals( sEmpty ) && filename.Equals( sFile ) ) ) + if(isFileEmpty || (!isFileEmpty && filename.equals(sFileNormalized))) { - xub_StrLen rIdx = 0; - sTYP = sLine.GetToken( 3, '\t', rIdx ); - sGID = sLine.GetToken( 0, '\t', rIdx ); // 4 - sLID = sLine.GetToken( 0, '\t', rIdx ); // 5 - sPFO = sLine.GetToken( 1, '\t', rIdx ); // 7 - sPFO = sHACK; - nLANG = sLine.GetToken( 1, '\t', rIdx ); // 9 - sTEXT = sLine.GetToken( 0, '\t', rIdx ); // 10 - - sQHTEXT = sLine.GetToken( 1, '\t', rIdx ); // 12 - sTITLE = sLine.GetToken( 0, '\t', rIdx ); // 13 - + xub_StrLen rIdx = 0; + const ByteString sTYP = sLine.GetToken( 3, '\t', rIdx ); + const ByteString sGID = sLine.GetToken( 0, '\t', rIdx ); // 4 + const ByteString sLID = sLine.GetToken( 0, '\t', rIdx ); // 5 + ByteString sPFO = sLine.GetToken( 1, '\t', rIdx ); // 7 + sPFO = sHACK; + ByteString nLANG = sLine.GetToken( 1, '\t', rIdx ); // 9 nLANG.EraseLeadingAndTrailingChars(); + const ByteString sTEXT = sLine.GetToken( 0, '\t', rIdx ); // 10 + const ByteString sQHTEXT = sLine.GetToken( 1, '\t', rIdx ); // 12 + const ByteString sTITLE = sLine.GetToken( 0, '\t', rIdx ); // 13 + #ifdef MERGE_SOURCE_LANGUAGES - if( true ){ + if( true ) #else - if ( !nLANG.EqualsIgnoreCaseAscii("en-US") ){ + if( !nLANG.EqualsIgnoreCaseAscii("en-US") ) #endif - ByteStringHashMap::const_iterator lit; - lit = aLanguageMap.find (nLANG); - ByteString aLANG; - if (lit == aLanguageMap.end()) { - aLANG = nLANG; - aLanguageMap.insert( ByteStringHashMap::value_type( aLANG, aLANG ) ); - // Remember read languages for -l all switch - aLanguageList.push_back( nLANG ); - } else - aLANG = lit->first; - - InsertEntry( sTYP, sGID, sLID, sPFO, aLANG, sTEXT, sQHTEXT, sTITLE , filename , bCaseSensitive ); + { + aLanguageSet.insert(nLANG); + InsertEntry( sTYP, sGID, sLID, sPFO, nLANG, sTEXT, sQHTEXT, sTITLE, filename, bCaseSensitive ); } } } - else if ( nToks == 10 ) { + else if ( nToks == 10 ) + { printf("ERROR: File format is obsolete and no longer supported!\n"); } } aInputStream.Close(); } -/*****************************************************************************/ + MergeDataFile::~MergeDataFile() -/*****************************************************************************/ { } -/*****************************************************************************/ -//void MergeDataFile::WriteErrorLog( const ByteString &rFileName ) -/*****************************************************************************/ -//{ -// DEAD -//} - ByteString MergeDataFile::Dump(){ ByteString sRet( "MergeDataFile\n" ); - //sRet.Append( Export::DumpMap( "aLanguageSet" , aLanguageSet ) ); - //sRet.Append( Export::DumpMap( "aLanguageList" , aLanguageList ) ); printf("MergeDataFile\n"); MergeDataHashMap::const_iterator idbg; - for( idbg = aMap.begin() ; idbg != aMap.end(); ++idbg ){ - /*sRet.Append( "aMap[" ); - sRet.Append( idbg->first ); - sRet.Append( "]= " ); - sRet.Append( ((MergeData*) (idbg->second))->Dump() ); - sRet.Append("\n");*/ - + for( idbg = aMap.begin() ; idbg != aMap.end(); ++idbg ) + { printf("aMap[ %s ] = ",idbg->first.GetBuffer()); ((MergeData*) (idbg->second))->Dump(); printf("\n"); } printf("\n"); - //sRet.Append("\n"); return sRet; } -/*****************************************************************************/ void MergeDataFile::WriteError( const ByteString &rLine ) -/*****************************************************************************/ { - if ( bErrorLog ) { + if ( bErrorLog ) + { if ( !aErrLog.IsOpen()) aErrLog.Open( String( sErrorLog, RTL_TEXTENCODING_ASCII_US ), STREAM_STD_WRITE | STREAM_TRUNC ); aErrLog.WriteLine( rLine ); @@ -333,45 +281,39 @@ void MergeDataFile::WriteError( const ByteString &rLine ) else fprintf( stderr, "%s\n", rLine.GetBuffer()); } + std::vector<ByteString> MergeDataFile::GetLanguages(){ - return aLanguageList; + return std::vector<ByteString>(aLanguageSet.begin(),aLanguageSet.end()); } -/*****************************************************************************/ MergeData *MergeDataFile::GetMergeData( ResData *pResData , bool bCaseSensitive ) -/*****************************************************************************/ { ByteString sOldG = pResData->sGId; ByteString sOldL = pResData->sId; ByteString sGID = pResData->sGId; ByteString sLID; - if ( !sGID.Len()) + if(!sGID.Len()) sGID = pResData->sId; else sLID = pResData->sId; pResData->sGId = sGID; pResData->sId = sLID; - //printf("MergeData:: Search gid=%s lid=%s filename=%s \n", pResData->sGId.GetBuffer(),pResData->sId.GetBuffer(),pResData->sFilename.GetBuffer() ); + ByteString sKey = CreateKey( pResData->sResTyp , pResData->sGId , pResData->sId , pResData->sFilename , bCaseSensitive ); - //printf("DBG: Searching [%s]\n",sKey.GetBuffer()); - if( aMap.find( sKey ) != aMap.end() ){ + if(aMap.find( sKey ) != aMap.end()) + { pResData->sGId = sOldG; pResData->sId = sOldL; - //printf("DBG: Found[%s]\n",sKey.GetBuffer()); return aMap[ sKey ]; } - //Dump(); pResData->sGId = sOldG; pResData->sId = sOldL; - //printf("DBG: Found[%s]\n",sKey.GetBuffer()); return NULL; } -/*****************************************************************************/ PFormEntrys *MergeDataFile::GetPFormEntrys( ResData *pResData ) -/*****************************************************************************/ { // search for requested PFormEntrys MergeData *pData = GetMergeData( pResData ); @@ -380,9 +322,7 @@ PFormEntrys *MergeDataFile::GetPFormEntrys( ResData *pResData ) return NULL; } -/*****************************************************************************/ PFormEntrys *MergeDataFile::GetPFormEntrysCaseSensitive( ResData *pResData ) -/*****************************************************************************/ { // search for requested PFormEntrys MergeData *pData = GetMergeData( pResData , true ); @@ -390,70 +330,58 @@ PFormEntrys *MergeDataFile::GetPFormEntrysCaseSensitive( ResData *pResData ) return pData->GetPFormEntrys( pResData ); return NULL; } -/*****************************************************************************/ + void MergeDataFile::InsertEntry( - const ByteString &rTYP, const ByteString &rGID, - const ByteString &rLID, const ByteString &rPFO, - const ByteString &nLANG, const ByteString &rTEXT, - const ByteString &rQHTEXT, const ByteString &rTITLE , - const ByteString &rInFilename , bool bCaseSensitive - ) -/*****************************************************************************/ + const ByteString &rTYP, const ByteString &rGID, + const ByteString &rLID, const ByteString &rPFO, + const ByteString &nLANG, const ByteString &rTEXT, + const ByteString &rQHTEXT, const ByteString &rTITLE , + const ByteString &rInFilename , bool bCaseSensitive + ) { MergeData *pData; - sal_Bool bFound = sal_False; - - // uniquify the filename to save memory. - ByteStringHashMap::const_iterator fit = aFilenames.find (rInFilename); - ByteString aFilename; - if (fit == aFilenames.end()) { - aFilename = rInFilename; - aFilenames.insert (ByteStringHashMap::value_type (aFilename, aFilename)); - } else - aFilename = fit->first; // search for MergeData - - ByteString sKey = CreateKey( rTYP , rGID , rLID , aFilename , bCaseSensitive ); + ByteString sKey = CreateKey( rTYP , rGID , rLID , rInFilename , bCaseSensitive ); MergeDataHashMap::const_iterator mit; mit = aMap.find( sKey ); - if( mit != aMap.end() ){ + if( mit != aMap.end() ) + { pData = mit->second; - }else{ - pData = new MergeData( rTYP, rGID, rLID, aFilename ); + } + else + { + pData = new MergeData( rTYP, rGID, rLID, rInFilename ); aMap.insert( MergeDataHashMap::value_type( sKey, pData ) ); } - bFound = sal_False; PFormEntrys *pFEntrys = 0; // search for PFormEntrys - pFEntrys = pData->GetPFObject( rPFO ); - if( !pFEntrys ){ + if( !pFEntrys ) + { // create new PFormEntrys, cause no one exists with current properties pFEntrys = new PFormEntrys( rPFO ); pData->Insert( rPFO , pFEntrys ); } // finaly insert the cur string - pFEntrys->InsertEntry( nLANG , rTEXT, rQHTEXT, rTITLE ); - - //printf("DBG: MergeDataFile::Insert[]=( sKey=%s,nLang=%s,rTEXT=%s)\n",sKey2.GetBuffer(),nLANG.GetBuffer(),rTEXT.GetBuffer()); } -ByteString MergeDataFile::CreateKey( const ByteString& rTYP , const ByteString& rGID , const ByteString& rLID , const ByteString& rFilename , bool bCaseSensitive ){ - - ByteString sKey( rTYP ); - sKey.Append( '-' ); - sKey.Append( rGID ); - sKey.Append( '-' ); - sKey.Append( rLID ); - sKey.Append( '-' ); - sKey.Append( rFilename ); - - if( bCaseSensitive ) return sKey; // officecfg case sensitive identifier - else return sKey.ToUpperAscii(); -} - +ByteString MergeDataFile::CreateKey( const ByteString& rTYP , const ByteString& rGID , const ByteString& rLID , const ByteString& rFilename , bool bCaseSensitive ) +{ + static const ::rtl::OString sStroke('-'); + ::rtl::OString sKey( rTYP ); + sKey += sStroke; + sKey += rGID; + sKey += sStroke; + sKey += rLID; + sKey += sStroke; + sKey += lcl_NormalizeFilename(rFilename); + OSL_TRACE("created key: %s", sKey.getStr()); + if(bCaseSensitive) + return sKey; // officecfg case sensitive identifier + return sKey.toAsciiUpperCase(); +} diff --git a/rsc/inc/rscsfx.hxx b/rsc/inc/rsc/rscsfx.hxx index 830bbcf37baa..830bbcf37baa 100644 --- a/rsc/inc/rscsfx.hxx +++ b/rsc/inc/rsc/rscsfx.hxx diff --git a/rsc/prj/d.lst b/rsc/prj/d.lst index e59c9b2e9f3a..e79c03d9bb63 100644 --- a/rsc/prj/d.lst +++ b/rsc/prj/d.lst @@ -6,4 +6,4 @@ ..\%__SRC%\bin\rscpp %_DEST%\bin%_EXT%\rscpp mkdir: %_DEST%\inc%_EXT%\rsc -..\inc\rscsfx.hxx %_DEST%\inc%_EXT%\rsc\rscsfx.hxx +..\inc\rsc/rscsfx.hxx %_DEST%\inc%_EXT%\rsc\rscsfx.hxx diff --git a/rsc/source/parser/rscdb.cxx b/rsc/source/parser/rscdb.cxx index fdbf6459ac63..e14d406b3bbc 100644 --- a/rsc/source/parser/rscdb.cxx +++ b/rsc/source/parser/rscdb.cxx @@ -903,7 +903,7 @@ ERRTYPE RscTypCont :: WriteHxx( FILE * fOutput, sal_uIntPtr nFileKey ) fprintf( fOutput, "#include <vcl/fixed.hxx>\n" ); fprintf( fOutput, "#include <vcl/group.hxx>\n" ); fprintf( fOutput, "#include <vcl/image.hxx>\n" ); - fprintf( fOutput, "#include <vcl/imagebtn.hxx>\n" ); + fprintf( fOutput, "#include <vcl/button.hxx>\n" ); fprintf( fOutput, "#include <vcl/keycod.hxx>\n" ); fprintf( fOutput, "#include <vcl/lstbox.hxx>\n" ); fprintf( fOutput, "#include <vcl/mapmod.hxx>\n" ); @@ -1113,3 +1113,4 @@ sal_uInt32 RscTypCont::PutTranslatorKey( sal_uInt64 nKey ) aIdTranslator[ nKey ] = nFilePos; return nPMId++; } + diff --git a/rsc/source/parser/rscibas.cxx b/rsc/source/parser/rscibas.cxx index c68fa6ac7ebf..75239f82e55b 100644 --- a/rsc/source/parser/rscibas.cxx +++ b/rsc/source/parser/rscibas.cxx @@ -102,7 +102,7 @@ void RscLangEnum::Init( RscNameTable& rNames ) while ( NULL != ( pLangEntry = MsLangId::getIsoLangEntry( nIndex )) && ( pLangEntry->mnLang != LANGUAGE_DONTKNOW )) { #if OSL_DEBUG_LEVEL > 2 - fprintf( stderr, "ISO Language in : %d %d %s\n", + fprintf( stderr, "ISO Language in : %d\n", (int)nIndex, pLangEntry->mnLang, MsLangId::convertLanguageToIsoByteString( pLangEntry->mnLang ).getStr() ); @@ -200,7 +200,7 @@ Atom RscLangEnum::AddLanguage( const char* pLang, RscNameTable& rNames ) mnLangId++; } #if OSL_DEBUG_LEVEL > 2 - fprintf( stderr, "AddLanguage( %s ) = 0x%lx\n", pLang, nResult ); + fprintf( stderr, "AddLanguage( %s ) = %d\n", pLang, nResult ); #endif return nResult; } diff --git a/rsc/source/parser/rscicpx.cxx b/rsc/source/parser/rscicpx.cxx index eab06b3ea8ec..13d84851a563 100644 --- a/rsc/source/parser/rscicpx.cxx +++ b/rsc/source/parser/rscicpx.cxx @@ -40,7 +40,7 @@ #include <rscclass.hxx> #include <rsccont.hxx> #include <rscdb.hxx> -#include <rscsfx.hxx> +#include <rsc/rscsfx.hxx> #include "rsclex.hxx" #include <yyrscyacc.hxx> diff --git a/rsc/source/rsc/rsc.cxx b/rsc/source/rsc/rsc.cxx index c1eb0f85b36b..81284ab00df8 100644 --- a/rsc/source/rsc/rsc.cxx +++ b/rsc/source/rsc/rsc.cxx @@ -66,12 +66,14 @@ #include <rschash.hxx> #include <osl/file.h> +#include <osl/file.hxx> #include <osl/process.h> #include <rtl/strbuf.hxx> #include <rtl/tencinfo.h> #include <rtl/textenc.h> #include <vector> +#include <algorithm> using namespace rtl; @@ -139,7 +141,7 @@ RscCmdLine::RscCmdLine( int argc, char ** argv, RscError * pEH ) RscPtrPtr aCmdLine; // Kommandozeile ByteString aString; sal_uInt32 i; - sal_Bool bOutputSrsIsSet = sal_False; + sal_Bool bOutputSrsIsSet = sal_False; Init(); // Defaults setzen @@ -724,7 +726,7 @@ ERRTYPE RscCompiler :: IncludeParser( sal_uIntPtr lFileKey ) *************************************************************************/ ERRTYPE RscCompiler :: ParseOneFile( sal_uIntPtr lFileKey, const RscCmdLine::OutputFile* pOutputFile, - const WriteRcContext* pContext ) + const WriteRcContext* pContext ) { FILE * finput = NULL; ERRTYPE aError; @@ -802,13 +804,36 @@ ERRTYPE RscCompiler :: ParseOneFile( sal_uIntPtr lFileKey, |* *************************************************************************/ -static OString do_prefix( const char* pPrefix, const OUString& rFile ) +namespace { - OStringBuffer aBuf(256); - aBuf.append( pPrefix ); - aBuf.append( ":" ); - aBuf.append( OUStringToOString( rFile, RTL_TEXTENCODING_MS_1252 ) ); - return aBuf.makeStringAndClear(); + using namespace ::osl; + class RscIoError { }; + static inline OUString lcl_getAbsoluteUrl(const OUString& i_sBaseUrl, const OString& i_sPath) + { + OUString sRelUrl, sAbsUrl; + if(FileBase::getFileURLFromSystemPath(OStringToOUString(i_sPath, RTL_TEXTENCODING_MS_1252), sRelUrl) != FileBase::E_None) + throw RscIoError(); + if(FileBase::getAbsoluteFileURL(i_sBaseUrl, sRelUrl, sAbsUrl) != FileBase::E_None) + throw RscIoError(); + return sAbsUrl; + }; + static inline OString lcl_getSystemPath(const OUString& i_sUrl) + { + OUString sSys; + if(FileBase::getSystemPathFromFileURL(i_sUrl, sSys) != FileBase::E_None) + throw RscIoError(); + OSL_TRACE("temporary file: %s", OUStringToOString(sSys, RTL_TEXTENCODING_UTF8).getStr()); + return OUStringToOString(sSys, RTL_TEXTENCODING_MS_1252); + }; + static inline OString lcl_getTempFile(OUString& sTempDirUrl) + { + // get a temp file name for the rc file + OUString sTempUrl; + if(FileBase::createTempFile(&sTempDirUrl, NULL, &sTempUrl) != FileBase::E_None) + throw RscIoError(); + OSL_TRACE("temporary url: %s", OUStringToOString(sTempUrl, RTL_TEXTENCODING_UTF8).getStr()); + return lcl_getSystemPath(sTempUrl); + }; } ERRTYPE RscCompiler::Link() @@ -817,12 +842,6 @@ ERRTYPE RscCompiler::Link() ERRTYPE aError; RscFile* pFName; -#ifdef UNX -#define PATHSEP '/' -#else -#define PATHSEP '\\' -#endif - if( !(pCL->nCommands & NOLINK_FLAG) ) { ::std::list<RscCmdLine::OutputFile>::const_iterator it; @@ -836,91 +855,59 @@ ERRTYPE RscCompiler::Link() { pTC->Delete( pTC->aFileTab.GetIndex( pFName ) ); pTC->aFileTab.Seek( pFName ); - pFName->bLoaded = sal_False; - } - } - - // rc-Datei schreiben - ByteString aDir( it->aOutputRc ); - aDir.SetToken( aDir.GetTokenCount( PATHSEP )-1, PATHSEP, ByteString() ); - if( ! aDir.Len() ) - { - char aBuf[1024]; - if( getcwd( aBuf, sizeof( aBuf ) ) ) - { - aDir = aBuf; - aDir.Append( PATHSEP ); + pFName->bLoaded = FALSE; } } - // work dir for absolute Urls - OUString aCWD, aTmpUrl; - osl_getProcessWorkingDir( &aCWD.pData ); // get two temp file urls OString aRcTmp, aSysListTmp, aSysList; - OUString aSysPath, aUrlDir; - aSysPath = OStringToOUString( aDir, RTL_TEXTENCODING_MS_1252 ); - if( osl_getFileURLFromSystemPath( aSysPath.pData, &aUrlDir.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "url conversion", aUrlDir ) ); - - if( osl_getAbsoluteFileURL( aCWD.pData, aUrlDir.pData, &aTmpUrl.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "absolute url", aUrlDir ) ); - aUrlDir = aTmpUrl; + try + { + OUString sPwdUrl; + osl_getProcessWorkingDir( &sPwdUrl.pData ); + OUString sRcUrl = lcl_getAbsoluteUrl(sPwdUrl, it->aOutputRc); + // TempDir is either the directory where the rc file is located or pwd + OUString sTempDirUrl = sRcUrl.copy(0,sRcUrl.lastIndexOf('/')); + OSL_TRACE("rc directory URL: %s", OUStringToOString(sTempDirUrl, RTL_TEXTENCODING_UTF8).getStr()); + + aRcTmp = lcl_getTempFile(sTempDirUrl); + OSL_TRACE("temporary rc file: %s", aRcTmp.getStr()); + + OUString sOilDirUrl; + if(pCL->aILDir.Len()) + sOilDirUrl = lcl_getAbsoluteUrl(sPwdUrl, pCL->aILDir); + else + sOilDirUrl = sTempDirUrl; + OSL_TRACE("ilst directory URL: %s", OUStringToOString(sOilDirUrl, RTL_TEXTENCODING_UTF8).getStr()); - // create temp file for rc target - if( osl_createTempFile( aUrlDir.pData, NULL, &aTmpUrl.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "temp file creation", aUrlDir ) ); + aSysListTmp = lcl_getTempFile(sOilDirUrl); + OSL_TRACE("temporary ilst file: %s", aSysListTmp.getStr()); - if( osl_getSystemPathFromFileURL( aTmpUrl.pData, &aSysPath.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "sys path conversion", aTmpUrl ) ); - aRcTmp = OUStringToOString( aSysPath, RTL_TEXTENCODING_MS_1252 ); + OUString sIlstUrl, sIlstSys; + sIlstUrl = sRcUrl.copy(sRcUrl.lastIndexOf('/')+1); + sIlstUrl = sIlstUrl.copy(0,sIlstUrl.lastIndexOf('.')); + sIlstUrl += OUString::createFromAscii(".ilst"); + sIlstUrl = lcl_getAbsoluteUrl(sOilDirUrl, OUStringToOString(sIlstUrl, RTL_TEXTENCODING_UTF8)); - if ( NULL == (fExitFile = foutput = fopen( aRcTmp.getStr(), "wb" )) ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), aRcTmp.getStr() ); - - // make absolute path from IL dir (-oil switch) - // if no -oil was given, use the same dir as for rc file - if( pCL->aILDir.Len() ) + aSysList = lcl_getSystemPath(sIlstUrl); + OSL_TRACE("ilst file: %s", aSysList.getStr()); + } + catch (RscIoError&) { - aSysPath = OStringToOUString( pCL->aILDir, RTL_TEXTENCODING_MS_1252 ); - if( osl_getFileURLFromSystemPath( aSysPath.pData, &aTmpUrl.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "url conversion", aSysPath ) ); - if( osl_getAbsoluteFileURL( aCWD.pData, aTmpUrl.pData, &aUrlDir.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "absolute url", aTmpUrl ) ); + OString sMsg("Error with paths:\n"); + sMsg += "temporary rc file: " + aRcTmp + "\n"; + sMsg += "temporary ilst file: " + aSysListTmp + "\n"; + sMsg += "ilst file: " + aSysList + "\n"; + pTC->pEH->FatalError(ERR_OPENFILE, RscId(), sMsg); } - - if( osl_getSystemPathFromFileURL( aUrlDir.pData, &aSysPath.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "sys path conversion", aUrlDir ) ); - - aSysList = OUStringToOString( aSysPath, RTL_TEXTENCODING_MS_1252 ); - aSysList = aSysList + "/"; - xub_StrLen nLastSep = it->aOutputRc.SearchBackward( PATHSEP ); - if( nLastSep == STRING_NOTFOUND ) - nLastSep = 0; - xub_StrLen nLastPt = it->aOutputRc.Search( '.', nLastSep ); - if( nLastPt == STRING_NOTFOUND ) - nLastPt = it->aOutputRc.Len()+1; - aSysList = aSysList + it->aOutputRc.Copy( nLastSep+1, nLastPt - nLastSep-1 ); - aSysList = aSysList + ".ilst"; - // create temp file for sys list target - if( osl_createTempFile( aUrlDir.pData, NULL, &aTmpUrl.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "temp file creation", aUrlDir ) ); - - if( osl_getSystemPathFromFileURL( aTmpUrl.pData, &aSysPath.pData ) != osl_File_E_None ) - pTC->pEH->FatalError( ERR_OPENFILE, RscId(), do_prefix( "sys path conversion", aTmpUrl ) ); - aSysListTmp = OUStringToOString( aSysPath, RTL_TEXTENCODING_MS_1252 ); - - pTC->pEH->StdOut( "Generating .rc file\n" ); - - rtl_TextEncoding aEnc = RTL_TEXTENCODING_UTF8; - //if( it->aLangName.CompareIgnoreCaseToAscii( "de", 2 ) == COMPARE_EQUAL ) - // aEnc = RTL_TEXTENCODING_MS_1252; + if ( NULL == (fExitFile = foutput = fopen( aRcTmp.getStr(), "wb" )) ) + pTC->pEH->FatalError( ERR_OPENFILE, RscId(), aRcTmp.getStr() ); // Schreibe Datei sal_Char cSearchDelim = ByteString( DirEntry::GetSearchDelimiter(), RTL_TEXTENCODING_ASCII_US ).GetChar( 0 ); sal_Char cAccessDelim = ByteString( DirEntry::GetAccessDelimiter(), RTL_TEXTENCODING_ASCII_US ).GetChar( 0 ); pTC->ChangeLanguage( it->aLangName ); - pTC->SetSourceCharSet( aEnc ); + pTC->SetSourceCharSet( RTL_TEXTENCODING_UTF8 ); pTC->ClearSysNames(); ByteString aSysSearchPath( it->aLangSearchPath ); xub_StrLen nIndex = 0; @@ -936,9 +923,7 @@ ERRTYPE RscCompiler::Link() aSysSearchPath.Append( cSearchDelim ); aSysSearchPath.Append( aToken ); } -#if OSL_DEBUG_LEVEL > 1 - fprintf( stderr, "setting search path for language %s: %s\n", it->aLangName.GetBuffer(), aSysSearchPath.GetBuffer() ); -#endif + OSL_TRACE( "setting search path for language %s: %s\n", it->aLangName.GetBuffer(), aSysSearchPath.GetBuffer() ); pTC->SetSysSearchPath( aSysSearchPath ); WriteRcContext aContext; @@ -1130,7 +1115,7 @@ ByteString RscCompiler::GetTmpFileName() /********************************************************************/ /* */ -/* Function : sal_Bool openinput() */ +/* Function : sal_Bool openinput() */ /* */ /* Description : Check to see if the input file exists and can */ /* be opened for reading. */ @@ -1153,7 +1138,7 @@ void RscCompiler::OpenInput( const ByteString& rInput ) |*************************************************************************/ bool RscCompiler::GetImageFilePath( const RscCmdLine::OutputFile& rOutputFile, - const WriteRcContext& rContext, + const WriteRcContext& rContext, const ByteString& rBaseFileName, ByteString& rImagePath, FILE* pSysListFile ) @@ -1243,9 +1228,9 @@ bool RscCompiler::GetImageFilePath( const RscCmdLine::OutputFile& rOutputFile, // ------------------------------------------------------------------------------ void RscCompiler::PreprocessSrsFile( const RscCmdLine::OutputFile& rOutputFile, - const WriteRcContext& rContext, - const DirEntry& rSrsInPath, - const DirEntry& rSrsOutPath ) + const WriteRcContext& rContext, + const DirEntry& rSrsInPath, + const DirEntry& rSrsOutPath ) { SvFileStream aIStm( rSrsInPath.GetFull(), STREAM_READ ); SvFileStream aOStm( rSrsOutPath.GetFull(), STREAM_WRITE | STREAM_TRUNC ); @@ -1353,7 +1338,7 @@ void RscCompiler::PreprocessSrsFile( const RscCmdLine::OutputFile& rOutputFile, } aOStm.WriteLine( "};" ); - } + } else aOStm.WriteLine( aLine ); } @@ -1382,3 +1367,4 @@ void RscCompiler::PreprocessSrsFile( const RscCmdLine::OutputFile& rOutputFile, if( pSysListFile ) fclose( pSysListFile ); } + diff --git a/sax/prj/build.lst b/sax/prj/build.lst index 653d77ce9e25..849700087ae7 100644 --- a/sax/prj/build.lst +++ b/sax/prj/build.lst @@ -1,4 +1,4 @@ -ax sax : offapi cppuhelper EXPAT:expat comphelper NULL +ax sax : offapi cppuhelper EXPAT:expat comphelper LIBXSLT:libxslt NULL ax sax usr1 - all ax_mkout NULL ax sax\source\expatwrap nmake - all ax_expatwrap NULL ax sax\source\tools nmake - all ax_tools NULL diff --git a/sot/inc/absdev.hxx b/sot/inc/sot/absdev.hxx index d882e6fc6b14..d882e6fc6b14 100644 --- a/sot/inc/absdev.hxx +++ b/sot/inc/sot/absdev.hxx diff --git a/sot/inc/agg.hxx b/sot/inc/sot/agg.hxx index cf07f6a8faff..cf07f6a8faff 100644 --- a/sot/inc/agg.hxx +++ b/sot/inc/sot/agg.hxx diff --git a/sot/inc/clsids.hxx b/sot/inc/sot/clsids.hxx index a64df510dd07..a64df510dd07 100644 --- a/sot/inc/clsids.hxx +++ b/sot/inc/sot/clsids.hxx diff --git a/sot/inc/filelist.hxx b/sot/inc/sot/filelist.hxx index fc04e92cb3d7..fc04e92cb3d7 100644 --- a/sot/inc/filelist.hxx +++ b/sot/inc/sot/filelist.hxx diff --git a/sot/inc/stg.hxx b/sot/inc/sot/stg.hxx index b4f13b8d2660..b4f13b8d2660 100644 --- a/sot/inc/stg.hxx +++ b/sot/inc/sot/stg.hxx diff --git a/sot/inc/storinfo.hxx b/sot/inc/sot/storinfo.hxx index 5f225c26d0de..5f225c26d0de 100644 --- a/sot/inc/storinfo.hxx +++ b/sot/inc/sot/storinfo.hxx diff --git a/sot/prj/build.lst b/sot/prj/build.lst index a5ebff311e9c..9d6e785898a5 100644 --- a/sot/prj/build.lst +++ b/sot/prj/build.lst @@ -1,4 +1,4 @@ -to sot : tools ucbhelper unotools NULL +to sot : LIBXSLT:libxslt tools ucbhelper unotools NULL to sot usr1 - all sot_mkout NULL to sot\inc nmake - all sot_inc NULL to sot\prj get - all sot_prj NULL diff --git a/sot/prj/d.lst b/sot/prj/d.lst index 10bed8c9fe5e..ec3166bbea1a 100644 --- a/sot/prj/d.lst +++ b/sot/prj/d.lst @@ -1,20 +1,7 @@ mkdir: %_DEST%\inc%_EXT%\sot -..\inc\clsids.hxx %_DEST%\inc%_EXT%\sot\clsids.hxx -..\inc\sot\object.hxx %_DEST%\inc%_EXT%\sot\object.hxx -..\inc\sot\factory.hxx %_DEST%\inc%_EXT%\sot\factory.hxx -..\inc\sot\sotdata.hxx %_DEST%\inc%_EXT%\sot\sotdata.hxx -..\inc\agg.hxx %_DEST%\inc%_EXT%\sot\agg.hxx -..\inc\sot\storage.hxx %_DEST%\inc%_EXT%\sot\storage.hxx -..\inc\storinfo.hxx %_DEST%\inc%_EXT%\sot\storinfo.hxx -..\inc\sot\sotref.hxx %_DEST%\inc%_EXT%\sot\sotref.hxx -..\inc\sot\exchange.hxx %_DEST%\inc%_EXT%\sot\exchange.hxx -..\inc\sot\formats.hxx %_DEST%\inc%_EXT%\sot\formats.hxx -..\inc\absdev.hxx %_DEST%\inc%_EXT%\sot\absdev.hxx -..\inc\stg.hxx %_DEST%\inc%_EXT%\sot\stg.hxx -..\inc\filelist.hxx %_DEST%\inc%_EXT%\sot\filelist.hxx -..\inc\sot\sotdllapi.h %_DEST%\inc%_EXT%\sot\sotdllapi.h +..\inc\sot/*.hxx %_DEST%\inc%_EXT%\sot\*.hxx +..\inc\sot\*.h %_DEST%\inc%_EXT%\sot\*.h -..\%__SRC%\inc\sdintern.hxx %_DEST%\inc%_EXT%\sot\sdintern.hxx ..\%__SRC%\lib\sot.lib %_DEST%\lib%_EXT%\sot.lib ..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT% ..\%__SRC%\lib\lib*.so.* %_DEST%\lib%_EXT% diff --git a/sot/source/base/exchange.cxx b/sot/source/base/exchange.cxx index 2b51162df3a0..ec45c757c369 100644 --- a/sot/source/base/exchange.cxx +++ b/sot/source/base/exchange.cxx @@ -37,7 +37,7 @@ #include <sot/sotdata.hxx> #include <sot/exchange.hxx> #include <sot/formats.hxx> -#include <clsids.hxx> +#include <sot/clsids.hxx> #include <rtl/instance.hxx> #include <com/sun/star/uno/Sequence.hxx> #include <com/sun/star/datatransfer/DataFlavor.hpp> diff --git a/sot/source/base/factory.cxx b/sot/source/base/factory.cxx index 5c4757188f38..3b71382906ca 100644 --- a/sot/source/base/factory.cxx +++ b/sot/source/base/factory.cxx @@ -36,7 +36,7 @@ #include <tools/string.hxx> #include <sot/object.hxx> #include <sot/sotdata.hxx> -#include <clsids.hxx> +#include <sot/clsids.hxx> #include <rtl/instance.hxx> #include <com/sun/star/datatransfer/DataFlavor.hpp> diff --git a/sot/source/base/filelist.cxx b/sot/source/base/filelist.cxx index 80828e596538..5be0b01e8de6 100644 --- a/sot/source/base/filelist.cxx +++ b/sot/source/base/filelist.cxx @@ -33,7 +33,7 @@ #include<tools/string.hxx> #include<tools/rtti.hxx> #include<sot/exchange.hxx> -#include<filelist.hxx> +#include<sot/filelist.hxx> #include <osl/thread.h> TYPEINIT1_AUTOFACTORY( FileList, SvDataCopyStream ); diff --git a/sot/source/base/formats.cxx b/sot/source/base/formats.cxx index 10b6958ca4ac..81deb8e90112 100644 --- a/sot/source/base/formats.cxx +++ b/sot/source/base/formats.cxx @@ -34,8 +34,8 @@ #include <sot/exchange.hxx> #include <sot/formats.hxx> -#include "filelist.hxx" -#include "clsids.hxx" +#include "sot/filelist.hxx" +#include "sot/clsids.hxx" #include <tools/globname.hxx> #include <com/sun/star/datatransfer/DataFlavor.hpp> diff --git a/sot/source/base/object.cxx b/sot/source/base/object.cxx index bdd3862d8d52..5ac3f7f45d87 100644 --- a/sot/source/base/object.cxx +++ b/sot/source/base/object.cxx @@ -33,7 +33,7 @@ #include <tools/debug.hxx> #include <sot/object.hxx> #include <sot/factory.hxx> -#include <agg.hxx> +#include <sot/agg.hxx> /************** class SvAggregateMemberList *****************************/ /************************************************************************/ diff --git a/sot/source/sdstor/stg.cxx b/sot/source/sdstor/stg.cxx index 5adfb735d47b..f1f51f20343b 100644 --- a/sot/source/sdstor/stg.cxx +++ b/sot/source/sdstor/stg.cxx @@ -28,7 +28,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sot.hxx" -#include <storinfo.hxx> +#include <sot/storinfo.hxx> #include <osl/file.hxx> #include <tools/tempfile.hxx> #include <tools/ownlist.hxx> @@ -42,7 +42,7 @@ #include <tools/pstm.hxx> #include <tools/debug.hxx> -#include "stg.hxx" +#include "sot/stg.hxx" #include "stgelem.hxx" #include "stgcache.hxx" #include "stgstrms.hxx" diff --git a/sot/source/sdstor/stgcache.cxx b/sot/source/sdstor/stgcache.cxx index 6a0d1117f934..d0f0b0332482 100644 --- a/sot/source/sdstor/stgcache.cxx +++ b/sot/source/sdstor/stgcache.cxx @@ -41,7 +41,7 @@ #include <osl/endian.h> #include <tools/string.hxx> -#include "stg.hxx" +#include "sot/stg.hxx" #include "stgelem.hxx" #include "stgcache.hxx" #include "stgstrms.hxx" diff --git a/sot/source/sdstor/stgdir.cxx b/sot/source/sdstor/stgdir.cxx index 0b1cf2582501..080a4aba5268 100644 --- a/sot/source/sdstor/stgdir.cxx +++ b/sot/source/sdstor/stgdir.cxx @@ -30,7 +30,7 @@ #include <string.h> // memcpy() -#include "stg.hxx" +#include "sot/stg.hxx" #include "stgelem.hxx" #include "stgcache.hxx" #include "stgstrms.hxx" @@ -936,8 +936,11 @@ sal_Bool StgDirStrm::Store() void* StgDirStrm::GetEntry( sal_Int32 n, sal_Bool bDirty ) { + if( n < 0 ) + return NULL; + n *= STGENTRY_SIZE; - if( n >= nSize ) + if( n < 0 && n >= nSize ) return NULL; return GetPtr( n, sal_True, bDirty ); } diff --git a/sot/source/sdstor/stgelem.cxx b/sot/source/sdstor/stgelem.cxx index 917a4c2adb61..b781e4051c3d 100644 --- a/sot/source/sdstor/stgelem.cxx +++ b/sot/source/sdstor/stgelem.cxx @@ -32,7 +32,7 @@ #include <rtl/ustring.hxx> #include <com/sun/star/lang/Locale.hpp> #include <unotools/charclass.hxx> -#include "stg.hxx" +#include "sot/stg.hxx" #include "stgelem.hxx" #include "stgcache.hxx" #include "stgstrms.hxx" diff --git a/sot/source/sdstor/stgelem.hxx b/sot/source/sdstor/stgelem.hxx index 8b7d547ca416..9730813bb0ff 100644 --- a/sot/source/sdstor/stgelem.hxx +++ b/sot/source/sdstor/stgelem.hxx @@ -35,7 +35,7 @@ #include <tools/solar.h> #endif -#include <stg.hxx> +#include <sot/stg.hxx> class StgIo; class SvStream; diff --git a/sot/source/sdstor/stgio.cxx b/sot/source/sdstor/stgio.cxx index 6e504130be5a..54dbe1d43366 100644 --- a/sot/source/sdstor/stgio.cxx +++ b/sot/source/sdstor/stgio.cxx @@ -28,7 +28,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sot.hxx" -#include "stg.hxx" +#include "sot/stg.hxx" #include "stgelem.hxx" #include "stgcache.hxx" #include "stgstrms.hxx" diff --git a/sot/source/sdstor/stgole.cxx b/sot/source/sdstor/stgole.cxx index e3d02bc597ab..250e0bc4d12b 100644 --- a/sot/source/sdstor/stgole.cxx +++ b/sot/source/sdstor/stgole.cxx @@ -31,7 +31,7 @@ #include "rtl/string.h" #include "rtl/string.h" #include "stgole.hxx" -#include "storinfo.hxx" // Read/WriteClipboardFormat() +#include "sot/storinfo.hxx" // Read/WriteClipboardFormat() #include <tools/debug.hxx> #if defined(_MSC_VER) && (_MSC_VER>=1400) diff --git a/sot/source/sdstor/stgole.hxx b/sot/source/sdstor/stgole.hxx index b8c569c81ded..5448bd3b6f9c 100644 --- a/sot/source/sdstor/stgole.hxx +++ b/sot/source/sdstor/stgole.hxx @@ -30,7 +30,7 @@ #include <string.h> // memset() -#include "stg.hxx" +#include "sot/stg.hxx" #include "stgelem.hxx" class StgInternalStream : public SvStream diff --git a/sot/source/sdstor/stgstrms.cxx b/sot/source/sdstor/stgstrms.cxx index 7310b44676dc..a47695fc14d7 100644 --- a/sot/source/sdstor/stgstrms.cxx +++ b/sot/source/sdstor/stgstrms.cxx @@ -34,7 +34,7 @@ #include <tools/tempfile.hxx> #include <tools/debug.hxx> -#include "stg.hxx" +#include "sot/stg.hxx" #include "stgelem.hxx" #include "stgcache.hxx" #include "stgstrms.hxx" diff --git a/sot/source/sdstor/storage.cxx b/sot/source/sdstor/storage.cxx index 9b5d3a95b92f..f912d76cdaf6 100644 --- a/sot/source/sdstor/storage.cxx +++ b/sot/source/sdstor/storage.cxx @@ -35,8 +35,8 @@ #include <rtl/digest.h> #include <osl/file.hxx> -#include <stg.hxx> -#include <storinfo.hxx> +#include <sot/stg.hxx> +#include <sot/storinfo.hxx> #include <sot/storage.hxx> #include <sot/formats.hxx> #include <sot/exchange.hxx> diff --git a/sot/source/sdstor/storinfo.cxx b/sot/source/sdstor/storinfo.cxx index f326025fd0ac..0958362f64a9 100644 --- a/sot/source/sdstor/storinfo.cxx +++ b/sot/source/sdstor/storinfo.cxx @@ -28,8 +28,8 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sot.hxx" -#include <stg.hxx> -#include <storinfo.hxx> +#include <sot/stg.hxx> +#include <sot/storinfo.hxx> #include <sot/exchange.hxx> diff --git a/sot/source/sdstor/ucbstorage.cxx b/sot/source/sdstor/ucbstorage.cxx index ede41ec3aec9..ccdd42bb04bd 100644 --- a/sot/source/sdstor/ucbstorage.cxx +++ b/sot/source/sdstor/ucbstorage.cxx @@ -66,12 +66,12 @@ #include <cppuhelper/implbase2.hxx> #include <ucbhelper/commandenvironment.hxx> -#include "stg.hxx" -#include "storinfo.hxx" +#include "sot/stg.hxx" +#include "sot/storinfo.hxx" #include <sot/storage.hxx> #include <sot/exchange.hxx> #include <sot/formats.hxx> -#include "clsids.hxx" +#include "sot/clsids.hxx" #include "unostorageholder.hxx" diff --git a/sot/source/sdstor/unostorageholder.cxx b/sot/source/sdstor/unostorageholder.cxx index aa84ed0cf87c..00a905125ff6 100644 --- a/sot/source/sdstor/unostorageholder.cxx +++ b/sot/source/sdstor/unostorageholder.cxx @@ -36,7 +36,7 @@ #include <comphelper/processfactory.hxx> #include "unostorageholder.hxx" -#include <storinfo.hxx> +#include <sot/storinfo.hxx> using namespace ::com::sun::star; diff --git a/sot/source/unoolestorage/xolesimplestorage.cxx b/sot/source/unoolestorage/xolesimplestorage.cxx index 1780e45c5ed6..45baf9eed4c5 100644 --- a/sot/source/unoolestorage/xolesimplestorage.cxx +++ b/sot/source/unoolestorage/xolesimplestorage.cxx @@ -39,7 +39,7 @@ #include <cppuhelper/exc_hlp.hxx> -#include <storinfo.hxx> +#include <sot/storinfo.hxx> #include "xolesimplestorage.hxx" diff --git a/sot/source/unoolestorage/xolesimplestorage.hxx b/sot/source/unoolestorage/xolesimplestorage.hxx index c9f1b5c68b0a..18bd6ee64f9e 100644 --- a/sot/source/unoolestorage/xolesimplestorage.hxx +++ b/sot/source/unoolestorage/xolesimplestorage.hxx @@ -43,7 +43,7 @@ #include <osl/mutex.hxx> -#include <stg.hxx> +#include <sot/stg.hxx> class OLESimpleStorage : public ::cppu::WeakImplHelper3 diff --git a/sot/util/makefile.mk b/sot/util/makefile.mk index 72d17db189be..453dbddc5857 100644 --- a/sot/util/makefile.mk +++ b/sot/util/makefile.mk @@ -57,16 +57,16 @@ SHL1DEF= $(MISC)$/$(SHL1TARGET).def DEF1NAME =$(SHL1TARGET) DEF1DEPN =$(MISC)$/$(SHL1TARGET).flt \ - $(PRJ)$/inc$/absdev.hxx \ - $(PRJ)$/inc$/agg.hxx \ + $(PRJ)$/inc$/sot/absdev.hxx \ + $(PRJ)$/inc$/sot/agg.hxx \ $(PRJ)$/inc$/sot$/exchange.hxx \ $(PRJ)$/inc$/sot$/factory.hxx \ $(PRJ)$/inc$/sot$/object.hxx \ $(PRJ)$/inc$/sot$/sotdata.hxx \ $(PRJ)$/inc$/sot$/sotref.hxx \ - $(PRJ)$/inc$/stg.hxx \ + $(PRJ)$/inc$/sot/stg.hxx \ $(PRJ)$/inc$/sot$/storage.hxx \ - $(PRJ)$/inc$/storinfo.hxx + $(PRJ)$/inc$/sot/storinfo.hxx DEFLIB1NAME =$(TARGET) DEF1DES =StarObjectsTools diff --git a/svl/inc/makefile.mk b/svl/AllLangResTarget_svl.mk index a99cf8acc0d2..6759202a5fa4 100644 --- a/svl/inc/makefile.mk +++ b/svl/AllLangResTarget_svl.mk @@ -2,7 +2,7 @@ # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # -# Copyright 2000, 2010 Oracle and/or its affiliates. +# Copyright 2009 by Sun Microsystems, Inc. # # OpenOffice.org - a multi-platform office productivity suite # @@ -14,35 +14,36 @@ # # 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 +# 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 +# version 3 along with OpenOffice.org. If not, see # <http://www.openoffice.org/license.html> # for a copy of the LGPLv3 License. # #************************************************************************* -PRJ=.. -PRJNAME=svl -TARGET=inc +$(eval $(call gb_AllLangResTarget_AllLangResTarget,svl)) -# --- Settings ----------------------------------------------------- +$(eval $(call gb_AllLangResTarget_add_srs,svl,\ + svl/res \ +)) -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk +$(eval $(call gb_SrsTarget_SrsTarget,svl/res)) -# --- Files -------------------------------------------------------- -# --- Targets ------------------------------------------------------- +$(eval $(call gb_SrsTarget_set_include,svl/res,\ + $$(INCLUDE) \ + -I$(WORKDIR)/inc \ + -I$(SRCDIR)/svl/source/inc \ + -I$(SRCDIR)/svl/inc/ \ + -I$(SRCDIR)/svl/inc/svl \ +)) -.INCLUDE : target.mk +$(eval $(call gb_SrsTarget_add_files,svl/res,\ + svl/source/misc/mediatyp.src \ + svl/source/items/cstitem.src \ +)) -.IF "$(ENABLE_PCH)"!="" -ALLTAR : \ - $(SLO)$/precompiled.pch \ - $(SLO)$/precompiled_ex.pch - -.ENDIF # "$(ENABLE_PCH)"!="" diff --git a/svl/Library_fsstorage.mk b/svl/Library_fsstorage.mk new file mode 100644 index 000000000000..f109e0620d5e --- /dev/null +++ b/svl/Library_fsstorage.mk @@ -0,0 +1,78 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2009 by Sun Microsystems, Inc. +# +# 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. +# +#************************************************************************* + +$(eval $(call gb_Library_Library,fsstorage)) + +$(eval $(call gb_Library_set_componentfile,fsstorage,svl/source/fsstor/fsstorage)) + +$(eval $(call gb_Library_set_include,fsstorage,\ + $$(SOLARINC) \ + -I$(WORKDIR)/inc/svl \ + -I$(WORKDIR)/inc/ \ + -I$(SRCDIR)/svl/inc \ + -I$(SRCDIR)/svl/inc/svl \ + -I$(SRCDIR)/svl/source/inc \ + -I$(SRCDIR)/svl/inc/pch \ + -I$(OUTDIR)/inc/offuh \ + -I$(OUTDIR)/inc \ +)) + +$(eval $(call gb_Library_add_linked_libs,fsstorage,\ + comphelper \ + cppu \ + cppuhelper \ + sal \ + stl \ + tl \ + ucbhelper \ + utl \ +)) + +$(eval $(call gb_Library_add_linked_system_libs,fsstorage,\ + dl \ + icuuc \ + m \ + pthread \ +)) + +$(eval $(call gb_Library_add_exception_objects,fsstorage,\ + svl/source/fsstor/fsfactory \ + svl/source/fsstor/fsstorage \ + svl/source/fsstor/oinputstreamcontainer \ + svl/source/fsstor/ostreamcontainer \ +)) + +ifeq ($(OS),WNT) +$(eval $(call gb_Library_add_linked_libs,fsstorage,\ + kernel32 \ + msvcrt \ + oldnames \ + user32 \ + uwinapi \ +)) +endif +# vim: set noet sw=4 ts=4: diff --git a/svl/Library_passwordcontainer.mk b/svl/Library_passwordcontainer.mk new file mode 100644 index 000000000000..d0b35552e18a --- /dev/null +++ b/svl/Library_passwordcontainer.mk @@ -0,0 +1,74 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2009 by Sun Microsystems, Inc. +# +# 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. +# +#************************************************************************* + +$(eval $(call gb_Library_Library,passwordcontainer)) + +$(eval $(call gb_Library_set_componentfile,passwordcontainer,svl/source/passwordcontainer/passwordcontainer)) + +$(eval $(call gb_Library_set_include,passwordcontainer,\ + $$(SOLARINC) \ + -I$(WORKDIR)/inc/svl \ + -I$(WORKDIR)/inc/ \ + -I$(SRCDIR)/svl/inc \ + -I$(SRCDIR)/svl/inc/svl \ + -I$(SRCDIR)/svl/source/inc \ + -I$(SRCDIR)/svl/inc/pch \ + -I$(OUTDIR)/inc/offuh \ + -I$(OUTDIR)/inc \ +)) + +$(eval $(call gb_Library_add_linked_libs,passwordcontainer,\ + cppu \ + cppuhelper \ + sal \ + stl \ + ucbhelper \ + utl \ +)) + +$(eval $(call gb_Library_add_linked_system_libs,passwordcontainer,\ + icuuc \ + dl \ + m \ + pthread \ +)) + +$(eval $(call gb_Library_add_exception_objects,passwordcontainer,\ + svl/source/passwordcontainer/passwordcontainer \ + svl/source/passwordcontainer/syscreds \ +)) + +ifeq ($(OS),WNT) +$(eval $(call gb_Library_add_linked_libs,passwordcontainer,\ + kernel32 \ + msvcrt \ + oldnames \ + user32 \ + uwinapi \ +)) +endif +# vim: set noet sw=4 ts=4: diff --git a/svl/Library_svl.mk b/svl/Library_svl.mk new file mode 100644 index 000000000000..7faf5caa7f65 --- /dev/null +++ b/svl/Library_svl.mk @@ -0,0 +1,186 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2009 by Sun Microsystems, Inc. +# +# 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. +# +#************************************************************************* + +$(eval $(call gb_Library_Library,svl)) + +$(eval $(call gb_Library_add_package_headers,svl,svl_inc)) + +$(eval $(call gb_Library_add_precompiled_header,svl,$(SRCDIR)/svl/inc/pch/precompiled_svl)) + +$(eval $(call gb_Library_set_componentfile,svl,svl/util/svl)) + +$(eval $(call gb_Library_set_include,svl,\ + $$(SOLARINC) \ + -I$(WORKDIR)/inc/svl \ + -I$(WORKDIR)/inc/ \ + -I$(SRCDIR)/svl/inc \ + -I$(SRCDIR)/svl/source/inc \ + -I$(SRCDIR)/svl/inc/pch \ + -I$(OUTDIR)/inc/offuh \ + -I$(OUTDIR)/inc \ +)) + +$(eval $(call gb_Library_set_defs,svl,\ + $$(DEFS) \ + -DSVL_DLLIMPLEMENTATION \ +)) + +$(eval $(call gb_Library_add_linked_libs,svl,\ + basegfx \ + comphelper \ + cppu \ + cppuhelper \ + i18nisolang1 \ + i18nutil \ + jvmfwk \ + sal \ + sot \ + stl \ + tl \ + ucbhelper \ + utl \ + vos3 \ +)) + +$(eval $(call gb_Library_add_linked_system_libs,svl,\ + dl \ + icuuc \ + m \ + pthread \ +)) + + +$(eval $(call gb_Library_add_exception_objects,svl,\ + svl/inc/pch/precompiled_svl \ + svl/source/config/asiancfg \ + svl/source/config/cjkoptions \ + svl/source/config/ctloptions \ + svl/source/config/itemholder2 \ + svl/source/config/languageoptions \ + svl/source/config/srchcfg \ + svl/source/filepicker/pickerhistory \ + svl/source/filerec/filerec \ + svl/source/items/aeitem \ + svl/source/items/cenumitm \ + svl/source/items/cintitem \ + svl/source/items/cntwall \ + svl/source/items/ctypeitm \ + svl/source/items/custritm \ + svl/source/items/dateitem \ + svl/source/items/eitem \ + svl/source/items/flagitem \ + svl/source/items/globalnameitem \ + svl/source/items/ilstitem \ + svl/source/items/imageitm \ + svl/source/items/intitem \ + svl/source/items/itemiter \ + svl/source/items/itempool \ + svl/source/items/itemprop \ + svl/source/items/itemset \ + svl/source/items/lckbitem \ + svl/source/items/macitem \ + svl/source/items/poolcach \ + svl/source/items/poolio \ + svl/source/items/poolitem \ + svl/source/items/ptitem \ + svl/source/items/rectitem \ + svl/source/items/rngitem \ + svl/source/items/sfontitm \ + svl/source/items/sitem \ + svl/source/items/slstitm \ + svl/source/items/srchitem \ + svl/source/items/stritem \ + svl/source/items/style \ + svl/source/items/stylepool \ + svl/source/items/szitem \ + svl/source/items/visitem \ + svl/source/items/whiter \ + svl/source/memtools/svarray \ + svl/source/misc/PasswordHelper \ + svl/source/misc/adrparse \ + svl/source/misc/documentlockfile \ + svl/source/misc/filenotation \ + svl/source/misc/folderrestriction \ + svl/source/misc/fstathelper \ + svl/source/misc/inethist \ + svl/source/misc/inettype \ + svl/source/misc/lngmisc \ + svl/source/misc/lockfilecommon \ + svl/source/misc/ownlist \ + svl/source/misc/restrictedpaths \ + svl/source/misc/sharecontrolfile \ + svl/source/misc/strmadpt \ + svl/source/misc/svldata \ + svl/source/misc/urihelper \ + svl/source/notify/brdcst \ + svl/source/notify/broadcast \ + svl/source/notify/hint \ + svl/source/notify/isethint \ + svl/source/notify/listener \ + svl/source/notify/listenerbase \ + svl/source/notify/listeneriter \ + svl/source/notify/lstner \ + svl/source/notify/smplhint \ + svl/source/numbers/numfmuno \ + svl/source/numbers/numhead \ + svl/source/numbers/numuno \ + svl/source/numbers/supservs \ + svl/source/numbers/zforfind \ + svl/source/numbers/zforlist \ + svl/source/numbers/zformat \ + svl/source/numbers/zforscan \ + svl/source/svsql/converter \ + svl/source/undo/undo \ + svl/source/uno/pathservice \ + svl/source/uno/registerservices \ +)) + +ifeq ($(OS),WNT) +$(eval $(call gb_Library_add_exception_objects,svl,\ + svl/source/svdde/ddecli \ + svl/source/svdde/ddedata \ + svl/source/svdde/ddeinf \ + svl/source/svdde/ddestrg \ + svl/source/svdde/ddesvr \ + svl/source/svdde/ddewrap \ +)) + +$(eval $(call gb_Library_add_linked_libs,svl,\ + advapi32 \ + kernel32 \ + gdi32 \ + msvcrt \ + shell32 \ + user32 \ + uwinapi \ +)) +else +$(eval $(call gb_Library_add_exception_objects,svl,\ + svl/unx/source/svdde/ddedummy \ +)) +endif +# vim: set noet sw=4 ts=4: diff --git a/svl/Makefile b/svl/Makefile new file mode 100644 index 000000000000..a79aff831024 --- /dev/null +++ b/svl/Makefile @@ -0,0 +1,38 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +ifeq ($(strip $(SOLARENV)),) +$(error No environment set!) +endif + +gb_PARTIALBUILD := T +GBUILDDIR := $(SOLARENV)/gbuild +include $(GBUILDDIR)/gbuild.mk + +$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk))) + +# vim: set noet sw=4 ts=4: diff --git a/svl/Module_svl.mk b/svl/Module_svl.mk new file mode 100644 index 000000000000..6bba7a0836f7 --- /dev/null +++ b/svl/Module_svl.mk @@ -0,0 +1,42 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2009 by Sun Microsystems, Inc. +# +# 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. +# +#************************************************************************* + +$(eval $(call gb_Module_Module,svl)) + +$(eval $(call gb_Module_add_targets,svl,\ + AllLangResTarget_svl \ + Library_fsstorage \ + Library_passwordcontainer \ + Library_svl \ + Package_inc \ +)) + +#todo: dde platform dependent +#todo: package_inc +#todo: map file + +# vim: set noet ts=4 sw=4: diff --git a/svl/Package_inc.mk b/svl/Package_inc.mk new file mode 100644 index 000000000000..888cdc38cfa6 --- /dev/null +++ b/svl/Package_inc.mk @@ -0,0 +1,129 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2009 by Sun Microsystems, Inc. +# +# 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. +# +#************************************************************************* + +$(eval $(call gb_Package_Package,svl_inc,$(SRCDIR)/svl/inc)) + + +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/PasswordHelper.hxx,svl/PasswordHelper.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/adrparse.hxx,svl/adrparse.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/aeitem.hxx,svl/aeitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/asiancfg.hxx,svl/asiancfg.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/brdcst.hxx,svl/brdcst.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/broadcast.hxx,svl/broadcast.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/broadcast.hxx,svl/broadcast.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/cenumitm.hxx,svl/cenumitm.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/cintitem.hxx,svl/cintitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/cjkoptions.hxx,svl/cjkoptions.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/cntnrsrt.hxx,svl/cntnrsrt.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/cntwall.hxx,svl/cntwall.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/cntwids.hrc,svl/cntwids.hrc)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/converter.hxx,svl/converter.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/ctloptions.hxx,svl/ctloptions.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/ctypeitm.hxx,svl/ctypeitm.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/custritm.hxx,svl/custritm.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/dateitem.hxx,svl/dateitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/documentlockfile.hxx,svl/documentlockfile.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/eitem.hxx,svl/eitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/filenotation.hxx,svl/filenotation.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/filerec.hxx,svl/filerec.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/flagitem.hxx,svl/flagitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/folderrestriction.hxx,svl/folderrestriction.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/fstathelper.hxx,svl/fstathelper.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/globalnameitem.hxx,svl/globalnameitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/hint.hxx,svl/hint.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/httpcook.hxx,svl/httpcook.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/ilstitem.hxx,svl/ilstitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/imageitm.hxx,svl/imageitm.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/inetdef.hxx,svl/inetdef.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/inethist.hxx,svl/inethist.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/inetmsg.hxx,svl/inetmsg.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/inetstrm.hxx,svl/inetstrm.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/inettype.hxx,svl/inettype.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/instrm.hxx,svl/instrm.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/intitem.hxx,svl/intitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/isethint.hxx,svl/isethint.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/itemiter.hxx,svl/itemiter.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/itempool.hxx,svl/itempool.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/itemprop.hxx,svl/itemprop.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/itemset.hxx,svl/itemset.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/languageoptions.hxx,svl/languageoptions.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/lckbitem.hxx,svl/lckbitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/listener.hxx,svl/listener.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/listeneriter.hxx,svl/listeneriter.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/lngmisc.hxx,svl/lngmisc.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/lockfilecommon.hxx,svl/lockfilecommon.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/lstner.hxx,svl/lstner.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/macitem.hxx,svl/macitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/mailenum.hxx,svl/mailenum.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/memberid.hrc,svl/memberid.hrc)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/metitem.hxx,svl/metitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/nfkeytab.hxx,svl/nfkeytab.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/nfsymbol.hxx,svl/nfsymbol.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/nfversi.hxx,svl/nfversi.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/nranges.hxx,svl/nranges.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/numuno.hxx,svl/numuno.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/ondemand.hxx,svl/ondemand.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/outstrm.hxx,svl/outstrm.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/ownlist.hxx,svl/ownlist.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/pickerhelper.hxx,svl/pickerhelper.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/pickerhistory.hxx,svl/pickerhistory.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/pickerhistoryaccess.hxx,svl/pickerhistoryaccess.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/poolcach.hxx,svl/poolcach.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/poolitem.hxx,svl/poolitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/ptitem.hxx,svl/ptitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/rectitem.hxx,svl/rectitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/restrictedpaths.hxx,svl/restrictedpaths.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/rngitem.hxx,svl/rngitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/sfontitm.hxx,svl/sfontitm.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/sharecontrolfile.hxx,svl/sharecontrolfile.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/slstitm.hxx,svl/slstitm.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/smplhint.hxx,svl/smplhint.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/solar.hrc,svl/solar.hrc)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/srchcfg.hxx,svl/srchcfg.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/srchdefs.hxx,svl/srchdefs.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/srchitem.hxx,svl/srchitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/stritem.hxx,svl/stritem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/strmadpt.hxx,svl/strmadpt.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/style.hrc,svl/style.hrc)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/style.hxx,svl/style.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/stylepool.hxx,svl/stylepool.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/svarray.hxx,svl/svarray.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/svdde.hxx,svl/svdde.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/svl.hrc,svl/svl.hrc)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/svldata.hxx,svl/svldata.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/svldllapi.h,svl/svldllapi.h)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/svstdarr.hxx,svl/svstdarr.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/szitem.hxx,svl/szitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/undo.hxx,svl/undo.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/urihelper.hxx,svl/urihelper.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/urlbmk.hxx,svl/urlbmk.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/urlfilter.hxx,svl/urlfilter.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/visitem.hxx,svl/visitem.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/whiter.hxx,svl/whiter.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/xmlement.hxx,svl/xmlement.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/zforlist.hxx,svl/zforlist.hxx)) +$(eval $(call gb_Package_add_file,svl_inc,inc/svl/zformat.hxx,svl/zformat.hxx)) diff --git a/svl/inc/PasswordHelper.hxx b/svl/inc/svl/PasswordHelper.hxx index da9bc5da99ea..da9bc5da99ea 100644 --- a/svl/inc/PasswordHelper.hxx +++ b/svl/inc/svl/PasswordHelper.hxx diff --git a/svl/inc/adrparse.hxx b/svl/inc/svl/adrparse.hxx index f2a85b9cacd5..f2a85b9cacd5 100644 --- a/svl/inc/adrparse.hxx +++ b/svl/inc/svl/adrparse.hxx diff --git a/svl/inc/broadcast.hxx b/svl/inc/svl/broadcast.hxx index 758906877bc1..758906877bc1 100644 --- a/svl/inc/broadcast.hxx +++ b/svl/inc/svl/broadcast.hxx diff --git a/svl/inc/svl/cancel.hxx b/svl/inc/svl/cancel.hxx deleted file mode 100644 index 192db6102ee8..000000000000 --- a/svl/inc/svl/cancel.hxx +++ /dev/null @@ -1,142 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _SFXCANCEL_HXX -#define _SFXCANCEL_HXX - -#include "svl/svldllapi.h" -#include <tools/string.hxx> -#include <tools/ref.hxx> -#include <svl/brdcst.hxx> -#include <svl/smplhint.hxx> - -class SfxCancellable; - -#ifdef _SFX_CANCEL_CXX -#include <svl/svarray.hxx> - -SV_DECL_PTRARR( SfxCancellables_Impl, SfxCancellable*, 0, 4 ) - -#else - -typedef SvPtrarr SfxCancellables_Impl; - -#endif - -//------------------------------------------------------------------------- - -class SVL_DLLPUBLIC SfxCancelManager: public SfxBroadcaster -, public SvWeakBase - -/* [Beschreibung] - - An Instanzen dieser Klasse k"onnen nebenl"aufige Prozesse angemeldet - werden, um vom Benutzer abbrechbar zu sein. Werden abbrechbare - Prozesse (Instanzen von <SfxCancellable>) an- oder abgemeldet, wird - dies durch einen <SfxSimpleHint> mit dem Flag SFX_HINT_CANCELLABLE - gebroadcastet. - - SfxCancelManager k"onnen hierarchisch angeordnet werden, so k"onnen - z.B. Dokument-lokale Prozesse getrennt gecancelt werden. - - [Beispiel] - - SfxCancelManager *pMgr = new SfxCancelManager; - StartListening( pMgr ); - pMailSystem->SetCancelManager( pMgr ) -*/ - -{ - SfxCancelManager* _pParent; - SfxCancellables_Impl _aJobs; - -public: - SfxCancelManager( SfxCancelManager *pParent = 0 ); - ~SfxCancelManager(); - - sal_Bool CanCancel() const; - void Cancel( sal_Bool bDeep ); - SfxCancelManager* GetParent() const { return _pParent; } - - void InsertCancellable( SfxCancellable *pJob ); - void RemoveCancellable( SfxCancellable *pJob ); - sal_uInt16 GetCancellableCount() const - { return _aJobs.Count(); } - SfxCancellable* GetCancellable( sal_uInt16 nPos ) const - { return (SfxCancellable*) _aJobs[nPos]; } -}; - -SV_DECL_WEAK( SfxCancelManager ) -//------------------------------------------------------------------------- - -class SVL_DLLPUBLIC SfxCancellable - -/* [Beschreibung] - - Instanzen dieser Klasse werden immer an einem Cancel-Manager angemeldet, - der dadurch dem Benutzer signalisieren kann, ob abbrechbare Prozesse - vorhanden sind und der die SfxCancellable-Instanzen auf 'abgebrochen' - setzen kann. - - Die im Ctor "ubergebene <SfxCancelManger>-Instanz mu\s die Instanz - dieser Klasse "uberleben! - - [Beispiel] - - { - SfxCancellable aCancel( pCancelMgr ); - while ( !aCancel && GetData() ) - Reschedule(); - } - -*/ - -{ - SfxCancelManager* _pMgr; - sal_Bool _bCancelled; - String _aTitle; - -public: - SfxCancellable( SfxCancelManager *pMgr, - const String &rTitle ) - : _pMgr( pMgr ), - _bCancelled( sal_False ), - _aTitle( rTitle ) - { pMgr->InsertCancellable( this ); } - - virtual ~SfxCancellable(); - - void SetManager( SfxCancelManager *pMgr ); - SfxCancelManager* GetManager() const { return _pMgr; } - - virtual void Cancel(); - sal_Bool IsCancelled() const { return _bCancelled; } - operator sal_Bool() const { return _bCancelled; } - const String& GetTitle() const { return _aTitle; } -}; - -#endif - diff --git a/svl/inc/svl/cnclhint.hxx b/svl/inc/svl/cnclhint.hxx deleted file mode 100644 index 864e9f367aa2..000000000000 --- a/svl/inc/svl/cnclhint.hxx +++ /dev/null @@ -1,48 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _SFXCNCLHINT_HXX -#define _SFXCNCLHINT_HXX - -#include <svl/hint.hxx> -#include <svl/cancel.hxx> -#include <tools/rtti.hxx> - -#define SFXCANCELHINT_REMOVED 1 - -class SfxCancelHint: public SfxHint -{ -private: - SfxCancellable* pCancellable; - sal_uInt16 nAction; -public: - TYPEINFO(); - SfxCancelHint( SfxCancellable*, sal_uInt16 nAction ); - sal_uInt16 GetAction() const { return nAction; } - const SfxCancellable& GetCancellable() const { return *pCancellable; } -}; - -#endif diff --git a/svl/inc/cntnrsrt.hxx b/svl/inc/svl/cntnrsrt.hxx index f7c114274981..f7c114274981 100644 --- a/svl/inc/cntnrsrt.hxx +++ b/svl/inc/svl/cntnrsrt.hxx diff --git a/svl/inc/cntwids.hrc b/svl/inc/svl/cntwids.hrc index 01a965c38652..01a965c38652 100644 --- a/svl/inc/cntwids.hrc +++ b/svl/inc/svl/cntwids.hrc diff --git a/svl/inc/converter.hxx b/svl/inc/svl/converter.hxx index c208a370bceb..c208a370bceb 100644 --- a/svl/inc/converter.hxx +++ b/svl/inc/svl/converter.hxx diff --git a/svl/inc/filenotation.hxx b/svl/inc/svl/filenotation.hxx index 65f28659e056..65f28659e056 100644 --- a/svl/inc/filenotation.hxx +++ b/svl/inc/svl/filenotation.hxx diff --git a/svl/inc/folderrestriction.hxx b/svl/inc/svl/folderrestriction.hxx index 66a99a4d49d1..66a99a4d49d1 100644 --- a/svl/inc/folderrestriction.hxx +++ b/svl/inc/svl/folderrestriction.hxx diff --git a/svl/inc/fstathelper.hxx b/svl/inc/svl/fstathelper.hxx index 17fa62c5bbeb..17fa62c5bbeb 100644 --- a/svl/inc/fstathelper.hxx +++ b/svl/inc/svl/fstathelper.hxx diff --git a/svl/inc/inetdef.hxx b/svl/inc/svl/inetdef.hxx index 533530838700..533530838700 100644 --- a/svl/inc/inetdef.hxx +++ b/svl/inc/svl/inetdef.hxx diff --git a/svl/inc/inetmsg.hxx b/svl/inc/svl/inetmsg.hxx index bcfc4ad714ad..bcfc4ad714ad 100644 --- a/svl/inc/inetmsg.hxx +++ b/svl/inc/svl/inetmsg.hxx diff --git a/svl/inc/inetstrm.hxx b/svl/inc/svl/inetstrm.hxx index efb6c35a1b68..efb6c35a1b68 100644 --- a/svl/inc/inetstrm.hxx +++ b/svl/inc/svl/inetstrm.hxx diff --git a/svl/inc/instrm.hxx b/svl/inc/svl/instrm.hxx index f27375baff25..f27375baff25 100644 --- a/svl/inc/instrm.hxx +++ b/svl/inc/svl/instrm.hxx diff --git a/svl/inc/listener.hxx b/svl/inc/svl/listener.hxx index e3bdea45169e..e3bdea45169e 100644 --- a/svl/inc/listener.hxx +++ b/svl/inc/svl/listener.hxx diff --git a/svl/inc/listeneriter.hxx b/svl/inc/svl/listeneriter.hxx index 3bfb6380acaa..3bfb6380acaa 100644 --- a/svl/inc/listeneriter.hxx +++ b/svl/inc/svl/listeneriter.hxx diff --git a/svl/inc/lngmisc.hxx b/svl/inc/svl/lngmisc.hxx index 9dbe2d4740d0..9dbe2d4740d0 100644 --- a/svl/inc/lngmisc.hxx +++ b/svl/inc/svl/lngmisc.hxx diff --git a/svl/inc/nfsymbol.hxx b/svl/inc/svl/nfsymbol.hxx index 8886f0e47f85..8886f0e47f85 100644 --- a/svl/inc/nfsymbol.hxx +++ b/svl/inc/svl/nfsymbol.hxx diff --git a/svl/inc/numuno.hxx b/svl/inc/svl/numuno.hxx index 425cff60763d..425cff60763d 100644 --- a/svl/inc/numuno.hxx +++ b/svl/inc/svl/numuno.hxx diff --git a/svl/inc/outstrm.hxx b/svl/inc/svl/outstrm.hxx index 8846bd84e5df..8846bd84e5df 100644 --- a/svl/inc/outstrm.hxx +++ b/svl/inc/svl/outstrm.hxx diff --git a/svl/inc/svl/pickerhelper.hxx b/svl/inc/svl/pickerhelper.hxx new file mode 100644 index 000000000000..307031b578d1 --- /dev/null +++ b/svl/inc/svl/pickerhelper.hxx @@ -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 _PICKERHELPER_HXX +#define _PICKERHELPER_HXX + +#include "svl/svldllapi.h" +#include "sal/types.h" +#include "com/sun/star/uno/Reference.hxx" + +namespace com +{ + namespace sun + { + namespace star + { + namespace ui + { + namespace dialogs + { + class XFilePicker; + class XFolderPicker; + } + } + } + } +} + + +namespace svt +{ + + SVL_DLLPUBLIC void SetDialogHelpId( + ::com::sun::star::uno::Reference < ::com::sun::star::ui::dialogs::XFilePicker > _mxFileDlg, + sal_Int32 _nHelpId ); + + SVL_DLLPUBLIC void SetDialogHelpId( + ::com::sun::star::uno::Reference < ::com::sun::star::ui::dialogs::XFolderPicker > _mxFileDlg, + sal_Int32 _nHelpId ); + +} + +//----------------------------------------------------------------------------- + +#endif diff --git a/svl/inc/pickerhistory.hxx b/svl/inc/svl/pickerhistory.hxx index af282e72513d..af282e72513d 100644 --- a/svl/inc/pickerhistory.hxx +++ b/svl/inc/svl/pickerhistory.hxx diff --git a/svl/inc/pickerhistoryaccess.hxx b/svl/inc/svl/pickerhistoryaccess.hxx index 1a4e8ced8381..1a4e8ced8381 100644 --- a/svl/inc/pickerhistoryaccess.hxx +++ b/svl/inc/svl/pickerhistoryaccess.hxx diff --git a/svl/inc/poolcach.hxx b/svl/inc/svl/poolcach.hxx index 182c9739f0cf..182c9739f0cf 100644 --- a/svl/inc/poolcach.hxx +++ b/svl/inc/svl/poolcach.hxx diff --git a/svl/inc/strmadpt.hxx b/svl/inc/svl/strmadpt.hxx index 0d2779504daf..0d2779504daf 100644 --- a/svl/inc/strmadpt.hxx +++ b/svl/inc/svl/strmadpt.hxx diff --git a/svl/inc/stylepool.hxx b/svl/inc/svl/stylepool.hxx index b820c9442229..b820c9442229 100644 --- a/svl/inc/stylepool.hxx +++ b/svl/inc/svl/stylepool.hxx diff --git a/svl/inc/urihelper.hxx b/svl/inc/svl/urihelper.hxx index ab2ae5878cc2..ab2ae5878cc2 100644 --- a/svl/inc/urihelper.hxx +++ b/svl/inc/svl/urihelper.hxx diff --git a/svl/inc/urlbmk.hxx b/svl/inc/svl/urlbmk.hxx index 9a37184c8ec1..9a37184c8ec1 100644 --- a/svl/inc/urlbmk.hxx +++ b/svl/inc/svl/urlbmk.hxx diff --git a/svl/inc/whiter.hxx b/svl/inc/svl/whiter.hxx index eb9bb7d7e732..eb9bb7d7e732 100644 --- a/svl/inc/whiter.hxx +++ b/svl/inc/svl/whiter.hxx diff --git a/svl/inc/xmlement.hxx b/svl/inc/svl/xmlement.hxx index d2680fbbf404..d2680fbbf404 100644 --- a/svl/inc/xmlement.hxx +++ b/svl/inc/svl/xmlement.hxx diff --git a/svl/prj/build.lst b/svl/prj/build.lst index d5897d9e9883..b48df3a6824a 100644 --- a/svl/prj/build.lst +++ b/svl/prj/build.lst @@ -1,26 +1,3 @@ -sl svl : l10n rsc offuh ucbhelper unotools cppu cppuhelper comphelper sal sot NULL +sl svl : l10n rsc offuh ucbhelper unotools cppu cppuhelper comphelper sal sot LIBXSLT:libxslt NULL sl svl usr1 - all svl_mkout NULL -sl svl\inc nmake - all svl_inc NULL -sl svl\unx\source\svdde nmake - u svl_usdde svl_inc NULL -sl svl\unx\source\svdde nmake - p svl_psdde svl_inc NULL -sl svl\source\config nmake - all svl_conf svl_inc NULL -sl svl\source\filepicker nmake - all svl_filepick svl_inc NULL -sl svl\source\filerec nmake - all svl_file svl_inc NULL -sl svl\source\items nmake - all svl__item svl_inc NULL -sl svl\source\memtools nmake - all svl_mem svl_inc NULL -sl svl\source\misc nmake - all svl__misc svl_inc NULL -sl svl\source\notify nmake - all svl_not svl_inc NULL -sl svl\source\numbers nmake - all svl_num svl_inc NULL -sl svl\source\svdde nmake - all svl__dde svl_inc NULL -sl svl\source\svsql nmake - all svl_sql svl_inc NULL -sl svl\source\undo nmake - all svl_undo svl_inc NULL -sl svl\source\uno nmake - all svl_uno svl_inc NULL -sl svl\util nmake - all svl_util svl_usdde.u svl_psdde.p svl_conf svl_filepick svl_file svl__item svl_mem svl__misc svl_not svl_num svl__dde svl_sql svl_undo svl_uno NULL -sl svl\source\fsstor nmake - all svl_fsstor svl_inc NULL -sl svl\source\passwordcontainer nmake - all svl_passcont svl_inc NULL - -# complex test for ConfigItems are marked as defect -# sl svl\qa\complex\ConfigItems\helper nmake - all svl_qa_complex_help svl_util svl_passcont NULL -# sl svl\qa\complex\ConfigItems nmake - all svl_qa_complex svl_qa_complex_help svl_util svl_passcont NULL -sl svl\qa\complex\passwordcontainer nmake - all svl_qa_complex svl_util svl_passcont NULL - +sl svl\prj nmake - all svl_prj NULL diff --git a/svl/prj/d.lst b/svl/prj/d.lst index d79346c16087..e69de29bb2d1 100644 --- a/svl/prj/d.lst +++ b/svl/prj/d.lst @@ -1,25 +0,0 @@ -mkdir: %COMMON_DEST%\bin%_EXT%\hid -mkdir: %COMMON_DEST%\res%_EXT% -mkdir: %_DEST%\inc%_EXT%\svl - -..\%COMMON_OUTDIR%\misc\*.hid %COMMON_DEST%\bin%_EXT%\hid\*.hid -..\%__SRC%\lib\isvl.lib %_DEST%\lib%_EXT%\isvl.lib -..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\* -..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\* -..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\* -..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\* - -..\inc\svl\*.hrc %_DEST%\inc%_EXT%\svl\*.hrc -..\inc\svl\*.hxx %_DEST%\inc%_EXT%\svl\*.hxx -..\inc\svl\*.h %_DEST%\inc%_EXT%\svl\*.h -..\inc\*.hrc %_DEST%\inc%_EXT%\svl\*.hrc -..\inc\*.hxx %_DEST%\inc%_EXT%\svl\*.hxx -..\inc\*.h %_DEST%\inc%_EXT%\svl\*.h - -dos: sh -c "if test %OS% = MACOSX; then macosx-create-bundle %_DEST%\bin%_EXT%\bmp=%__PRJROOT%\%__SRC%\bin%_EXT%; fi" - -*.xml %_DEST%\xml%_EXT%\*.xml - -..\%__SRC%\misc\fsstorage.component %_DEST%\xml%_EXT%\fsstorage.component -..\%__SRC%\misc\passwordcontainer.component %_DEST%\xml%_EXT%\passwordcontainer.component -..\%__SRC%\misc\svl.component %_DEST%\xml%_EXT%\svl.component diff --git a/tools/source/inet/makefile.mk b/svl/prj/makefile.mk index 1e0bdfdd2391..c73a3d944bbf 100644 --- a/tools/source/inet/makefile.mk +++ b/svl/prj/makefile.mk @@ -25,21 +25,16 @@ # #************************************************************************* -PRJ = ..$/.. -PRJNAME = tools -TARGET = inet +PRJ=.. +TARGET=prj -.INCLUDE: settings.mk -.INCLUDE : $(PRJ)$/util$/makefile.pmk +.INCLUDE : settings.mk -SLOFILES=\ - $(SLO)$/inetmime.obj \ - $(SLO)$/inetmsg.obj \ - $(SLO)$/inetstrm.obj +.IF "$(VERBOSE)"!="" +VERBOSEFLAG := +.ELSE +VERBOSEFLAG := -s +.ENDIF -OBJFILES=\ - $(OBJ)$/inetmime.obj \ - $(OBJ)$/inetmsg.obj \ - $(OBJ)$/inetstrm.obj - -.INCLUDE: target.mk +all: + cd $(PRJ) && $(GNUMAKE) $(VERBOSEFLAG) -r -j$(MAXPROCESS) $(gb_MAKETARGET) diff --git a/svl/qa/complex/ConfigItems/helper/makefile.mk b/svl/qa/complex/ConfigItems/helper/makefile.mk deleted file mode 100644 index 95f2e456fab3..000000000000 --- a/svl/qa/complex/ConfigItems/helper/makefile.mk +++ /dev/null @@ -1,74 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* -PRJ=../../../.. - -PRJNAME= svl -TARGET= ConfigItemTest -USE_DEFFILE= TRUE -ENABLE_EXCEPTIONS= TRUE -NO_BSYMBOLIC= TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -# --- Generate ----------------------------------------------------- - -INCPOST += $(PRJ)/source/inc - -# --- light services library ---------------------------------------------------- - -SHL1TARGET= svt_$(TARGET) - -SHL1OBJS= \ - $(SLO)/UserOptTest.obj \ - $(SLO)/HistoryOptTest.obj \ - $(SLO)/ConfigItemTest.obj - -# $(SLO)/PrintOptTest.obj -# $(SLO)/AccessibilityOptTest.obj - -SHL1STDLIBS= \ - $(SVLIB) \ - $(SVLLIB) \ - $(UNOTOOLSLIB) \ - $(COMPHELPERLIB) \ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ - $(SALLIB) - -SHL1DEF= $(MISC)$/$(SHL1TARGET).def -#SHL1DEPN= $(SHL1IMPLIBN) $(SHL1TARGETN) - -DEF1NAME= $(SHL1TARGET) - -SHL1VERSIONMAP= $(SOLARENV)/src/component.map - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk - diff --git a/svl/qa/complex/passwordcontainer/makefile.mk b/svl/qa/complex/passwordcontainer/makefile.mk deleted file mode 100644 index 625404682761..000000000000 --- a/svl/qa/complex/passwordcontainer/makefile.mk +++ /dev/null @@ -1,134 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -.IF "$(OOO_SUBSEQUENT_TESTS)" == "" -nothing .PHONY: -.ELSE - -PRJ = ../../.. -PRJNAME = svl -TARGET = qa_complex_passwordcontainer - -.IF "$(OOO_JUNIT_JAR)" != "" -PACKAGE = complex/passwordcontainer - -# here store only Files which contain a @Test -JAVATESTFILES = \ - PasswordContainerUnitTest.java - - -# put here all other files -JAVAFILES = $(JAVATESTFILES) \ - PasswordContainerTest.java\ - Test01.java\ - Test02.java\ - Test03.java\ - TestHelper.java\ - MasterPasswdHandler.java - - -JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar -EXTRAJARFILES = $(OOO_JUNIT_JAR) - -# Sample how to debug -# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y - -.END - -.INCLUDE: settings.mk -.INCLUDE: target.mk -.INCLUDE: installationtest.mk - -ALLTAR : javatest - -.END - - -# -# -# -# -# PRJ = ..$/..$/.. -# TARGET = PasswordContainerUnitTest -# PRJNAME=svl -# PACKAGE = complex$/passwordcontainer -# -# # --- Settings ----------------------------------------------------- -# .INCLUDE: settings.mk -# -# -# #----- compile .java files ----------------------------------------- -# -# JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar -# -# JAVAFILES =\ -# PasswordContainerUnitTest.java\ -# PasswordContainerTest.java\ -# TestHelper.java\ -# Test01.java\ -# Test02.java\ -# Test03.java\ -# MasterPasswdHandler.java -# -# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) -# -# #----- make a jar from compiled files ------------------------------ -# -# MAXLINELENGTH = 100000 -# -# JARCLASSDIRS = $(PACKAGE) -# JARTARGET = $(TARGET).jar -# JARCOMPRESS = TRUE -# -# # --- Parameters for the test -------------------------------------- -# -# # start an office if the parameter is set for the makefile -# .IF "$(OFFICE)" == "" -# CT_APPEXECCOMMAND = -# .ELSE -# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;" -# .ENDIF -# -# # test base is java complex -# CT_TESTBASE = -TestBase java_complex -# -# # test looks something like the.full.package.TestName -# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b) -# -# # start the runner application -# CT_APP = org.openoffice.Runner -# -# # --- Targets ------------------------------------------------------ -# -# .INCLUDE: target.mk -# -# RUN: run -# -# run: -# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST) -# -# diff --git a/svl/qa/makefile.mk b/svl/qa/makefile.mk deleted file mode 100644 index 7e8c7ee795cc..000000000000 --- a/svl/qa/makefile.mk +++ /dev/null @@ -1,101 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ = .. -PRJNAME=svl -TARGET = qa - -ENABLE_EXCEPTIONS = true - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -CFLAGSCXX += $(CPPUNIT_CFLAGS) - -# BEGIN ---------------------------------------------------------------- -# auto generated Target:job by codegen.pl -SHL1OBJS= \ - $(SLO)$/test_URIHelper.obj - -SHL1TARGET= URIHelper -SHL1STDLIBS=\ - $(CPPULIB) \ - $(CPPUHELPERLIB) \ - $(SALLIB) \ - $(SVLLIB) \ - $(TOOLSLIB) \ - $(UNOTOOLSLIB) \ - $(TESTSHL2LIB) \ - $(CPPUNITLIB) - -SHL1IMPLIB= i$(SHL1TARGET) -DEF1NAME =$(SHL1TARGET) -SHL1VERSIONMAP= export.map -# auto generated Target:job -# END ------------------------------------------------------------------ - -#------------------------------- All object files ------------------------------- -# do this here, so we get right dependencies -# SLOFILES=$(SHL1OBJS) - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk -.INCLUDE : _cppunit.mk - -# LLA: old stuff -# USE_DEFFILE = true -# -# .INCLUDE: settings.mk -# -# .IF "$(OS)" == "WNT" -# REGEXP = "s/^[\#].*$$//" -# .ELSE # OS, WNT -# REGEXP = 's/^[\#].*$$//' -# .ENDIF # OS, WNT -# -# SHL1TARGET = URIHelper -# SHL1OBJS = \ -# $(SLO)$/test_URIHelper.obj -# SHL1STDLIBS = \ -# $(CPPULIB) \ -# $(CPPUHELPERLIB) \ -# $(SALLIB) \ -# $(SVTOOLLIB) \ -# $(TOOLSLIB) \ -# $(UNOTOOLSLIB) -# -# DEF1NAME = $(SHL1TARGET) -# DEF1EXPORTFILE = $(MISC)$/$(SHL1TARGET).dxp -# -# .INCLUDE: target.mk -# -# $(MISC)$/$(SHL1TARGET).dxp: sce$/$(SHL1TARGET).sce -# + $(TYPE) $< | sed $(REGEXP) > $@ -# + $(TYPE) $@ | sed "s/^/test_/" > $(MISC)$/$(SHL1TARGET).tst -# + $(TYPE) $(MISC)$/$(SHL1TARGET).tst | sed "/test_./ w $@" diff --git a/svl/source/filepicker/pickerhistory.cxx b/svl/source/filepicker/pickerhistory.cxx index 4c372c48163d..27a217f1688c 100644 --- a/svl/source/filepicker/pickerhistory.cxx +++ b/svl/source/filepicker/pickerhistory.cxx @@ -27,8 +27,8 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" -#include "pickerhistory.hxx" -#include "pickerhistoryaccess.hxx" +#include <svl/pickerhistory.hxx> +#include <svl/pickerhistoryaccess.hxx> #include <cppuhelper/weakref.hxx> #include <vector> diff --git a/svl/source/filerec/makefile.mk b/svl/source/filerec/makefile.mk deleted file mode 100644 index ea2b88d8d493..000000000000 --- a/svl/source/filerec/makefile.mk +++ /dev/null @@ -1,46 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. - -PRJNAME=svl -TARGET=filerec - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk - -# --- Files -------------------------------------------------------- - -SLOFILES = \ - $(SLO)$/filerec.obj - -# --- Tagets ------------------------------------------------------- - -.INCLUDE : target.mk - diff --git a/svl/source/fsstor/makefile.mk b/svl/source/fsstor/makefile.mk deleted file mode 100644 index 1dd5d2307037..000000000000 --- a/svl/source/fsstor/makefile.mk +++ /dev/null @@ -1,74 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. -PRJNAME=svl -TARGET=fsstorage.uno -LIBTARGET=NO -ENABLE_EXCEPTIONS=TRUE - -# --- Settings ---------------------------------- - -.INCLUDE : settings.mk -DLLPRE= - -# --- Files ------------------------------------- - -SLOFILES=\ - $(SLO)$/fsfactory.obj \ - $(SLO)$/fsstorage.obj \ - $(SLO)$/oinputstreamcontainer.obj \ - $(SLO)$/ostreamcontainer.obj - -SHL1TARGET= $(TARGET) -SHL1IMPLIB= i$(TARGET) -SHL1OBJS= $(SLOFILES) -SHL1STDLIBS=\ - $(UNOTOOLSLIB) \ - $(TOOLSLIB) \ - $(COMPHELPERLIB) \ - $(UCBHELPERLIB) \ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ - $(SALLIB) - -SHL1VERSIONMAP=$(SOLARENV)/src/component.map -SHL1DEF= $(MISC)$/$(SHL1TARGET).def -DEF1NAME= $(SHL1TARGET) - -# --- Targets ---------------------------------- - -.INCLUDE : target.mk - - -ALLTAR : $(MISC)/fsstorage.component - -$(MISC)/fsstorage.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ - fsstorage.component - $(XSLTPROC) --nonet --stringparam uri \ - '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ - $(SOLARENV)/bin/createcomponent.xslt fsstorage.component diff --git a/svl/source/items/itemset.cxx b/svl/source/items/itemset.cxx index ce50cbbe84a3..69efd2e7aa2c 100644 --- a/svl/source/items/itemset.cxx +++ b/svl/source/items/itemset.cxx @@ -34,9 +34,6 @@ #include <cstdarg> #endif -#ifndef GCC -#endif - #define _SVSTDARR_USHORTS #define _SVSTDARR_ULONGS @@ -44,7 +41,7 @@ #include <svl/itemset.hxx> #include <svl/itempool.hxx> #include <svl/itemiter.hxx> -#include "whiter.hxx" +#include <svl/whiter.hxx> #include <svl/nranges.hxx> #include "whassert.hxx" diff --git a/svl/source/items/makefile.mk b/svl/source/items/makefile.mk deleted file mode 100644 index da602391239a..000000000000 --- a/svl/source/items/makefile.mk +++ /dev/null @@ -1,84 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. -PRJNAME=svl -TARGET=items -ENABLE_EXCEPTIONS=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk - -# --- Files -------------------------------------------------------- - -SLOFILES=\ - $(SLO)$/aeitem.obj \ - $(SLO)$/cenumitm.obj \ - $(SLO)$/cintitem.obj \ - $(SLO)$/cntwall.obj \ - $(SLO)$/ctypeitm.obj \ - $(SLO)$/custritm.obj \ - $(SLO)$/dateitem.obj \ - $(SLO)$/eitem.obj \ - $(SLO)$/flagitem.obj \ - $(SLO)$/globalnameitem.obj \ - $(SLO)$/ilstitem.obj \ - $(SLO)$/imageitm.obj \ - $(SLO)$/intitem.obj \ - $(SLO)$/itemiter.obj \ - $(SLO)$/itempool.obj \ - $(SLO)$/itemprop.obj \ - $(SLO)$/itemset.obj \ - $(SLO)$/lckbitem.obj \ - $(SLO)$/macitem.obj \ - $(SLO)$/poolcach.obj \ - $(SLO)$/poolio.obj \ - $(SLO)$/poolitem.obj \ - $(SLO)$/ptitem.obj \ - $(SLO)$/rectitem.obj \ - $(SLO)$/rngitem.obj \ - $(SLO)$/sfontitm.obj \ - $(SLO)$/sitem.obj \ - $(SLO)$/slstitm.obj \ - $(SLO)$/srchitem.obj \ - $(SLO)$/stritem.obj \ - $(SLO)$/style.obj \ - $(SLO)$/stylepool.obj \ - $(SLO)$/szitem.obj \ - $(SLO)$/visitem.obj \ - $(SLO)$/whiter.obj - -SRS1NAME=$(TARGET) -SRC1FILES=\ - cstitem.src - -# --- Targets ------------------------------------------------------- - -.INCLUDE : target.mk - diff --git a/svl/source/items/poolcach.cxx b/svl/source/items/poolcach.cxx index f07c19788764..6e13a3b77485 100644 --- a/svl/source/items/poolcach.cxx +++ b/svl/source/items/poolcach.cxx @@ -35,7 +35,7 @@ #include <svl/itempool.hxx> #include <svl/itemset.hxx> -#include "poolcach.hxx" +#include <svl/poolcach.hxx> // STATIC DATA ----------------------------------------------------------- diff --git a/svl/source/items/poolio.cxx b/svl/source/items/poolio.cxx index 054eb984d2fd..6982764af432 100644 --- a/svl/source/items/poolio.cxx +++ b/svl/source/items/poolio.cxx @@ -241,7 +241,7 @@ SvStream &SfxItemPool::Store(SvStream &rStream) const const SfxPoolItem *pItem = (*pArr)->operator[](j); if ( pItem && pItem->GetRefCount() ) //! siehe anderes MI-REF { - aItemsRec.NewContent(j, 'X' ); + aItemsRec.NewContent((USHORT)j, 'X' ); if ( pItem->GetRefCount() == SFX_ITEMS_SPECIAL ) rStream << (sal_uInt16) pItem->GetKind(); diff --git a/svl/source/items/stylepool.cxx b/svl/source/items/stylepool.cxx index c61faa93bd34..8ad8346af075 100644 --- a/svl/source/items/stylepool.cxx +++ b/svl/source/items/stylepool.cxx @@ -34,7 +34,7 @@ #include <vector> #include <map> -#include "stylepool.hxx" +#include <svl/stylepool.hxx> #include <svl/itemiter.hxx> #include <svl/itempool.hxx> diff --git a/svl/source/items/whiter.cxx b/svl/source/items/whiter.cxx index fe4a47b1dbaf..17e0e18115bb 100644 --- a/svl/source/items/whiter.cxx +++ b/svl/source/items/whiter.cxx @@ -28,10 +28,8 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" // INCLUDE --------------------------------------------------------------- -#ifndef GCC -#endif -#include "whiter.hxx" +#include <svl/whiter.hxx> #include <svl/itemset.hxx> DBG_NAME(SfxWhichIter) diff --git a/svl/source/misc/PasswordHelper.cxx b/svl/source/misc/PasswordHelper.cxx index 05e9e8a65897..73e1c6c050a0 100644 --- a/svl/source/misc/PasswordHelper.cxx +++ b/svl/source/misc/PasswordHelper.cxx @@ -28,10 +28,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" - -#ifndef GCC -#endif -#include "PasswordHelper.hxx" +#include <svl/PasswordHelper.hxx> #include <rtl/digest.h> #include <tools/string.hxx> diff --git a/svl/source/misc/adrparse.cxx b/svl/source/misc/adrparse.cxx index b6dfec5cbb63..f0faa8ca0504 100644 --- a/svl/source/misc/adrparse.cxx +++ b/svl/source/misc/adrparse.cxx @@ -28,7 +28,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" #include <tools/inetmime.hxx> -#include <adrparse.hxx> +#include <svl/adrparse.hxx> namespace unnamed_svl_adrparse {} using namespace unnamed_svl_adrparse; diff --git a/svl/source/misc/filenotation.cxx b/svl/source/misc/filenotation.cxx index abec6bb310fc..61c98bf5a851 100644 --- a/svl/source/misc/filenotation.cxx +++ b/svl/source/misc/filenotation.cxx @@ -27,7 +27,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" -#include "filenotation.hxx" +#include <svl/filenotation.hxx> #include <osl/file.h> #include <osl/diagnose.h> #include <tools/urlobj.hxx> diff --git a/svl/source/misc/folderrestriction.cxx b/svl/source/misc/folderrestriction.cxx index f7eef328de7d..412ef60e5627 100644 --- a/svl/source/misc/folderrestriction.cxx +++ b/svl/source/misc/folderrestriction.cxx @@ -28,7 +28,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" -#include "folderrestriction.hxx" +#include <svl/folderrestriction.hxx> #include "osl/process.h" #include "tools/urlobj.hxx" #include "unotools/localfilehelper.hxx" diff --git a/svl/source/misc/fstathelper.cxx b/svl/source/misc/fstathelper.cxx index c373e035fe05..b90df8fb6f7e 100644 --- a/svl/source/misc/fstathelper.cxx +++ b/svl/source/misc/fstathelper.cxx @@ -32,8 +32,7 @@ #include <tools/string.hxx> #include <ucbhelper/content.hxx> #include <com/sun/star/util/DateTime.hpp> - -#include <fstathelper.hxx> +#include <svl/fstathelper.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; diff --git a/svl/source/misc/lngmisc.cxx b/svl/source/misc/lngmisc.cxx index de53c0d2f63f..aba411079074 100644 --- a/svl/source/misc/lngmisc.cxx +++ b/svl/source/misc/lngmisc.cxx @@ -27,15 +27,13 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" - -#include <lngmisc.hxx> +#include <svl/lngmisc.hxx> #include <tools/solar.h> #include <tools/string.hxx> #include <tools/debug.hxx> #include <rtl/ustrbuf.hxx> #include <rtl/ustring.hxx> - using namespace rtl; namespace linguistic diff --git a/svl/source/misc/makefile.mk b/svl/source/misc/makefile.mk deleted file mode 100644 index a68cb396f22c..000000000000 --- a/svl/source/misc/makefile.mk +++ /dev/null @@ -1,70 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. -PRJNAME=svl -TARGET=misc - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk - -# --- Files -------------------------------------------------------- - -EXCEPTIONSFILES=\ - $(SLO)$/documentlockfile.obj \ - $(SLO)$/folderrestriction.obj \ - $(SLO)$/fstathelper.obj \ - $(SLO)$/lockfilecommon.obj \ - $(SLO)$/ownlist.obj \ - $(SLO)$/restrictedpaths.obj \ - $(SLO)$/sharecontrolfile.obj \ - $(SLO)$/strmadpt.obj \ - $(SLO)$/svldata.obj \ - $(SLO)$/urihelper.obj - -SLOFILES=\ - $(EXCEPTIONSFILES) \ - $(SLO)$/adrparse.obj \ - $(SLO)$/filenotation.obj \ - $(SLO)$/inethist.obj \ - $(SLO)$/inettype.obj \ - $(SLO)$/lngmisc.obj \ - $(SLO)$/PasswordHelper.obj - -SRS1NAME=$(TARGET) -SRC1FILES=\ - mediatyp.src - -# --- Targets ------------------------------------------------------- - -.INCLUDE : target.mk - - - - diff --git a/svl/source/misc/strmadpt.cxx b/svl/source/misc/strmadpt.cxx index 24ed126cde25..e726601f837d 100644 --- a/svl/source/misc/strmadpt.cxx +++ b/svl/source/misc/strmadpt.cxx @@ -35,9 +35,9 @@ #include <set> #include <rtl/alloc.h> #include <rtl/memory.h> -#include <instrm.hxx> -#include <outstrm.hxx> -#include <strmadpt.hxx> +#include <svl/instrm.hxx> +#include <svl/outstrm.hxx> +#include <svl/strmadpt.hxx> using namespace com::sun::star; diff --git a/svl/source/misc/svldata.cxx b/svl/source/misc/svldata.cxx index 35c9fca3aef2..f4eae26d2276 100644 --- a/svl/source/misc/svldata.cxx +++ b/svl/source/misc/svldata.cxx @@ -75,7 +75,7 @@ SimpleResMgr* ImpSvlData::GetSimpleRM(const ::com::sun::star::lang::Locale& rLoc = (*static_cast< SimpleResMgrMap * >(m_pThreadsafeRMs))[aISOcode]; if (!rResMgr) { - rResMgr = new SimpleResMgr(CREATEVERSIONRESMGR_NAME(svs), rLocale ); + rResMgr = new SimpleResMgr(CREATEVERSIONRESMGR_NAME(svl), rLocale ); } return rResMgr; } diff --git a/svl/source/misc/urihelper.cxx b/svl/source/misc/urihelper.cxx index 46063564193d..656000fceae3 100644 --- a/svl/source/misc/urihelper.cxx +++ b/svl/source/misc/urihelper.cxx @@ -27,7 +27,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" -#include <urihelper.hxx> +#include <svl/urihelper.hxx> #include <com/sun/star/beans/XPropertySet.hpp> #include "com/sun/star/lang/WrappedTargetRuntimeException.hpp" #include "com/sun/star/lang/XMultiComponentFactory.hpp" diff --git a/svl/source/notify/broadcast.cxx b/svl/source/notify/broadcast.cxx index b09288cc83e4..046b584e4385 100644 --- a/svl/source/notify/broadcast.cxx +++ b/svl/source/notify/broadcast.cxx @@ -32,9 +32,9 @@ #endif #include <tools/debug.hxx> -#include "listener.hxx" -#include "listeneriter.hxx" -#include "broadcast.hxx" +#include <svl/listener.hxx> +#include <svl/listeneriter.hxx> +#include <svl/broadcast.hxx> #include <svl/smplhint.hxx> diff --git a/svl/source/notify/cancel.cxx b/svl/source/notify/cancel.cxx deleted file mode 100644 index 2ae43bfaf1ae..000000000000 --- a/svl/source/notify/cancel.cxx +++ /dev/null @@ -1,201 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svl.hxx" -#define _SFX_CANCEL_CXX -#include <svl/cancel.hxx> - -#include <vos/mutex.hxx> -#include <tools/debug.hxx> - -#include <svl/smplhint.hxx> -#include <svl/cnclhint.hxx> -#include <rtl/instance.hxx> - -namespace { struct lclMutex : public rtl::Static< ::vos::OMutex, lclMutex >{}; } - -//========================================================================= - -SfxCancelManager::SfxCancelManager( SfxCancelManager *pParent ) -: _pParent( pParent ) -{ -} - -//------------------------------------------------------------------------- - -SfxCancelManager::~SfxCancelManager() -{ - DBG_ASSERT( _pParent || !_aJobs.Count(), "deleting SfxCancelManager in use" ); - for ( sal_uInt16 n = _aJobs.Count(); n--; ) - _aJobs.GetObject(n)->SetManager( _pParent ); -} - -//------------------------------------------------------------------------- - -sal_Bool SfxCancelManager::CanCancel() const - -/* [Beschreibung] - - Liefert sal_True wenn an diesem CancelManager oder an einem Parent - ein Job l"auft. -*/ - -{ - ::vos::OGuard aGuard( lclMutex::get() ); - return _aJobs.Count() > 0 || ( _pParent && _pParent->CanCancel() ); -} - -//------------------------------------------------------------------------- - -void SfxCancelManager::Cancel( sal_Bool bDeep ) - -/* [Beschreibung] - - Diese Methode markiert alle angemeldeten <SfxCancellable>-Instanzen - als suspendiert. -*/ - -{ - ::vos::OGuard aGuard( lclMutex::get() ); - SfxCancelManagerWeak xWeak( this ); - for ( sal_uInt16 n = _aJobs.Count(); n-- && xWeak.Is(); ) - if ( n < _aJobs.Count() ) - _aJobs.GetObject(n)->Cancel(); - if ( xWeak.Is() && _pParent ) - _pParent->Cancel( bDeep ); -} - -//------------------------------------------------------------------------- - -void SfxCancelManager::InsertCancellable( SfxCancellable *pJob ) - -/* [Beschreibung] - - Diese interne Methode tr"agt 'pJob' in die Liste der unterbrechbaren - Jobs ein und Broadcastet dies. Jeder <SfxCancellable> darf nur - maximal einmal angemeldet sein, dies geschiet in seinem Ctor. -*/ - -{ -#ifdef GPF_ON_EMPTY_TITLE - if ( !pJob->GetTitle() ) - { - DBG_ERROR( "SfxCancellable: empty titles not allowed (Vermummungsverbot)" ) - *(int*)0 = 0; - } -#endif - - ::vos::OClearableGuard aGuard( lclMutex::get() ); - _aJobs.C40_INSERT( SfxCancellable, pJob, _aJobs.Count() ); - - aGuard.clear(); - Broadcast( SfxSimpleHint( SFX_HINT_CANCELLABLE ) ); -} - -//------------------------------------------------------------------------- - - -void SfxCancelManager::RemoveCancellable( SfxCancellable *pJob ) - -/* [Beschreibung] - - Diese interne Methode tr"agt 'pJob' aus die Liste der unterbrechbaren - Jobs aus und Broadcastet dies. Dieser Aufruf mu\s paarig nach einem - <InsertCancellable> erfolgen und wird im Dtor des <SfxCancellable> - ausgel"ost. -*/ - -{ - ::vos::OClearableGuard aGuard( lclMutex::get() ); - const SfxCancellable *pTmp = pJob; - sal_uInt16 nPos = _aJobs.GetPos( pTmp ); - if ( nPos != 0xFFFF ) - { - _aJobs.Remove( nPos , 1 ); - aGuard.clear(); - Broadcast( SfxSimpleHint( SFX_HINT_CANCELLABLE ) ); - Broadcast( SfxCancelHint( pJob, SFXCANCELHINT_REMOVED ) ); - } -} - -//------------------------------------------------------------------------- - -SfxCancellable::~SfxCancellable() -{ - SfxCancelManager* pMgr = _pMgr; - if ( pMgr ) - pMgr->RemoveCancellable( this ); -} - -//------------------------------------------------------------------------- - -void SfxCancellable::Cancel() - -/* [Description] - - This virtual function is called when the user hits the cancel-button. - If you overload it, you can stop your activities. Please always call - 'SfxCancellable::Cancel()'. -*/ - -{ -#ifdef GFP_ON_NO_CANCEL - if ( _bCancelled < 5 ) - ++_bCancelled; - else - { - delete this; - } -#else - _bCancelled = sal_True; -#endif -} - -//------------------------------------------------------------------------- - -void SfxCancellable::SetManager( SfxCancelManager *pMgr ) -{ - SfxCancelManager* pTmp = _pMgr; - if ( pTmp ) - pTmp->RemoveCancellable( this ); - _pMgr = pMgr; - if ( pMgr ) - pMgr->InsertCancellable( this ); -} - -//------------------------------------------------------------------------- - -TYPEINIT1(SfxCancelHint, SfxHint); - -SfxCancelHint::SfxCancelHint( SfxCancellable* pJob, sal_uInt16 _nAction ) -{ - pCancellable = pJob; - nAction = _nAction; -} - - diff --git a/svl/source/notify/listener.cxx b/svl/source/notify/listener.cxx index 7ee0f290ff31..8a90a0ddfd3c 100644 --- a/svl/source/notify/listener.cxx +++ b/svl/source/notify/listener.cxx @@ -27,17 +27,12 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" -#ifndef GCC -#endif -#ifndef DEBUG_HXX #include <tools/debug.hxx> -#endif - -#include "broadcast.hxx" -#include "listener.hxx" +#include <svl/broadcast.hxx> +#include <svl/listener.hxx> #include "listenerbase.hxx" -#include "listeneriter.hxx" +#include <svl/listeneriter.hxx> //==================================================================== diff --git a/svl/source/notify/listenerbase.cxx b/svl/source/notify/listenerbase.cxx index ec899ee9d70b..4dedd24cbe0e 100644 --- a/svl/source/notify/listenerbase.cxx +++ b/svl/source/notify/listenerbase.cxx @@ -27,17 +27,12 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" -#ifndef GCC -#endif -#ifndef DEBUG_HXX #include <tools/debug.hxx> -#endif - #include "listenerbase.hxx" -#include "listeneriter.hxx" -#include "listener.hxx" -#include "broadcast.hxx" +#include <svl/listeneriter.hxx> +#include <svl/listener.hxx> +#include <svl/broadcast.hxx> SvtListenerBase::SvtListenerBase( SvtListener& rLst, diff --git a/svl/source/notify/listeneriter.cxx b/svl/source/notify/listeneriter.cxx index 5dda8d0433b4..2078393822cb 100644 --- a/svl/source/notify/listeneriter.cxx +++ b/svl/source/notify/listeneriter.cxx @@ -27,14 +27,12 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" -#ifndef GCC -#endif #include <tools/debug.hxx> #include "listenerbase.hxx" -#include "listeneriter.hxx" -#include "broadcast.hxx" -#include "listener.hxx" +#include <svl/listeneriter.hxx> +#include <svl/broadcast.hxx> +#include <svl/listener.hxx> SvtListenerIter* SvtListenerIter::pListenerIters = 0; diff --git a/svl/source/notify/makefile.mk b/svl/source/notify/makefile.mk deleted file mode 100644 index c2e6648907e5..000000000000 --- a/svl/source/notify/makefile.mk +++ /dev/null @@ -1,62 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. - -PRJNAME=svl -TARGET=notify - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk - -# --- Files -------------------------------------------------------- - -SLOFILES = \ - $(SLO)$/smplhint.obj \ - $(SLO)$/hint.obj \ - $(SLO)$/lstner.obj \ - $(SLO)$/isethint.obj \ - $(SLO)$/brdcst.obj \ - $(SLO)$/listener.obj \ - $(SLO)$/listenerbase.obj \ - $(SLO)$/listeneriter.obj \ - $(SLO)$/broadcast.obj - -HXX1TARGET= notify -HXX1EXT= hxx -HXX1FILES= $(INC)$/hint.hxx \ - $(INC)$/smplhint.hxx \ - $(INC)$/lstner.hxx \ - $(INC)$/brdcst.hxx -HXX1EXCL= -E:*include* - -# --- Targets ------------------------------------------------------- - -.INCLUDE : target.mk - diff --git a/svl/source/numbers/makefile.mk b/svl/source/numbers/makefile.mk deleted file mode 100644 index 87a367566a8b..000000000000 --- a/svl/source/numbers/makefile.mk +++ /dev/null @@ -1,74 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. - -PRJNAME=svl -TARGET=numbers -LIBTARGET=NO - -PROJECTPCH= -PROJECTPCHSOURCE= - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk - -# --- Files -------------------------------------------------------- - -EXCEPTIONSFILES= \ - $(SLO)$/numuno.obj \ - $(SLO)$/numfmuno.obj \ - $(SLO)$/supservs.obj \ - $(SLO)$/zforlist.obj - -SLOFILES = \ - $(EXCEPTIONSFILES) \ - $(SLO)$/zforfind.obj \ - $(SLO)$/zformat.obj \ - $(SLO)$/zforscan.obj \ - $(SLO)$/numhead.obj - -LIB1TARGET= $(SLB)$/$(TARGET).uno.lib -LIB1OBJFILES= \ - $(SLO)$/numfmuno.obj \ - $(SLO)$/supservs.obj - -LIB2TARGET= $(SLB)$/$(TARGET).lib -LIB2OBJFILES= \ - $(SLO)$/zforfind.obj \ - $(SLO)$/zforlist.obj \ - $(SLO)$/zformat.obj \ - $(SLO)$/zforscan.obj \ - $(SLO)$/numuno.obj \ - $(SLO)$/numhead.obj - -# --- Targets ------------------------------------------------------- - -.INCLUDE : target.mk - diff --git a/svl/source/numbers/numfmuno.cxx b/svl/source/numbers/numfmuno.cxx index be5622fdf225..a0af8caef8ae 100644 --- a/svl/source/numbers/numfmuno.cxx +++ b/svl/source/numbers/numfmuno.cxx @@ -40,7 +40,7 @@ #include <com/sun/star/beans/PropertyAttribute.hpp> #include "numfmuno.hxx" -#include "numuno.hxx" +#include <svl/numuno.hxx> #include <svl/zforlist.hxx> #include <svl/zformat.hxx> #include <svl/itemprop.hxx> diff --git a/svl/source/numbers/numuno.cxx b/svl/source/numbers/numuno.cxx index a6208657406e..94f535c48b02 100644 --- a/svl/source/numbers/numuno.cxx +++ b/svl/source/numbers/numuno.cxx @@ -38,7 +38,7 @@ #include <osl/mutex.hxx> #include <rtl/uuid.h> -#include "numuno.hxx" +#include <svl/numuno.hxx> #include "numfmuno.hxx" #include <svl/zforlist.hxx> diff --git a/svl/source/numbers/supservs.cxx b/svl/source/numbers/supservs.cxx index 90d41977e974..93e6051a21ce 100644 --- a/svl/source/numbers/supservs.cxx +++ b/svl/source/numbers/supservs.cxx @@ -34,8 +34,8 @@ #include <tools/debug.hxx> #include <vos/mutex.hxx> #include <tools/stream.hxx> -#include <strmadpt.hxx> -#include "instrm.hxx" +#include <svl/strmadpt.hxx> +#include <svl/instrm.hxx> using namespace ::com::sun::star::uno; using namespace ::com::sun::star::lang; diff --git a/svl/source/numbers/supservs.hxx b/svl/source/numbers/supservs.hxx index 45f6b3a8e285..85c5456beb01 100644 --- a/svl/source/numbers/supservs.hxx +++ b/svl/source/numbers/supservs.hxx @@ -28,7 +28,7 @@ #ifndef _SVTOOLS_NUMBERS_SUPPLIERSERVICE_HXX_ #define _SVTOOLS_NUMBERS_SUPPLIERSERVICE_HXX_ -#include "numuno.hxx" +#include <svl/numuno.hxx> #include <svl/zforlist.hxx> #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index b601bcd89f2a..3345a19513bd 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -47,13 +47,13 @@ #define _ZFORMAT_CXX #include <svl/zformat.hxx> -#include "zforscan.hxx" +#include <zforscan.hxx> #include "zforfind.hxx" #include <svl/zforlist.hxx> #include "numhead.hxx" #include <unotools/digitgroupingiterator.hxx> -#include "nfsymbol.hxx" +#include <svl/nfsymbol.hxx> #include <cmath> diff --git a/svl/source/numbers/zforscan.cxx b/svl/source/numbers/zforscan.cxx index ece26cff43b1..000649a6de80 100644 --- a/svl/source/numbers/zforscan.cxx +++ b/svl/source/numbers/zforscan.cxx @@ -45,7 +45,7 @@ #define _ZFORSCAN_CXX #include "zforscan.hxx" #undef _ZFORSCAN_CXX -#include "nfsymbol.hxx" +#include <svl/nfsymbol.hxx> using namespace svt; const sal_Unicode cNonBreakingSpace = 0xA0; diff --git a/svl/source/numbers/zforscan.hxx b/svl/source/numbers/zforscan.hxx index 0e82021acb3c..9b04921cb7f4 100644 --- a/svl/source/numbers/zforscan.hxx +++ b/svl/source/numbers/zforscan.hxx @@ -32,7 +32,7 @@ #include <i18npool/lang.h> #include <tools/color.hxx> #include <svl/nfkeytab.hxx> -#include "nfsymbol.hxx" +#include <svl/nfsymbol.hxx> class SvNumberFormatter; struct ImpSvNumberformatInfo; diff --git a/svl/source/passwordcontainer/makefile.mk b/svl/source/passwordcontainer/makefile.mk deleted file mode 100644 index 626a6ffc5830..000000000000 --- a/svl/source/passwordcontainer/makefile.mk +++ /dev/null @@ -1,70 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. -PRJNAME=svl -TARGET=passwordcontainer.uno -LIBTARGET=NO -ENABLE_EXCEPTIONS=TRUE - -# --- Settings ---------------------------------- - -.INCLUDE : settings.mk -DLLPRE= - -# --- Files ------------------------------------- - -SLOFILES= \ - $(SLO)$/passwordcontainer.obj\ - $(SLO)$/syscreds.obj - -SHL1TARGET= $(TARGET) -SHL1IMPLIB= i$(TARGET) -SHL1OBJS= $(SLOFILES) -SHL1STDLIBS=\ - $(UNOTOOLSLIB) \ - $(UCBHELPERLIB) \ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ - $(SALLIB) - -SHL1VERSIONMAP=$(SOLARENV)/src/component.map -SHL1DEF= $(MISC)$/$(SHL1TARGET).def -DEF1NAME= $(SHL1TARGET) - -# --- Targets ---------------------------------- - -.INCLUDE : target.mk - - -ALLTAR : $(MISC)/passwordcontainer.component - -$(MISC)/passwordcontainer.component .ERRREMOVE : \ - $(SOLARENV)/bin/createcomponent.xslt passwordcontainer.component - $(XSLTPROC) --nonet --stringparam uri \ - '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ - $(SOLARENV)/bin/createcomponent.xslt passwordcontainer.component diff --git a/svl/source/svdde/ddeml1.cxx b/svl/source/svdde/ddeml1.cxx deleted file mode 100644 index 421fe6fd214d..000000000000 --- a/svl/source/svdde/ddeml1.cxx +++ /dev/null @@ -1,2658 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svl.hxx" - -/* - ToDo / Bugs: - - - DdeInitiate: Eigener Thread? - - Timeout bei Disconnects (IBM:nicht auf Ack warten!) - - Konzept Errorhandling (globale/lokale Fehler) - - Bedeutung/Anwendung Conversation-Contexte - - Bei Zugriffen auf ConversationHandles WindowHandles checken - - Namen der Partner-App ermitteln - - Codepage-Geraffel -*/ -#define INCL_DOSPROCESS - -#include "ddemlimp.hxx" - -#define LOGFILE -#define STATUSFILE -#define DDEDATAFILE -#include "ddemldeb.hxx" - - -#if defined (OS2) && defined (__BORLANDC__) -#pragma option -w-par -#endif - -// static -inline sal_Bool ImpDdeMgr::MyWinDdePostMsg( HWND hWndTo, HWND hWndFrom, - sal_uInt16 nMsg, PDDESTRUCT pData, sal_uIntPtr nFlags ) -{ - sal_Bool bSuccess = WinDdePostMsg( hWndTo,hWndFrom,nMsg,pData,nFlags); - if( !bSuccess ) - { - WRITELOG("WinDdePostMsg:Failed!") - if ( !(nFlags & DDEPM_NOFREE) ) - { - MyDosFreeMem( pData,"MyWinDdePostMsg" ); - } - } - return bSuccess; -} - - -// ********************************************************************* -// ImpDdeMgr -// ********************************************************************* - -sal_uInt16 ImpDdeMgr::nLastErrInstance = 0; - -// -// Conversation-WndProc -// Steuert Transaktionen eines Conversationhandles -// -MRESULT EXPENTRY ConvWndProc(HWND hWnd,sal_uIntPtr nMsg,MPARAM nPar1,MPARAM nPar2) -{ -#if defined(DBG_UTIL) && defined(OV_DEBUG) - if( nMsg >= WM_DDE_FIRST && nMsg <= WM_DDE_LAST) - { - ////WRITELOG("::ConvWndProc:DDE-Msg received") - } -#endif - ImpConvWndData* pObj = (ImpConvWndData*)WinQueryWindowULong( hWnd, 0 ); - return pObj->pThis->ConvWndProc( hWnd, nMsg, nPar1, nPar2 ); -} - -// -// Server-WndProc -// DDE-Server-Window der App -// -MRESULT EXPENTRY ServerWndProc(HWND hWnd,sal_uIntPtr nMsg,MPARAM nPar1,MPARAM nPar2) -{ -#if defined(DBG_UTIL) && defined(OV_DEBUG) - if( nMsg >= WM_DDE_FIRST && nMsg <= WM_DDE_LAST) - { - ////WRITELOG("::ServerWndProc:DDE-Msg received") - } -#endif - ImpDdeMgr* pObj = (ImpDdeMgr*)WinQueryWindowULong( hWnd, 0 ); - return pObj->SrvWndProc( hWnd, nMsg, nPar1, nPar2 ); -} - - -inline HDDEDATA ImpDdeMgr::Callback( sal_uInt16 nTransactionType, - sal_uInt16 nClipboardFormat, HCONV hConversationHandle, HSZ hsz1, - HSZ hsz2, HDDEDATA hData, sal_uIntPtr nData1, sal_uIntPtr nData2 ) -{ - HDDEDATA hRet = (HDDEDATA)0; - if( pCallback ) - hRet = (*pCallback)(nTransactionType, nClipboardFormat, - hConversationHandle, hsz1, hsz2, hData, nData1, nData2); - return hRet; -} - - - -ImpDdeMgr::ImpDdeMgr() -{ - nLastErrInstance = DMLERR_NO_ERROR; - pCallback = 0; - nTransactFilter = 0; - nServiceCount = 0; - pServices = 0; - pAppTable = 0; - pConvTable = 0; - pTransTable = 0; - bServFilterOn = sal_True; - bInSyncTrans = sal_False; - - CreateServerWnd(); - pData = InitAll(); - if ( !pData ) - nLastErrInstance = DMLERR_MEMORY_ERROR; - else - RegisterDDEMLApp(); -} - -ImpDdeMgr::~ImpDdeMgr() -{ - CleanUp(); - DestroyServerWnd(); -// Named Shared Mem vom BS loeschen lassen, da nicht bekannt ist, -// wieviele DDEML-Instanzen die App erzeugt hat, und OS/2 -// keinen App-Referenzzaehler fuer shared mem fuehrt. -// if ( pData ) -// DosFreeMem( pData ); -} - - -sal_Bool ImpDdeMgr::IsSameInstance( HWND hWnd ) -{ - TID tid; PID pid; - WinQueryWindowProcess( hWnd, &pid, &tid ); - return (sal_Bool)(pid == pidThis); -} - -HSZ ImpDdeMgr::GetAppName( HWND hWnd ) -{ - return 0; -} - -// static -ImpDdeMgr* ImpDdeMgr::GetImpDdeMgrInstance( HWND hWnd ) -{ - ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData(); - if( !pData ) - return 0; - - ImpDdeMgr* pResult = 0; - TID tid; PID pidApp; - WinQueryWindowProcess( hWnd, &pidApp, &tid ); - HWND* pApp = ImpDdeMgr::GetAppTable( pData ); - sal_uInt16 nCurApp = 0; - while( nCurApp < pData->nMaxAppCount ) - { - HWND hCurWin = *pApp; - if( hCurWin ) - { - PID pidCurApp; - WinQueryWindowProcess( hCurWin, &pidCurApp, &tid ); - if( pidCurApp == pidApp ) - { - pResult = (ImpDdeMgr*)WinQueryWindowULong( hCurWin, 0 ); - break; - } - } - pApp++; - nCurApp++; - } - return pResult; -} - - - - - -void ImpDdeMgr::CleanUp() -{ - DisconnectAll(); - ImpService* pPtr = pServices; - if( pPtr ) - { - for( sal_uInt16 nIdx = 0; nIdx < nServiceCount; nIdx++, pPtr++ ) - { - HSZ hStr = pPtr->hBaseServName; - if( hStr ) - DdeFreeStringHandle( hStr ); - hStr = pPtr->hInstServName; - if( hStr ) - DdeFreeStringHandle( hStr ); - } - nServiceCount = 0; - delete pServices; - pServices = 0; - } - bServFilterOn = sal_True; // default setting DDEML - UnregisterDDEMLApp(); -} - -void ImpDdeMgr::RegisterDDEMLApp() -{ - HWND* pPtr = pAppTable; - HWND hCur; - sal_uInt16 nPos = 0; - while( nPos < pData->nMaxAppCount ) - { - hCur = *pPtr; - if (hCur == (HWND)0 ) - { - // in Tabelle stellen - *pPtr = hWndServer; - break; - } - nPos++; - pPtr++; - } -} - -void ImpDdeMgr::UnregisterDDEMLApp() -{ - HWND* pPtr = pAppTable; - sal_uInt16 nPos = 0; - while( nPos < pData->nMaxAppCount ) - { - if (*pPtr == hWndServer ) - { - *pPtr = 0; - break; - } - nPos++; - pPtr++; - } -} - -// static -ImpDdeMgrData* ImpDdeMgr::AccessMgrData() -{ - ImpDdeMgrData* pData = 0; - APIRET nRet = DosGetNamedSharedMem((PPVOID)&pData,DDEMLDATA,PAG_READ|PAG_WRITE); - DBG_ASSERT(!nRet,"DDE:AccessMgrData failed"); - return pData; -} - -sal_uInt16 ImpDdeMgr::DdeGetLastError() -{ - sal_uInt16 nErr; - if ( !pData ) - nErr = DMLERR_DLL_NOT_INITIALIZED; - else if ( nLastErrInstance ) - nErr = nLastErrInstance; - else - nErr = pData->nLastErr; - - nLastErrInstance = 0; - pData->nLastErr = 0; - return nErr; -} - - - -sal_uInt16 ImpDdeMgr::DdeInitialize( PFNCALLBACK pCallbackProc, sal_uIntPtr nTransactionFilter ) -{ - if ( !nLastErrInstance ) - { - if ( !pCallbackProc ) - { - nLastErrInstance = DMLERR_INVALIDPARAMETER; - return nLastErrInstance; - } - pCallback = pCallbackProc; - nTransactFilter = nTransactionFilter; - nTransactFilter |= CBF_FAIL_SELFCONNECTIONS; - } - return nLastErrInstance; -} - - -// static -HWND ImpDdeMgr::NextFrameWin( HENUM hEnum ) -{ - char aBuf[ 10 ]; - - HWND hWnd = WinGetNextWindow( hEnum ); - while( hWnd ) - { - WinQueryClassName( hWnd, sizeof(aBuf)-1, (PCH)aBuf ); - // Frame-Window ? - if( !strcmp( aBuf, "#1" ) ) // #define WC_FRAME ((PSZ)0xffff0001L) - break; - hWnd = WinGetNextWindow( hEnum ); - } - return hWnd; -} - - -HCONV ImpDdeMgr::DdeConnectImp( HSZ hszService,HSZ hszTopic,CONVCONTEXT* pCC) -{ - hCurConv = 0; - if( !pCC ) - pCC = &aDefaultContext; - - sal_uIntPtr nBufLen; - PSZ pService = AllocAtomName( (ATOM)hszService, nBufLen ); - PSZ pTopic = AllocAtomName( (ATOM)hszTopic, nBufLen ); -#if 0 && defined(OV_DEBUG) - String aStr("DdeConnectImp Service:"); - aStr += pService; - aStr += " Topic:"; - aStr += pTopic; - WRITELOG((char*)(const char*)aStr) -#endif - -#if defined(OV_DEBUG) - if( !strcmp(pService,"oliver voeltz") ) - { - WRITESTATUS("Table of connections"); - MyDosFreeMem( pTopic,"DdeConnectImp" ); - MyDosFreeMem( pService,"DdeConnectImp" ); - return 0; - } -#endif - -#if 0 - // original pm-fkt benutzen - HWND hWndCurClient = CreateConversationWnd(); - WinDdeInitiate( hWndCurClient, pService, pTopic, pCC ); - if( GetConversationWndRefCount(hWndCurClient) == 0) - DestroyConversationWnd( hWndCurClient ); -#else - // eigener Verbindungsaufbau - HENUM hEnum = WinBeginEnumWindows( HWND_DESKTOP ); - HWND hWndCurSrv = NextFrameWin( hEnum ); - HWND hWndCurClient = CreateConversationWnd(); - while( hWndCurSrv && !hCurConv ) - { - if( hWndCurSrv != hWndServer || - ((nTransactFilter & CBF_FAIL_SELFCONNECTIONS)==0 )) - { - // pro DDE-Server ein Conversation-Window erzeugen - if( GetConversationWndRefCount(hWndCurClient) >= 2) - { - DestroyConversationWnd( hWndCurClient ); - hWndCurClient = CreateConversationWnd(); - } - MyInitiateDde(hWndCurSrv,hWndCurClient,hszService,hszTopic,pCC); - if( !bListConnect && hCurConv ) - break; - } - hWndCurSrv = NextFrameWin( hEnum ); - } - - if( GetConversationWndRefCount(hWndCurClient) == 0) - DestroyConversationWnd( hWndCurClient ); - WinEndEnumWindows( hEnum ); -#endif - - if( !hCurConv ) - nLastErrInstance = DMLERR_NO_CONV_ESTABLISHED; - -#if 0 && defined(OV_DEBUG) - String aCStr( "DdeConnectImp:End "); - if( nLastErrInstance != DMLERR_NO_CONV_ESTABLISHED ) - aCStr += "(Success)"; - else - aCStr += "(Failed)"; - WRITELOG((char*)aCStr.GetStr()) -#endif - - MyDosFreeMem( pTopic,"DdeConnectImp" ); - MyDosFreeMem( pService,"DdeConnectImp" ); - return hCurConv; -} - -HCONV ImpDdeMgr::DdeConnect( HSZ hszService, HSZ hszTopic, CONVCONTEXT* pCC) -{ - ////WRITELOG("DdeConnect:Start") - bListConnect = sal_False; - HCONV hResult = DdeConnectImp( hszService, hszTopic, pCC ); - ////WRITELOG("DdeConnect:End") - ////WRITESTATUS("DdeConnect:End") - return hResult; -} - - -HCONVLIST ImpDdeMgr::DdeConnectList( HSZ hszService, HSZ hszTopic, - HCONVLIST hConvList, CONVCONTEXT* pCC ) -{ - nPrevConv = 0; - ////WRITESTATUS("Before DdeConnectList") - if( hConvList ) - { - HCONV hLastConvInList; - - hCurListId = hConvList; - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hConvList; - if( (sal_uInt16)hConvList >= pData->nMaxConvCount ||pConv->hWndThis==0 ) - { - nLastErrInstance = DMLERR_INVALIDPARAMETER; - return 0; - } - GetLastServer(pData, hConvList, hLastConvInList); - nPrevConv = (sal_uInt16)hLastConvInList; - } - else - hCurListId = (HCONVLIST)WinCreateWindow( HWND_OBJECT, WC_FRAME, - CONVLISTNAME, 0,0,0,0,0, HWND_DESKTOP, HWND_BOTTOM, 0,0,0); - - bListConnect = sal_True; - DdeConnectImp( hszService, hszTopic, pCC ); -#if 0 && defined(OV_DEBUG) - WRITELOG("DdeConnectList:ConnectionList:") - HCONV hDebug = 0; - do - { - hDebug = DdeQueryNextServer( hCurListId, hDebug); - String aStr( (sal_uIntPtr)hDebug ); - WRITELOG((char*)(const char*)aStr) - } while( hDebug ); -#endif - ////WRITESTATUS("After DdeConnectList") - return (HCONVLIST)hCurListId; -} - -DDEINIT* ImpDdeMgr::CreateDDEInitData( HWND hWndDestination, HSZ hszService, - HSZ hszTopic, CONVCONTEXT* pCC ) -{ - sal_uIntPtr nLen1 = 0, nLen2 = 0; - HATOMTBL hAtomTable = WinQuerySystemAtomTable(); - - if( hszService ) - nLen1 = WinQueryAtomLength( hAtomTable, hszService ); - if( hszTopic ) - nLen2 = WinQueryAtomLength( hAtomTable, hszTopic ); - nLen1++; nLen2++; - - DDEINIT* pBuf = 0; - - sal_uIntPtr nLen = sizeof(DDEINIT) + nLen1+ nLen2 + sizeof(CONVCONTEXT); - if( !(MyDosAllocSharedMem((PPVOID)&pBuf, NULL, nLen, - PAG_COMMIT | PAG_READ | PAG_WRITE | OBJ_GIVEABLE | OBJ_ANY, - "CreateDDEInitData"))) - { - memset( pBuf, 0, nLen ); - - /* - PID pid; TID tid; - WinQueryWindowProcess( hWndDestination, &pid, &tid ); - APIRET nRet = DosGiveSharedMem( pBuf, pid, PAG_READ | PAG_WRITE ); - */ - - pBuf->cb = nLen; - pBuf->offConvContext = sizeof( DDEINIT ); - char* pBase = (char*)pBuf; - pBase += sizeof(DDEINIT); - if( pCC ) - memcpy( pBase, pCC, sizeof(CONVCONTEXT) ); - pBase += sizeof(CONVCONTEXT); - pBuf->pszAppName = pBase; - if( hszService ) - WinQueryAtomName( hAtomTable, hszService, pBase, nLen1 ); - pBase += nLen1; - pBuf->pszTopic = pBase; - if( hszTopic ) - WinQueryAtomName( hAtomTable, hszTopic, pBase, nLen2 ); - } - return pBuf; -} - - - -void ImpDdeMgr::MyInitiateDde( HWND hWndSrv, HWND hWndClient, - HSZ hszService, HSZ hszTopic, CONVCONTEXT* pCC ) -{ - DDEINIT* pBuf = CreateDDEInitData( hWndSrv, hszService, hszTopic, pCC ); - if( pBuf ) - { - PID pid; TID tid; - WinQueryWindowProcess( hWndSrv, &pid, &tid ); - APIRET nRet = DosGiveSharedMem( pBuf, pid, PAG_READ | PAG_WRITE ); - WinSendMsg( hWndSrv,WM_DDE_INITIATE,(MPARAM)hWndClient,(MPARAM)pBuf); - MyDosFreeMem( pBuf,"MyInitiateDde" ); - } -} - -// static -ImpHCONV* ImpDdeMgr::GetFirstServer(ImpDdeMgrData* pData, HCONVLIST hConvList, - HCONV& rhConv ) -{ - ImpHCONV* pPtr = GetConvTable( pData ); - HCONV hConv; - if( !rhConv ) - { - pPtr++; - hConv = 1; - } - else - { - // Startposition - pPtr += (sal_uInt16)rhConv; - hConv = rhConv; - pPtr++; hConv++; // auf den naechsten - } - while( hConv < pData->nMaxConvCount ) - { - if( pPtr->hConvList == hConvList ) - { - rhConv = hConv; - return pPtr; - } - pPtr++; - hConv++; - } - rhConv = 0; - return 0; -} - -// static -ImpHCONV* ImpDdeMgr::GetLastServer(ImpDdeMgrData* pData, HCONVLIST hConvList, - HCONV& rhConv ) -{ - ImpHCONV* pPtr = GetConvTable( pData ); - pPtr += pData->nMaxConvCount; - pPtr--; - HCONV hConv = pData->nMaxConvCount; - hConv--; - while( hConv > 0 ) - { - if( pPtr->hConvList == hConvList ) - { - rhConv = hConv; - return pPtr; - } - pPtr--; - hConv--; - } - rhConv = 0; - return 0; -} - -// static -sal_Bool ImpDdeMgr::CheckConvListId( HCONVLIST hConvListId ) -{ - HAB hAB = WinQueryAnchorBlock( (HWND)hConvListId ); - if( hAB ) - return WinIsWindow( hAB, (HWND)hConvListId ); - return sal_False; - /* - HAB hAB = WinQueryAnchorBlock( (HWND)hConvListId ); - if( hAB ) - { - char aBuf[ 16 ]; - WinQueryWindowText( (HWND)hConvListId, sizeof(aBuf), aBuf ); - if( strcmp(aBuf, CONVLISTNAME ) == 0 ) - return sal_True; - } - return sal_False; - */ -} - -// static -HCONV ImpDdeMgr::DdeQueryNextServer(HCONVLIST hConvList, HCONV hConvPrev) -{ - if( !CheckConvListId( hConvList ) ) - return (HCONV)0; - ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData(); - GetFirstServer( pData, hConvList, hConvPrev ); - return hConvPrev; -} - -// static - -// Idee: DisconnectAll uebergibt das ServerWindow. Zu jedem HCONV -// wird das Creator-Server-Wnd gespeichert. Disconnect braucht -// dann nur noch die Window-Handles zu vergleichen -sal_Bool ImpDdeMgr::DdeDisconnect( HCONV hConv ) -{ - WRITELOG("DdeDisconnect:Start") - ////WRITESTATUS("DdeDisconnect:Start") - - ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData(); - if ( !pData ) - { - ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED; - return sal_False; - } - ImpHCONV* pConv = GetConvTable(pData) + (sal_uInt16)hConv; - - if( (sal_uInt16)hConv >= pData->nMaxConvCount || pConv->hWndThis==0 ) - { - nLastErrInstance = DMLERR_NO_CONV_ESTABLISHED; - return sal_False; - } - - PID pidApp; TID tid; - HWND hWndDummy = WinCreateWindow( HWND_OBJECT, WC_FRAME, - "Bla", 0, 0,0,0,0, HWND_DESKTOP, HWND_BOTTOM, 0, 0, 0 ); - WinQueryWindowProcess( hWndDummy, &pidApp, &tid ); - WinDestroyWindow( hWndDummy ); - PID pidThis; PID pidPartner; - - HWND hWndThis = pConv->hWndThis; - HWND hWndPartner = pConv->hWndPartner; - - WinQueryWindowProcess( hWndThis, &pidThis, &tid ); - WinQueryWindowProcess( hWndPartner, &pidPartner, &tid ); - if( pidApp != pidThis && pidApp != pidPartner ) - return sal_True; // gehoert nicht der App -> ueberspringen - - HCONV hConvPartner = pConv->hConvPartner; - - // die App benachrichtigen, dass alle offenen Advise-Loops - // beendet werden, egal ob sie vom Server oder Client - // initiiert wurden. Die Dinger aber nicht loeschen, da sie evtl. - // noch vom Partner gebraucht werden. - ImpConvWndData* pObj = - (ImpConvWndData*)WinQueryWindowULong( pConv->hWndThis, 0 ); - ImpDdeMgr* pThis = pObj->pThis; - pThis->SendUnadvises( hConv, 0, sal_False ); // alle Formate & NICHT loeschen - pThis->SendUnadvises( hConvPartner, 0, sal_False ); // alle Formate & NICHT loeschen - - pConv->nStatus |= ST_TERMINATED; - - HAB hAB = WinQueryAnchorBlock( pConv->hWndThis ); - // um die MessageQueue inne Gaenge zu halten - sal_uIntPtr nTimerId = WinStartTimer( hAB, 0, 0, 50 ); - - /* - Die Partner-App muss ein DDE_TERMINATE posten, auf das - wir warten muessen, um alle Messages zu bearbeiten, die - _vor_ dem DdeDisconnect von der Partner-App gepostet - wurden. - */ - WRITELOG("DdeDisconnect:Waiting for acknowledge...") - WinDdePostMsg( hWndPartner, hWndThis, WM_DDE_TERMINATE, - (PDDESTRUCT)0,DDEPM_RETRY); - - QMSG aQueueMsg; - sal_Bool bContinue = sal_True; - while( bContinue ) - { - if( WinGetMsg( hAB, &aQueueMsg, 0, 0, 0 )) - { - WinDispatchMsg( hAB, &aQueueMsg ); - if( (!WinIsWindow( hAB, hWndPartner)) || - (pConv->nStatus & ST_TERMACKREC) ) - { - bContinue = sal_False; - if( pConv->nStatus & ST_TERMACKREC ) - { - WRITELOG("DdeDisconnect: TermAck received") - } - else - { - WRITELOG("DdeDisconnect: Partner died") - } - } - } - else - bContinue = sal_False; - } - - WinStopTimer( hAB, 0, nTimerId ); - - // WRITELOG("DdeDisconnect:Freeing data") - // Transaktionstabelle aufraeumen - FreeTransactions( pData, hConv ); - if( hConvPartner ) - FreeTransactions( pData, hConvPartner ); - - FreeConvHandle( pData, hConv ); - - WRITELOG("DdeDisconnect:End") - //WRITESTATUS("DdeDisconnect:End") - return sal_True; -} - -// static -sal_Bool ImpDdeMgr::DdeDisconnectList( HCONVLIST hConvList ) -{ - if( !CheckConvListId( hConvList ) ) - { - ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER; - return sal_False; - } - - ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData(); - if ( !pData ) - { - ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED; - return sal_False; - } - HCONV hConv = 0; - GetFirstServer( pData, hConvList, hConv ); - while( hConv ) - { - DdeDisconnect( hConv ); - GetFirstServer( pData, hConvList, hConv ); - } - WinDestroyWindow( (HWND)hConvList ); - return sal_True; -} - - - -// static -HCONV ImpDdeMgr::DdeReconnect(HCONV hConv) -{ - ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData(); - if ( !pData ) - { - ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED; - return 0; - } - return 0; -} - -// static -sal_uInt16 ImpDdeMgr::DdeQueryConvInfo(HCONV hConv, sal_uIntPtr nTransId, CONVINFO* pCI) -{ - if( !pCI || pCI->nSize == 0) - return 0; - ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData(); - if ( !pData ) - { - ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED; - return 0; - } - Transaction* pTrans; - if( nTransId != QID_SYNC ) - { - pTrans = ImpDdeMgr::GetTransTable( pData ); - pTrans += nTransId; - if( nTransId >= pData->nMaxTransCount || pTrans->hConvOwner == 0 ) - { - ImpDdeMgr::nLastErrInstance = DMLERR_UNFOUND_QUEUE_ID; - return 0; - } - } - else - pTrans = 0; - - ImpHCONV* pConv = ImpDdeMgr::GetConvTable( pData ); - pConv += (sal_uIntPtr)hConv; - if( hConv >= pData->nMaxConvCount || pConv->hWndThis == 0 ) - { - ImpDdeMgr::nLastErrInstance = DMLERR_NO_CONV_ESTABLISHED; - return 0; - } - - sal_uInt16 nSize = pCI->nSize; - if( nSize > sizeof(CONVINFO) ) - nSize = sizeof(CONVINFO); - CONVINFO aTempInfo; - memset( &aTempInfo, 0, sizeof(CONVINFO) ); - aTempInfo.nSize = pCI->nSize; - aTempInfo.hConvPartner = pConv->hConvPartner; - aTempInfo.hszPartner = pConv->hszPartner; - aTempInfo.hszServiceReq = pConv->hszServiceReq; - aTempInfo.hszTopic = pConv->hszTopic; - aTempInfo.nStatus = pConv->nStatus; - aTempInfo.hConvList = pConv->hConvList; - aTempInfo.aConvCtxt = pConv->aConvContext; - if( pTrans ) - { - aTempInfo.nUser = pTrans->nUser; - aTempInfo.hszItem = pTrans->hszItem; - aTempInfo.nFormat = pTrans->nFormat; - aTempInfo.nType = pTrans->nType; - aTempInfo.nConvst = pTrans->nConvst; - aTempInfo.nLastError= pTrans->nLastError; - } - memcpy( pCI, &aTempInfo, nSize ); - - return nSize; -} - -// static -sal_Bool ImpDdeMgr::DdeSetUserHandle(HCONV hConv, sal_uIntPtr nTransId, sal_uIntPtr hUser) -{ - ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData(); - if ( !pData ) - { - ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED; - return sal_False; - } - Transaction* pTrans = GetTransTable( pData ); - pTrans += nTransId; - if( !nTransId || !hConv || nTransId >= pData->nMaxTransCount || - pTrans->hConvOwner != hConv ) - { - ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER; - return sal_False; - } - if( !pTrans->hConvOwner) - { - ImpDdeMgr::nLastErrInstance = DMLERR_UNFOUND_QUEUE_ID; - return sal_False; - } - pTrans->nUser = hUser; - return sal_True; -} - -sal_Bool ImpDdeMgr::DdeAbandonTransaction( HCONV hConv, sal_uIntPtr nTransId ) -{ - ////WRITELOG("DdeAbandonTransaction:Start") - if( !pData ) - { - nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED; - return sal_False; - } - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hConv; - if( nTransId < 1 || nTransId >= pData->nMaxTransCount || - hConv < 1 || hConv >= pData->nMaxConvCount || !pConv->hWndThis) - { - nLastErrInstance = DMLERR_INVALIDPARAMETER; - return sal_False; - } - if( !hConv ) - { - DBG_ASSERT(0,"DdeAbandonTransaction:NULL-hConv not supported"); - nLastErrInstance = DMLERR_INVALIDPARAMETER; - return sal_False; - } - Transaction* pTrans = pTransTable; - pTrans += (sal_uInt16)nTransId; - if( pTrans->hConvOwner != hConv ) - { - nLastErrInstance = DMLERR_UNFOUND_QUEUE_ID; - return sal_False; - } - - if( bInSyncTrans && nTransId == nSyncTransId ) - { - bSyncAbandonTrans = sal_True; - return sal_True; - } - sal_uInt16 nTempType = pTrans->nType; - nTempType &= (~XTYPF_MASK); - if( nTempType == (XTYP_ADVREQ & ~(XTYPF_NOBLOCK))) - { - ////WRITELOG("DdeAbandTrans:Advise Loop") - -// ---------------------------------------------------------------------- -// Der von der Deutschen Bank eingesetzte DDE-Server -// "Invision V2.71 Build 36 Mar 12 1999 V4.8.2" hat einen Bug, der -// dazu fuehrt, dass auf per WM_DDE_TERMINATE geschlossene Verbindungen -// nicht mit einem WM_DDE_TERMINATE geantwortet wird, wenn der -// entsprechende Link vorher per WM_DDE_UNADVISE beendet wurde. Dieser -// Bug tritt ab zwei parallel laufenden Links auf. Auf Wunsch der DB -// wurde das folgende Workaround eingebaut. -// ---------------------------------------------------------------------- -#define DEUTSCHE_BANK -#ifndef DEUTSCHE_BANK - -// Acknowledge ist beim Unadvise nicht ueblich -//#define SO_DDE_ABANDON_TRANSACTION_WAIT_ACK -#ifdef SO_DDE_ABANDON_TRANSACTION_WAIT_ACK - DDESTRUCT* pOutDDEData = MakeDDEObject( pConv->hWndPartner, - pTrans->hszItem, DDE_FACKREQ, 0 /*pTrans->nFormat*/, 0, 0); -#else - DDESTRUCT* pOutDDEData = MakeDDEObject( pConv->hWndPartner, - pTrans->hszItem, 0, 0 /*pTrans->nFormat*/, 0, 0); -#endif - WRITELOG("DdeAbandTrans:Waiting for acknowledge...") - pTrans->nConvst = XST_UNADVSENT; - if ( !MyWinDdePostMsg( pConv->hWndPartner, pConv->hWndThis, - WM_DDE_UNADVISE, pOutDDEData, DDEPM_RETRY ) ) - { - WRITELOG("DdeAbandTrans:PostMsg Failed") - return sal_False; - } -#ifdef SO_DDE_ABANDON_TRANSACTION_WAIT_ACK - WaitTransState( pTrans, nTransId, XST_UNADVACKRCVD, 0 ); -#else - pTrans->nConvst = XST_UNADVACKRCVD; -#endif - -#endif // DEUTSCHE_BANK - - WRITELOG("DdeAbandTrans:Ack received->Freeing transaction") - FreeTransaction( pData, nTransId ); - } - WRITELOG("DdeAbandonTransaction:End") - return sal_True; -} - -// wird von einem Server aufgerufen, wenn sich die Daten des -// Topic/Item-Paars geaendert haben. Diese Funktion fordert -// dann den Server auf, die Daten zu rendern (bei Hotlinks) und -// benachrichtigt die Clients -sal_Bool ImpDdeMgr::DdePostAdvise( HSZ hszTopic, HSZ hszItem) -{ - ////WRITELOG("DdePostAdvise:Start") - ////WRITESTATUS("DdePostAdvise:Start") - -#if 0 && defined( OV_DEBUG ) - String aDebStr("DdePostAdvise:Item "); - aDebStr += (sal_uIntPtr)hszItem; - WRITELOG((char*)(const char*)aDebStr) -#endif - - Transaction* pTrans = pTransTable; - pTrans++; - sal_uInt16 nCurTrans = 1; - sal_uInt16 nUsedTransactions = pData->nCurTransCount; - while( nUsedTransactions && nCurTrans < pData->nMaxTransCount ) - { - HCONV hOwner = pTrans->hConvOwner; - if( hOwner ) - { - nUsedTransactions--; - sal_uInt16 nTempType = pTrans->nType; - nTempType &= (~XTYPF_MASK); - if( nTempType == (XTYP_ADVREQ & (~XTYPF_NOBLOCK) ) ) - { - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hOwner; - if(hszItem == pTrans->hszItem && pConv->hszTopic == hszTopic) - { - if( pConv->hConvPartner ) - { - // Transaktionen werden immer vom Client erzeugt - // -> auf Server-HCONV umschalten - hOwner = pConv->hConvPartner; - pConv = pConvTable; - pConv += (sal_uInt16)hOwner; - } - HWND hWndClient = pConv->hWndPartner; - HWND hWndServer = pConv->hWndThis; -#if 0 && defined( OV_DEBUG ) - String aDebStr("DdePostAdvise: Server:"); - aDebStr += (sal_uIntPtr)hWndServer; - aDebStr += " Client:"; - aDebStr += (sal_uIntPtr)hWndClient; - WRITELOG((char*)(const char*)aDebStr) -#endif - DDESTRUCT* pOutDDEData; - if ( pTrans->nType & XTYPF_NODATA ) - { - // Warm link - ////WRITELOG("DdePostAdvise:Warm link found") - pOutDDEData = MakeDDEObject( hWndClient, hszItem, - DDE_FNODATA, pTrans->nFormat, 0, 0 ); - } - else - { - // Hot link - ////WRITELOG("DdePostAdvise:Hot link found") - pOutDDEData = Callback( XTYP_ADVREQ, - pTrans->nFormat, hOwner, hszTopic, - hszItem, (HDDEDATA)0, 1, 0 ); - } - if( pOutDDEData ) - { - // todo: FACK_REQ in Out-Data setzen, wenn pTrans->nType & XTYPF_ACKREQ - ////WRITELOG("DdePostAdvise:Sending data/notification") - sal_Bool bSuccess = MyWinDdePostMsg( hWndClient, - hWndServer,WM_DDE_DATA, pOutDDEData, DDEPM_RETRY); - if( bSuccess ) - { - // auf Acknowledge des Partners warten ? - if( pTrans->nType & XTYPF_ACKREQ ) - { - pTrans->nConvst = XST_ADVDATASENT; - // Impl. ist falsch! => korrekt: XST_ADVDATAACKRCVD - WaitTransState(pTrans, nCurTrans, - XST_UNADVACKRCVD, 0); - } - } - else - { - ////WRITELOG("DdePostAdvise:PostMsg failed") - nLastErrInstance = DMLERR_POSTMSG_FAILED; - } - } - else - { - ////WRITELOG("DdePostAdvise:No data to send") - } - } - } - } - nCurTrans++; - pTrans++; - } - ////WRITELOG("DdePostAdvise:End") - return sal_True; -} - -sal_Bool ImpDdeMgr::DdeEnableCallback( HCONV hConv, sal_uInt16 wCmd) -{ - return sal_False; -} - -// Rueckgabe: 0==Service nicht registriert; sonst Pointer auf Service-Eintrag -ImpService* ImpDdeMgr::GetService( HSZ hszService ) -{ - ImpService* pPtr = pServices; - if( !pPtr || !hszService ) - return 0; - for( sal_uIntPtr nIdx = 0; nIdx < nServiceCount; nIdx++, pPtr++ ) - { - if(( hszService == pPtr->hBaseServName ) || - ( hszService == pPtr->hInstServName ) ) - return pPtr; - } - return 0; -} - - -// legt Service in Service-Tabelle ab. Tabelle wird ggf. expandiert -ImpService* ImpDdeMgr::PutService( HSZ hszService ) -{ - if( !pServices ) - { - DBG_ASSERT(nServiceCount==0,"DDE:Bad ServiceCount"); - pServices = new ImpService[ DDEMLSERVICETABLE_INISIZE ]; - memset( pServices, 0, DDEMLSERVICETABLE_INISIZE* sizeof(ImpService)); - nServiceCount = DDEMLSERVICETABLE_INISIZE; - } - ImpService* pPtr = pServices; - sal_uInt16 nCurPos = 0; - while( pPtr ) - { - if( pPtr->hBaseServName == 0 ) - break; - nCurPos++; - if( nCurPos < nServiceCount ) - pPtr++; - else - pPtr = 0; - } - if( !pPtr ) - { - // Tabelle vergroessern - pPtr = new ImpService[ nServiceCount + DDEMLSERVICETABLE_INISIZE ]; - memset( pPtr, 0, DDEMLSERVICETABLE_INISIZE* sizeof(ImpService)); - memcpy( pPtr, pServices, nServiceCount * sizeof(ImpService) ); -#ifdef DBG_UTIL - memset( pServices, 0, nServiceCount * sizeof(ImpService) ); -#endif - delete pServices; - pServices = pPtr; - pPtr += nServiceCount; // zeigt auf erste neue Position - nServiceCount += DDEMLSERVICETABLE_INISIZE; - } - DBG_ASSERT(pPtr->hBaseServName==0,"DDE:Service not empty"); - DBG_ASSERT(pPtr->hInstServName==0,"DDE:Service not empty"); - - DdeKeepStringHandle( hszService ); - - sal_uInt16 nStrLen = (sal_uInt16)DdeQueryString( hszService, 0, 0, 0); - char* pBuf = new char[ nStrLen + 1 ]; - DdeQueryString(hszService, pBuf, nStrLen, 850 /* CodePage*/ ); - pBuf[ nStrLen ] = 0; - String aStr( (sal_uIntPtr)hWndServer ); - aStr += pBuf; - HSZ hszInstServ = DdeCreateStringHandle( (PSZ)(const char*)pBuf, 850 ); - delete [] pBuf; - - pPtr->hBaseServName = hszService; - pPtr->hInstServName = hszInstServ; - return pPtr; -} - -void ImpDdeMgr::BroadcastService( ImpService* pService, sal_Bool bRegistered ) -{ - DBG_ASSERT(pService,"DDE:No Service"); - if( !pService ) - return; - MPARAM aMp1 = (MPARAM)(pService->hBaseServName); - MPARAM aMp2 = (MPARAM)(pService->hInstServName); - sal_uIntPtr nMsg; - if( bRegistered ) - nMsg = WM_DDEML_REGISTER; - else - nMsg = WM_DDEML_UNREGISTER; - - HWND* pPtr = pAppTable; - for( sal_uInt16 nPos = 0; nPos < pData->nMaxAppCount; nPos++, pPtr++ ) - { - HWND hWndCurWin = *pPtr; - if ( hWndCurWin && hWndCurWin != hWndServer ) - WinSendMsg( hWndCurWin, nMsg, aMp1, aMp2 ); - } -} - -HDDEDATA ImpDdeMgr::DdeNameService( HSZ hszService, sal_uInt16 afCmd ) -{ - HDDEDATA hRet = (HDDEDATA)1; - - if( afCmd & DNS_FILTERON ) - bServFilterOn = sal_True; - else if( afCmd & DNS_FILTEROFF ) - bServFilterOn = sal_False; - ImpService* pService = GetService( hszService ); - sal_Bool bRegister = (sal_Bool)(afCmd & DNS_REGISTER); - if( bRegister ) - { - if( !pService ) - { - pService = PutService( hszService ); - BroadcastService( pService, sal_True ); - } - } - else - { - if( pService ) - { - BroadcastService( pService, sal_False ); - DdeFreeStringHandle( pService->hBaseServName ); - pService->hBaseServName = 0; - DdeFreeStringHandle( pService->hInstServName ); - pService->hInstServName = 0; - } - hRet = (HDDEDATA)0; // Service nicht gefunden - } - return hRet; -} - - -// static -HDDEDATA ImpDdeMgr::DdeClientTransaction(void* pDdeData, sal_uIntPtr cbData, - HCONV hConv, HSZ hszItem, sal_uInt16 nFormat, sal_uInt16 nType, - sal_uIntPtr nTimeout, sal_uIntPtr* pResult) -{ - //WRITELOG("DdeClientTransaction:Start") - -#if 0 && defined(OV_DEBUG) - if( nType == XTYP_REQUEST ) - { - WRITELOG("Start XTYP_REQUEST"); - WinMessageBox(HWND_DESKTOP,HWND_DESKTOP, - "Start XTYP_REQUEST","DdeClientTransaction", - HWND_DESKTOP,MB_OK); - } -#endif - - if( pResult ) - *pResult = 0; - - ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData(); - if ( !pData ) - { - ImpDdeMgr::nLastErrInstance = DMLERR_DLL_NOT_INITIALIZED; - return (HDDEDATA)0; - } - - sal_Bool bIsDdeHandle = (sal_Bool)(pDdeData && cbData==0xffffffff); - sal_Bool bAppOwnsHandle = (sal_Bool)( bIsDdeHandle && - (((DDESTRUCT*)pDdeData)->fsStatus & IMP_HDATAAPPOWNED) ); - - sal_Bool bNoData = (sal_Bool)(nType & XTYPF_NODATA)!=0; - sal_Bool bAckReq = (sal_Bool)(nType & XTYPF_ACKREQ)!=0; - sal_uInt16 nTypeFlags = nType & XTYPF_MASK; - nType &= (~XTYPF_MASK); - - sal_Bool bSync = (sal_Bool)( nTimeout != TIMEOUT_ASYNC ) != 0; - if( nType == XTYP_ADVSTART ) - bSync = sal_True; - - // Mapping transaction -> OS/2-Message - sal_uInt16 nTimeoutErr, nMsg; - switch ( nType ) - { - case XTYP_ADVSTART: - nMsg = WM_DDE_ADVISE; - nTimeoutErr = DMLERR_ADVACKTIMEOUT; -{ - nTimeout = 60000; -#if 0 && defined(OV_DEBUG) - char aBuf[ 128 ]; - ImpDdeMgr::DdeQueryString( hszItem,aBuf,127,850); - String aXXStr("Establishing hotlink "); - aXXStr += aBuf; - WRITELOG((char*)aXXStr.GetStr()); -#endif - -} - break; - - case XTYP_ADVSTOP: - nMsg = WM_DDE_UNADVISE; - nTimeoutErr = DMLERR_UNADVACKTIMEOUT; - break; - - case XTYP_REQUEST: - nMsg = WM_DDE_REQUEST; - nTimeoutErr = DMLERR_DATAACKTIMEOUT; - break; - - case XTYP_POKE: - nMsg = WM_DDE_POKE; - nTimeoutErr = DMLERR_POKEACKTIMEOUT; - break; - - case XTYP_EXECUTE: - nMsg = WM_DDE_EXECUTE; - nTimeoutErr = DMLERR_EXECACKTIMEOUT; - break; - - default: - nMsg = 0; - } - if(!hConv || (sal_uInt16)hConv>= pData->nMaxConvCount || !nType || !nMsg || - (nType != XTYP_EXECUTE && (!hszItem || !nFormat)) ) - { - WRITELOG("DdeClientTransaction:Invalid parameter") - ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER; - if( bIsDdeHandle && !bAppOwnsHandle ) - DdeFreeDataHandle( (HDDEDATA)pDdeData ); - return (HDDEDATA)0; - } - - // ueber den Conversation handle das ImpDdeMgr-Objekt holen - ImpHCONV* pConv = GetConvTable( pData ); - pConv += (sal_uInt16)hConv; - ImpConvWndData* pObj = - (ImpConvWndData*)WinQueryWindowULong( pConv->hWndThis, 0 ); - ImpDdeMgr* pThis = pObj->pThis; - - if( bSync && pThis->bInSyncTrans ) - { - WRITELOG("DdeClientTransaction:Already in sync. transaction") - ImpDdeMgr::nLastErrInstance = DMLERR_REENTRANCY; - if( bIsDdeHandle && !bAppOwnsHandle ) - DdeFreeDataHandle( (HDDEDATA)pDdeData ); - return (HDDEDATA)0; - } - - Transaction* pTrans; - - sal_Bool bReqOnAdvLoop = sal_False; - sal_uIntPtr nTransId = GetTransaction( pData, hConv, hszItem, nFormat ); - if( nTransId ) - { - // WRITELOG("DdeClientTransaction:Transaction found") - pTrans = GetTransTable( pData ); - pTrans += (sal_uInt16)nTransId; - sal_uInt16 nTransType = pTrans->nType; - nTransType &= (~XTYPF_MASK); - if( (nType != XTYP_REQUEST && nTransType == nType) || - // wird Advise-Loop schon zum requesten missbraucht ? - (nType == XTYP_REQUEST && - nTransType == XTYP_ADVREQ && - pTrans->nConvst == XST_WAITING_REQDATA)) - { - // dieser Kanal ist dicht! - WRITELOG("DdeClientTransaction:Transaction already used") - ImpDdeMgr::nLastErrInstance = DMLERR_REENTRANCY; - if( bIsDdeHandle && !bAppOwnsHandle ) - DdeFreeDataHandle( (HDDEDATA)pDdeData ); - return (HDDEDATA)0; - } - else if( nTransType == XTYP_ADVREQ ) - { - switch( nType ) - { - case XTYP_ADVSTOP: - //WRITELOG("DdeClientTransaction:Stopping advise trans") - pTrans->nType = XTYP_ADVSTOP; - break; - - case XTYP_ADVSTART: - //WRITELOG("DdeClientTransaction:Adj. Advise-Params") - pTrans->nType = XTYP_ADVREQ; - if( bNoData ) - pTrans->nType |= XTYPF_NODATA; - if( bAckReq ) - pTrans->nType |= XTYPF_ACKREQ; - if( pResult ) - *pResult = nTransId; - return (HDDEDATA)sal_True; - - case XTYP_REQUEST: - // WRITELOG("DdeClientTransaction:Using adv trans for req") - // nConvst wird unten auf XST_WAITING_REQDATA gesetzt - bReqOnAdvLoop = sal_True; - break; - - default: - WRITELOG("DdeClientTransaction:Invalid parameter") - ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER; - if( bIsDdeHandle && !bAppOwnsHandle ) - DdeFreeDataHandle( (HDDEDATA)pDdeData ); - return (HDDEDATA)sal_False; - } - } - } - else - { - // WRITELOG("DdeClientTransaction:Creating transaction") - nTransId = CreateTransaction(pData, hConv, hszItem, nFormat, nType); - } - - pTrans = GetTransTable( pData ); - pTrans += (sal_uInt16)nTransId; - pTrans->nConvst = XST_WAITING_ACK; - if( nType == XTYP_REQUEST ) - pTrans->nConvst = XST_WAITING_REQDATA; - - HWND hWndServer = pConv->hWndPartner; - HWND hWndClient = pConv->hWndThis; - - HDDEDATA pOutDDEData; - if( bIsDdeHandle ) - { - if( bAppOwnsHandle ) - { - // wir muessen leider leider duplizieren, da uns OS/2 - // keine Chance laesst, diesen Status im Datenobjekt - // zu versenken. - ////WRITELOG("DdeClientTransaction:Copying handle") - HDDEDATA pNew; - HDDEDATA pData = (HDDEDATA)pDdeData; - if( !(MyDosAllocSharedMem((PPVOID)&pNew, NULL, pData->cbData, - PAG_COMMIT | PAG_READ | PAG_WRITE | OBJ_GIVEABLE | OBJ_ANY, - "MakeDDEObject"))) - { - memcpy( pNew, pData, pData->cbData ); - pOutDDEData = pNew; - } - else - { - WRITELOG("DdeClientTransaction:No Memory") - ImpDdeMgr::nLastErrInstance = DMLERR_LOW_MEMORY; - return (HDDEDATA)0; - } - } - else - pOutDDEData = (HDDEDATA)pDdeData; - } - else - pOutDDEData=MakeDDEObject(hWndServer,hszItem,0,nFormat,pDdeData,cbData); - - pOutDDEData->fsStatus |= nTypeFlags; - - HDDEDATA pDDEInData = 0; - if( bSync ) - { - if( nType != XTYP_REQUEST ) - pOutDDEData->fsStatus |= DDE_FACKREQ; - - // WRITELOG("DdeClientTransaction:Starting sync. trans.") - pThis->hSyncResponseData = (HDDEDATA)0; - pThis->nSyncResponseMsg = 0; - pThis->bInSyncTrans = sal_True; - pThis->nSyncTransId = nTransId; - pThis->bSyncAbandonTrans = sal_False; - - if ( !MyWinDdePostMsg( hWndServer, hWndClient, nMsg, pOutDDEData, - DDEPM_RETRY) ) - { - WRITELOG("DdeClientTransaction:PostMsg failed") - nLastErrInstance = DMLERR_POSTMSG_FAILED; - if( !bReqOnAdvLoop ) - FreeTransaction( pData, nTransId ); - else - { - DBG_ASSERT(pTrans->nType==XTYP_ADVREQ,"DDE:Error!") - pTrans->nConvst = 0; - } - return sal_False; - } - HAB hAB = WinQueryAnchorBlock( hWndClient ); - sal_uIntPtr nDummyTimer = WinStartTimer( hAB, 0, 0, 50 ); - sal_uIntPtr nTimeoutId = TID_USERMAX - nTransId; - WinStartTimer( hAB, hWndClient, nTimeoutId, nTimeout ); - QMSG aQueueMsg; - sal_Bool bLoop = sal_True; - while( bLoop ) - { - if( pThis->nSyncResponseMsg ) - bLoop = sal_False; - else - { - if( WinGetMsg(hAB,&aQueueMsg,0,0,0 )) - { - WinDispatchMsg( hAB, &aQueueMsg ); - } - else - bLoop = sal_False; - } - } - - WinStopTimer( hAB, hWndClient, nTimeoutId ); - WinStopTimer( hAB, 0, nDummyTimer ); - - // - // Der Speicherblock pOutDDEData muss vom Server geloescht worden sein! - // Ueberlegen: Nochmal loeschen, falls Server buggy ist, ansonsten - // platzt uns bald der Adressraum! - // - if( !pThis->nSyncResponseMsg ) - { - // unsere App wurde beendet - ////WRITELOG("DdeClientTransaction:App terminated") - return 0; - } - pDDEInData = pThis->hSyncResponseData; - nMsg = pThis->nSyncResponseMsg; - pThis->hSyncResponseData= 0; - pThis->nSyncResponseMsg = 0; - pThis->bInSyncTrans = sal_False; - pThis->nSyncTransId = 0; - if( !pDDEInData && nMsg != WM_TIMER ) - { - DBG_ASSERT(0,"Dde:No data!"); - WRITELOG("DdeClientTransaction: No Data!") - return (HDDEDATA)0; - } - switch( nMsg ) - { - case WM_TIMER: - WRITELOG("DdeClientTransaction:Timeout!") - nLastErrInstance = nTimeoutErr; - if( bReqOnAdvLoop ) - // auf normalen Loop-Betrieb zurueckschalten - pTrans->nConvst = XST_WAITING_ADVDATA; - break; - - case WM_DDE_ACK: - { - // WRITELOG("DdeClientTransaction:Ack received") - sal_Bool bPositive = (sal_Bool)(pDDEInData->fsStatus & DDE_FACK); - MyDosFreeMem( pDDEInData,"DdeClientTransaction" ); - pDDEInData = (HDDEDATA)bPositive; - if( nType == XTYP_ADVSTART && pDDEInData ) - { - -#if 0 && defined(OV_DEBUG) - char aBuf[ 128 ]; - ImpDdeMgr::DdeQueryString( pTrans->hszItem,aBuf,128,850); - String aXXStr("Hotlink "); -#endif - - if( bPositive ) - { - pTrans->nType = XTYP_ADVREQ; - // Hot/Warmlink, Ack - pTrans->nType |= nTypeFlags; - // XST_WAITING_ACK ==> XST_WAITING_ADVDATA - pTrans->nConvst = XST_WAITING_ADVDATA; - -#if 0 && defined(OV_DEBUG) - aXXStr += "established "; - aXXStr += aBuf; -#endif - - } - -#if 0 && defined(OV_DEBUG) - else - { - aXXStr += "failed "; - aXXStr += aBuf; - } - WRITELOG((char*)aXXStr.GetStr()); -#endif - - } - } - break; - - case WM_DDE_DATA: - // WRITELOG("DdeClientTransaction:Data received") - // WRITEDATA(pDDEInData) - if( bReqOnAdvLoop ) - { - DBG_ASSERT(pTrans->nConvst==XST_WAITING_REQDATA,"DDE:Bad state"); - DBG_ASSERT(pTrans->nType==XTYP_ADVREQ,"DDE:Bad state"); - // auf Loop-Betrieb umschalten - pTrans->nConvst = XST_WAITING_ADVDATA; - } - break; - - default: - WRITELOG("DdeClientTransaction:Unexpected msg") - MyDosFreeMem( pDDEInData,"DdeClientTransaction" ); - pDDEInData = 0; - } - pThis->bSyncAbandonTrans = sal_False; - pThis->bInSyncTrans = sal_False; - if( pThis->bSyncAbandonTrans && bReqOnAdvLoop ) - pThis->DdeAbandonTransaction( hConv, nTransId ); - } - else - { - // WRITELOG("DdeClientTransaction:Starting async. trans.") - pDDEInData = (HDDEDATA)MyWinDdePostMsg( hWndServer, hWndClient, nMsg, - pOutDDEData, DDEPM_RETRY); - if( !pDDEInData ) - { - WRITELOG("DdeClientTransaction:PostMsg failed") - nLastErrInstance = DMLERR_POSTMSG_FAILED; - if( !bReqOnAdvLoop ) - FreeTransaction( pData, nTransId ); - else - { - DBG_ASSERT(pTrans->nType==XTYP_ADVREQ,"DDE:Error!") - pTrans->nConvst = 0; - } - } - else - { - // WRITELOG("DdeClientTransaction:Async trans. success") - if( pResult ) - *pResult = nTransId; - } - } -#if 0 && defined( OV_DEBUG ) - if( nType == XTYP_REQUEST ) - { - WRITELOG("End XTYP_REQUEST"); - WinMessageBox(HWND_DESKTOP,HWND_DESKTOP, - "End XTYP_REQUEST","DdeClientTransaction", - HWND_DESKTOP,MB_OK); - } -#endif - //WRITELOG("DdeClientTransaction:End") - //WRITESTATUS("DdeClientTransaction:End") - return pDDEInData; -} - -MRESULT ImpDdeMgr::DdeRegister( ImpWndProcParams* pParams ) -{ - MRESULT nRet = (MRESULT)0; - if ( !(nTransactFilter & CBF_SKIP_REGISTRATIONS) ) - { - HSZ hSBaseName = (HSZ)pParams->nPar1; - HSZ hIBaseName = (HSZ)pParams->nPar2; - nRet=(MRESULT)Callback(XTYP_REGISTER,0,0,hSBaseName,hIBaseName,0,0,0); - } - return nRet; -} - -MRESULT ImpDdeMgr::DdeUnregister( ImpWndProcParams* pParams ) -{ - MRESULT nRet = (MRESULT)0; - if ( !(nTransactFilter & CBF_SKIP_UNREGISTRATIONS) ) - { - HSZ hSBaseName = (HSZ)pParams->nPar1; - HSZ hIBaseName = (HSZ)pParams->nPar2; - nRet=(MRESULT)Callback(XTYP_UNREGISTER,0,0,hSBaseName,hIBaseName,0,0,0); - } - return nRet; -} - -MRESULT ImpDdeMgr::DdeTimeout( ImpWndProcParams* pParams ) -{ - ////WRITELOG("DdeTimeout:Received") - if( nSyncResponseMsg ) - { - ////WRITELOG("DdeTimeout:Trans already processed->ignoring timeout") - return (MRESULT)1; - } - sal_uIntPtr nTimerId = (sal_uIntPtr)pParams->nPar1; - sal_uIntPtr nTransId = TID_USERMAX - nTimerId; - Transaction* pTrans = pTransTable; - pTrans += (sal_uInt16)nTransId; - if( nTransId < 1 || nTransId >= pData->nMaxTransCount || - pTrans->hConvOwner == 0 ) - { - DBG_ASSERT(0,"DdeTimeout:Invalid TransactionId"); - return (MRESULT)1; - } - if( bInSyncTrans && nTransId == nSyncTransId ) - { - sal_uInt16 nTempType = pTrans->nType; - nTempType &= (~XTYPF_MASK); - // advise-loops koennen nur innerhalb synchroner - // requests timeouts bekommen. die transaktion wird - // in diesem fall nicht geloescht. - if( nTempType != (XTYP_ADVREQ & (~XTYPF_NOBLOCK) )) - { - ////WRITELOG("DdeTimeout:Freeing transaction") - FreeTransaction( pData, nTransId ); - } - nSyncResponseMsg = WM_TIMER; -#if 0 && defined( OV_DEBUG ) - String aMsg("DdeTimeout:Transaction="); - aMsg += nTransId; - WRITELOG((char*)(const char*)aMsg) -#endif - } - else - { - ////WRITELOG("DdeTimeout:Async transaction timed out") - pTrans->nConvst = XST_TIMEOUT; - } - return (MRESULT)1; -} - - - -MRESULT ImpDdeMgr::DdeTerminate( ImpWndProcParams* pParams ) -{ - WRITELOG("DdeTerminate:Received") - HWND hWndThis = pParams->hWndReceiver; - HWND hWndPartner = (HWND)(pParams->nPar1); - - HCONV hConv = GetConvHandle( pData, hWndThis, hWndPartner ); -#if 0 && defined( OV_DEBUG ) - String strDebug("DdeTerminate:ConvHandle="); - strDebug += (sal_uInt16)hConv; - WRITELOG((char*)(const char*)strDebug) -#endif - ImpHCONV* pConv = pConvTable + (sal_uInt16)hConv; - if( hConv ) - { - // warten wir auf ein DDE_TERMINATE Acknowledge ? - if( pConv->nStatus & ST_TERMINATED ) - { - ////WRITELOG("DdeTerminate:TERMINATE-Ack received") - pConv->nStatus |= ST_TERMACKREC; - return (MRESULT)0; // DdeDisconnect raeumt jetzt auf - } - - // sind wir Server?, wenn ja: die App benachrichtigen, - // dass die Advise loops gestoppt wurden und die - // Transaktionen loeschen - - // OV 26.07.96: Die das TERMINATE empfangende App muss - // die Transaction-Tabelle abraeumen, egal ob Server oder Client!! - // Es muessen alle Trans geloescht werden, die als Owner den - // Client oder den Server haben! - // if( !(pConv->nStatus & ST_CLIENT ) ) - SendUnadvises( hConv, 0, sal_False ); // alle Formate & nicht loeschen - SendUnadvises( pConv->hConvPartner, 0, sal_False ); - - // wir werden von draussen gekillt - if ( !(nTransactFilter & CBF_SKIP_DISCONNECTS) ) - { - Callback( XTYP_DISCONNECT, 0, hConv, 0, 0, 0, - 0, (sal_uIntPtr)IsSameInstance(hWndPartner)); - } - - // kann unsere Partner-App DDEML ? - if( !(pConv->hConvPartner) ) - { - // nein, deshalb Transaktionstabelle selbst loeschen - ////WRITELOG("DdeTerminate:Freeing transactions") - FreeTransactions( pData, hConv ); - } - } - else - nLastErrInstance = DMLERR_NO_CONV_ESTABLISHED; - -#if 0 && defined(OV_DEBUG) - if( !WinIsWindow(0,hWndPartner)) - { - WRITELOG("DdeTerminate:hWndPartner not valid") - } - if(!WinIsWindow(0,hWndThis)) - { - WRITELOG("DdeTerminate:hWndThis not valid") - } -#endif - - if( hConv ) - { - // hWndThis nicht loeschen, da wir den Handle noch fuer - // das Acknowledge brauchen - ////WRITELOG("DdeTerminate:Freeing conversation") - FreeConvHandle( pData, hConv, sal_False ); - } - - ////WRITELOG("DdeTerminate:Acknowledging DDE_TERMINATE") - -#ifdef OV_DEBUG - DBG_ASSERT(WinIsWindow( 0, hWndThis ),"hWndThis not valid"); -#endif - - if( !WinDdePostMsg( hWndPartner, hWndThis, WM_DDE_TERMINATE, 0, DDEPM_RETRY )) - { - ////WRITELOG("DdeTerminate:Acknowledging DDE_TERMINATE failed") - } - // jetzt hWndThis loeschen - DestroyConversationWnd( hWndThis ); - - return (MRESULT)0; -} - - -/* - Zuordnung des Conversationhandles: - - Verbindungsaufbau: - Client: DdeInitiate( HWNDClient ) - Server: Post( WM_DDE_INITIATEACK( HWNDServer )) - Client: CreateConvHandle( HWNDClient, HWNDServer ) - - Datenaustausch: - Server: Post(WM_DDE_ACK( HWNDSender )) - Client: GetConvHandle( HWNDClient, HWNDSender ) -*/ - -MRESULT ImpDdeMgr::ConvWndProc( HWND hWnd,sal_uIntPtr nMsg,MPARAM nPar1,MPARAM nPar2 ) -{ - ImpWndProcParams aParams; - - MRESULT nRet = (MRESULT)0; - aParams.hWndReceiver= hWnd; - aParams.nPar1 = nPar1; - aParams.nPar2 = nPar2; - - switch( nMsg ) - { - -#ifdef DBG_UTIL - case WM_DDE_INITIATE : - DBG_ASSERT(0,"dde:unexpected msg"); - nRet = (MRESULT)sal_True; - break; -#endif - - case WM_DDE_INITIATEACK : nRet = DdeInitiateAck(&aParams); break; - case WM_DDE_ACK : nRet = DdeAck( &aParams ); break; - case WM_DDE_ADVISE : nRet = DdeAdvise( &aParams ); break; - case WM_DDE_DATA : nRet = DdeData( &aParams ); break; - case WM_DDE_EXECUTE : nRet = DdeExecute( &aParams ); break; - case WM_DDE_POKE : nRet = DdePoke( &aParams ); break; - case WM_DDE_REQUEST : nRet = DdeRequest( &aParams ); break; - case WM_DDE_TERMINATE : nRet = DdeTerminate( &aParams ); break; - case WM_DDE_UNADVISE : nRet = DdeUnadvise( &aParams ); break; - case WM_TIMER : nRet = DdeTimeout( &aParams ); break; - } - return nRet; -} - -MRESULT ImpDdeMgr::SrvWndProc( HWND hWnd,sal_uIntPtr nMsg,MPARAM nPar1,MPARAM nPar2 ) -{ - MRESULT nRet = (MRESULT)0; - - ImpWndProcParams aParams; - aParams.hWndReceiver= hWnd; - aParams.nPar1 = nPar1; - aParams.nPar2 = nPar2; - - switch( nMsg ) - { -#ifdef DBG_UTIL - case WM_DDE_ACK : - case WM_DDE_ADVISE : - case WM_DDE_EXECUTE : - case WM_DDE_POKE : - case WM_DDE_REQUEST : - case WM_DDE_UNADVISE : - case WM_DDE_DATA : - case WM_DDE_INITIATEACK : - DBG_ASSERT(0,"dde:unexpected msg"); - nRet = (MRESULT)sal_True; - break; -#endif - - case WM_DDE_TERMINATE : - break; // DDE_INITIATE wurde im DDE_INITIATEACK terminiert - - // ein Client will was von uns - case WM_DDE_INITIATE : - nRet = DdeInitiate( &aParams ); - break; - - // eine ddeml-faehige App. hat einen Service (typ. AppName) [de]reg. - case WM_DDEML_REGISTER : - nRet = DdeRegister( &aParams ); - break; - - case WM_DDEML_UNREGISTER : - nRet = DdeUnregister( &aParams ); - break; - }; - return nRet; -} - - -MRESULT ImpDdeMgr::DdeAck( ImpWndProcParams* pParams ) -{ - //WRITELOG("DdeAck:Start") - HSZ hszItem; - DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2); - if( pInDDEData ) - { - sal_Bool bPositive = (sal_Bool)(pInDDEData->fsStatus & DDE_FACK ) != 0; - sal_Bool bBusy = bPositive ? sal_False : (sal_Bool)(pInDDEData->fsStatus & DDE_FBUSY ) != 0; - sal_Bool bNotProcessed = (sal_Bool)(pInDDEData->fsStatus & DDE_NOTPROCESSED ) != 0; -#if 0 && defined( OV_DEBUG ) - String aDebStr("DdeAck:Received "); - if( bPositive ) - aDebStr += "(positive)"; - else - aDebStr += "(negative)"; - if( bBusy ) - aDebStr += "(busy)"; - if( bNotProcessed ) - aDebStr += "(not processed)"; - WRITELOG((char*)(const char*)aDebStr) -#endif - // ein DDE_ACK niemals bestaetigen (um endlosschleifen zu vermeiden) - pInDDEData->fsStatus &= (~DDE_FACKREQ); - } - else - { - //WRITELOG("DdeAck:Received (no data!)") - return (MRESULT)0; - } - - HCONV hConv = CheckIncoming(pParams, 0, hszItem); -#ifdef OV_DEBUG - if( !hConv ) - { - WRITELOG("DdeAck:HCONV not found") - } -#endif - sal_uIntPtr nTransId=GetTransaction(pData,hConv,hszItem,pInDDEData->usFormat); - if( !nTransId ) - { - WRITELOG("DdeAck:Transaction not found") - MyDosFreeMem( pInDDEData,"DdeAck" ); - return (MRESULT)0; - } - - sal_Bool bThisIsSync = (sal_Bool)( bInSyncTrans && nTransId == nSyncTransId ); -#if 0 && defined( OV_DEBUG ) - if( bThisIsSync) - WRITELOG("DdeAck: sync transaction") - else - WRITELOG("DdeAck: async transaction") -#endif - // pruefen, ob die Transaktion abgeschlossen ist. - Transaction* pTrans = pTransTable; - pTrans += (sal_uInt16)nTransId; - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hConv; - - if( pTrans->nConvst == XST_UNADVSENT ) - { - //WRITELOG("DdeAck:Unadvise-Ack received") - pTrans->nConvst = XST_UNADVACKRCVD; - MyDosFreeMem( pInDDEData,"DdeAck" ); - DdeFreeStringHandle( hszItem ); - return (MRESULT)0; - } - if( pTrans->nConvst == XST_ADVDATASENT ) - { - //WRITELOG("DdeAck:AdvData-Ack received") - pTrans->nConvst = XST_ADVDATAACKRCVD; - MyDosFreeMem( pInDDEData,"DdeAck" ); - DdeFreeStringHandle( hszItem ); - return (MRESULT)0; - } - - sal_uInt16 nType = pTrans->nType; - nType &= (~XTYPF_MASK); - // beginn einer advise-loop oder request auf advise-loop ? - // wenn ja: transaktion nicht loeschen - sal_Bool bFinished = (sal_Bool)(nType != XTYP_ADVSTART && - nType != (XTYP_ADVREQ & (~XTYPF_NOBLOCK)) ); - if( bFinished ) - { - if( !bThisIsSync ) - { - ////WRITELOG("DdeAck:Transaction completed") - Callback( XTYP_XACT_COMPLETE, pInDDEData->usFormat, hConv, - pConv->hszTopic, hszItem, (HDDEDATA)0, nTransId, 0 ); - } - ////WRITELOG("DdeAck:Freeing transaction") - FreeTransaction( pData, nTransId ); - } - - if( bThisIsSync ) - { - hSyncResponseData = pInDDEData; - nSyncResponseMsg = WM_DDE_ACK; - } - else - { - MyDosFreeMem( pInDDEData,"DdeAck" ); - } - - DdeFreeStringHandle( hszItem ); - - return (MRESULT)0; -} - - -sal_uInt16 ImpDdeMgr::SendUnadvises(HCONV hConvServer,sal_uInt16 nFormat,sal_Bool bFree) -{ - sal_uInt16 nTransFound = 0; - sal_Bool bCallApp = (sal_Bool)(!(nTransactFilter & CBF_FAIL_ADVISES)); -#if 0 && defined( OV_DEBUG ) - String aStr("Unadvising transactions for HCONV="); - aStr += (sal_uIntPtr)hConvServer; - aStr += " CallApp:"; aStr += (sal_uInt16)bCallApp; - WRITELOG((char*)aStr.GetStr()) -#endif - - - // wenn wir weder loeschen noch die App benachrichtigen sollen, - // koennen wir gleich wieder returnen - if( !hConvServer || ( !bFree && !bCallApp ) ) - return 0; - - ImpHCONV* pConvSrv = pConvTable; - pConvSrv += (sal_uInt16)hConvServer; - HSZ hszTopic = pConvSrv->hszTopic; - - Transaction* pTrans = pTransTable; - pTrans++; - sal_uInt16 nCurTransId = 1; - sal_uInt16 nCurTransactions = pData->nCurTransCount; - while( nCurTransactions && nCurTransId < pData->nMaxTransCount ) - { - if( pTrans->hConvOwner ) - nCurTransactions--; - if( pTrans->hConvOwner == hConvServer && - (pTrans->nType & XTYP_ADVREQ) ) - { - if( !nFormat || (nFormat == pTrans->nFormat) ) - { - nTransFound++; - if( bCallApp ) - { - //WRITELOG("SendUnadvises:Notifying App") - Callback( XTYP_ADVSTOP, pTrans->nFormat, hConvServer, - hszTopic, pTrans->hszItem, 0,0,0 ); - } - if( bFree ) - FreeTransaction( pData, (sal_uIntPtr)nCurTransId ); - } - } - nCurTransId++; - pTrans++; - } - return nTransFound; -} - - - -HCONV ImpDdeMgr::CheckIncoming( ImpWndProcParams* pParams, sal_uIntPtr nTransMask, - HSZ& rhszItem ) -{ -// ////WRITELOG("CheckIncoming") - rhszItem = 0; - DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2); - if( !pInDDEData ) - { - // ////WRITELOG("CheckIncoming:PDDESTRUCT==0") - return (HCONV)0; - } - - HWND hWndThis = pParams->hWndReceiver; - HWND hWndClient = (HWND)pParams->nPar1; - - sal_Bool bReject = (sal_Bool)(nTransactFilter & nTransMask); - HCONV hConv; - if( !bReject ) - hConv = GetConvHandle( pData, hWndThis, hWndClient ); - if ( bReject || !hConv ) - return (HCONV)0; - - rhszItem = DdeCreateStringHandle( - ((char*)(pInDDEData)+pInDDEData->offszItemName), 850 ); - - // ////WRITELOG("CheckIncoming:OK"); - return hConv; -} - - -MRESULT ImpDdeMgr::DdeAdvise( ImpWndProcParams* pParams ) -{ - ////WRITELOG("DdeAdvise:Received") - HSZ hszItem; - HCONV hConv = CheckIncoming(pParams, CBF_FAIL_ADVISES, hszItem); - DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2); - HWND hWndThis = pParams->hWndReceiver; - HWND hWndClient = (HWND)pParams->nPar1; - if( !hConv ) - { - ////WRITELOG("DdeAdvise:Conversation not found") - pInDDEData->fsStatus &= (~DDE_FACK); - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - DdeFreeStringHandle( hszItem ); - return (MRESULT)0; - } - - Transaction* pTrans = pTransTable; - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hConv; - - // existiert schon ein Link auf Topic/Item/Format-Vektor ? - - sal_uIntPtr nTransId=GetTransaction(pData,hConv,hszItem,pInDDEData->usFormat); - if( nTransId ) - { - ////WRITELOG("DdeAdvise:Transaction already exists") - pTrans += (sal_uInt16)nTransId; - // ist es eine AdviseLoop ? - sal_uInt16 nTempType = pTrans->nType; - nTempType &= (~XTYPF_MASK); - if( nTempType == XTYP_ADVREQ ) - { - // Flags der laufenden Advise-Loop aktualisieren - ////WRITELOG("DdeAdvise:Adjusting Advise-Params") - pTrans->nType = XTYP_ADVREQ; - if( pInDDEData->fsStatus & DDE_FNODATA ) - pTrans->nType |= XTYPF_NODATA; - if( pInDDEData->fsStatus & DDE_FACKREQ ) - pTrans->nType |= XTYPF_ACKREQ; - pInDDEData->fsStatus |= DDE_FACK; - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - DdeFreeStringHandle( hszItem ); - return (MRESULT)0; - } - else if( nTempType != XTYP_ADVSTART ) - { - ////WRITELOG("DdeAdvise:Not a advise transaction") - pInDDEData->fsStatus &= (~DDE_FACK); - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - DdeFreeStringHandle( hszItem ); - return (MRESULT)0; - } - } - - if( !nTransId ) - { - ////WRITELOG("DdeAdvise:Creating Transaction") - ////WRITESTATUS("DdeAdvise:Creating Transaction") - nTransId = CreateTransaction( pData, hConv, hszItem, - pInDDEData->usFormat, XTYP_ADVREQ ); - ////WRITESTATUS("DdeAdvise:Created Transaction") - } - if( nTransId ) - { - pTrans = pTransTable; - pTrans += (sal_uInt16)nTransId; - if( pInDDEData->fsStatus & DDE_FNODATA ) - pTrans->nType |= XTYPF_NODATA; - if( pInDDEData->fsStatus & DDE_FACKREQ ) - pTrans->nType |= XTYPF_ACKREQ; - } - else - { - ////WRITELOG("DdeAdvise:Cannot create Transaction") - pInDDEData->fsStatus &= (~DDE_FACK); - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - DdeFreeStringHandle( hszItem ); - return (MRESULT)0; - } - - ////WRITELOG("DdeAdvise:Calling Server") - - if ( Callback( XTYP_ADVSTART, pInDDEData->usFormat, - hConv, pConv->hszTopic, hszItem, (HDDEDATA)0, 0, 0 ) ) - { - // - // ServerApp erlaubt AdviseLoop - // - ////WRITELOG("DdeAdvise:Advise loop established") - pInDDEData->fsStatus |= DDE_FACK; - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - } - else - { - ////WRITELOG("DdeAdvise:Advise loop not established") - FreeTransaction( pData, nTransId ); - pInDDEData->fsStatus &= (~DDE_FACK); // DDE_FNOTPROCESSED; - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - } - ////WRITESTATUS("DdeAdvise:End") - ////WRITELOG("DdeAdvise:End") - DdeFreeStringHandle( hszItem ); - return (MRESULT)0; -} - -MRESULT ImpDdeMgr::DdeData( ImpWndProcParams* pParams ) -{ - WRITELOG("DdeData:Received") - HSZ hszItem; - HCONV hConv = CheckIncoming(pParams, 0, hszItem); - HWND hWndThis = pParams->hWndReceiver; - HWND hWndClient = (HWND)pParams->nPar1; - DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2); -#if 0 && defined( OV_DEBUG ) - { - String aStr("DdeData Address:"); - aStr += (sal_uIntPtr)pInDDEData; - WRITELOG((char*)aStr.GetStr()) - } -#endif - - sal_Bool bSendAck; - if( pInDDEData && (pInDDEData->fsStatus & DDE_FACKREQ )) - { - WRITELOG("DdeData: Ackn requested") - bSendAck = sal_True; - } - else - { - WRITELOG("DdeData: Ackn not requested") - bSendAck = sal_False; - } - - sal_uIntPtr nTransId = GetTransaction(pData,hConv,hszItem,pInDDEData->usFormat); - if( !nTransId ) - { - WRITELOG("DdeData:Transaction not found") - WRITEDATA(pInDDEData) - if( bSendAck ) - { - WRITELOG("DdeData: Posting Ackn") - pInDDEData->fsStatus &= (~DDE_FACK); // NOTPROCESSED; - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - } - else - { - MyDosFreeMem( pInDDEData,"DdeData" ); - } - return (MRESULT)0; - } - -#if 0 && defined( OV_DEBUG ) - if( pInDDEData ) - { - WRITEDATA(pInDDEData) - } -#endif - - sal_Bool bThisIsSync = (sal_Bool)( bInSyncTrans && nTransId == nSyncTransId ); - - // pruefen, ob die Transaktion abgeschlossen ist. - Transaction* pTrans = pTransTable; - pTrans += (sal_uInt16)nTransId; - - if( pTrans->nConvst == XST_WAITING_ACK ) - { - // dieser Fall kann eintreten, wenn ein Server innerhalb - // einer WM_DDE_ADVISE-Msg. oder bevor beim Client das - // Ack eintrifft, Advise-Daten sendet. - WRITELOG("DdeData:Ignoring unexpected data") - if( bSendAck ) - { - WRITELOG("DdeData: Posting Ackn") - pInDDEData->fsStatus &= (~DDE_FACK); // NOTPROCESSED; - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - } - else - { - MyDosFreeMem( pInDDEData,"DdeData" ); - } - return (MRESULT)0; - } - - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hConv; - - sal_uInt16 nType = pTrans->nType; - nType &= (~XTYPF_MASK); - sal_Bool bNotAdviseLoop = (sal_Bool)(nType != (XTYP_ADVREQ & (~XTYPF_NOBLOCK))); - if( !bThisIsSync ) - { - // WRITELOG("DdeData:Is async transaction") - if( bNotAdviseLoop ) - { - // WRITELOG("DdeData:Transaction completed -> calling client") - Callback( XTYP_XACT_COMPLETE, pInDDEData->usFormat, hConv, - pConv->hszTopic, hszItem, pInDDEData, nTransId, 0 ); - // WRITELOG("DdeData:Freeing transaction") - FreeTransaction( pData, nTransId ); - } - else - { - WRITELOG("DdeData:Advise-Loop -> calling client") - HDDEDATA pToSend = pInDDEData; - if( pTrans->nType & XTYPF_NODATA ) - { - pToSend = 0; - // WRITELOG("DdeData:Is warm link") - } - Callback( XTYP_ADVDATA, pInDDEData->usFormat, hConv, - pConv->hszTopic, hszItem, pToSend, nTransId, 0 ); - } - if( bSendAck ) - { - WRITELOG("DdeData: Posting Ackn") - pInDDEData->fsStatus = DDE_FACK; - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - } - else - MyDosFreeMem( pInDDEData,"DdeData" ); - } - else // synchrone Transaktion (Datenhandle nicht freigeben!) - { - // WRITELOG("DdeData:Is sync transaction") - hSyncResponseData = pInDDEData; - nSyncResponseMsg = WM_DDE_DATA; - if( bSendAck ) - { - pInDDEData->fsStatus |= DDE_FACK; - WRITELOG("DdeData: Posting Ackn") - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData, - DDEPM_RETRY | DDEPM_NOFREE ); - } - } - - DdeFreeStringHandle( hszItem ); - // WRITELOG("DdeData:End") - return (MRESULT)0; -} - -MRESULT ImpDdeMgr::DdeExecute( ImpWndProcParams* pParams ) -{ - ////WRITELOG("DdeExecute:Received") - DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2); - HSZ hszItem; - HCONV hConv = CheckIncoming(pParams, 0, hszItem); - sal_Bool bSuccess = sal_False; - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hConv; - if ( hConv && !(nTransactFilter & CBF_FAIL_EXECUTES) && pInDDEData ) - { - if ( Callback( XTYP_EXECUTE, pInDDEData->usFormat, hConv, - pConv->hszTopic, hszItem, pInDDEData, 0, 0 ) - == (DDESTRUCT*)DDE_FACK ) - bSuccess = sal_True; - } - else - { - ////WRITELOG("DdeExecute:Not processed") - } - if( pInDDEData ) - { - if( bSuccess ) - pInDDEData->fsStatus |= DDE_FACK; - else - pInDDEData->fsStatus &= (~DDE_FACK); - MyWinDdePostMsg( pConv->hWndPartner, pConv->hWndThis, WM_DDE_ACK, - pInDDEData, DDEPM_RETRY ); - } - DdeFreeStringHandle( hszItem ); - return (MRESULT)0; -} - -HCONV ImpDdeMgr::ConnectWithClient( HWND hWndClient, - HSZ hszPartner, HSZ hszService, HSZ hszTopic, sal_Bool bSameInst, - DDEINIT* pDDEData, CONVCONTEXT* pCC ) -{ - ////WRITELOG("ConnectWithClient:Start") - HWND hWndSrv = CreateConversationWnd(); - IncConversationWndRefCount( hWndSrv ); - HCONV hConv = CreateConvHandle( pData, pidThis, hWndSrv, hWndClient, - hszPartner, hszService, hszTopic ); - if(!hConv ) - return 0; - sal_Bool bFreeDdeData = sal_False; - if( !pDDEData ) - { - bFreeDdeData = sal_True; - pDDEData = CreateDDEInitData( hWndClient,hszService,hszTopic, pCC ); - PID pid; TID tid; - WinQueryWindowProcess( hWndClient, &pid, &tid ); - DosGiveSharedMem( pDDEData, pid, PAG_READ | PAG_WRITE); - } - HAB hAB = WinQueryAnchorBlock( hWndSrv ); - WinGetLastError( hAB ); // fehlercode zuruecksetzen - WinSendMsg(hWndClient,WM_DDE_INITIATEACK,(MPARAM)hWndSrv,(MPARAM)pDDEData); - if( WinGetLastError( hAB ) ) - { - // ////WRITELOG("DdeConnectWithClient:Client died") - if( bFreeDdeData ) - { - MyDosFreeMem( pDDEData,"ConnectWithClient" ); - } - FreeConvHandle( pData, hConv ); - return (HCONV)0; - } - - if( !(nTransactFilter & CBF_SKIP_CONNECT_CONFIRMS) ) - { - Callback( XTYP_CONNECT_CONFIRM, 0, hConv, hszTopic, hszService, - 0, 0, (sal_uIntPtr)bSameInst ); - } - - if( bFreeDdeData ) - { - MyDosFreeMem( pDDEData,"ConnectWithClient" ); - } - // HCONV der PartnerApp suchen & bei uns eintragen - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hConv; - pConv->hConvPartner = GetConvHandle( pData, hWndClient, hWndSrv ); -#if 0 && defined(OV_DEBUG) - if( !pConv->hConvPartner ) - { - WRITELOG("DdeConnectWithClient:Partner not found") - } -#endif - pConv->nStatus = ST_CONNECTED; - //WRITESTATUS("Server:Connected with client") - //WRITELOG("ConnectWithClient:End") - return hConv; -} - -MRESULT ImpDdeMgr::DdeInitiate( ImpWndProcParams* pParams ) -{ - ////WRITELOG("DdeInitiate:Received") - HWND hWndClient = (HWND)(pParams->nPar1); -// sal_Bool bSameInst = IsSameInstance( hWndClient ); - sal_Bool bSameInst = (sal_Bool)(hWndClient==hWndServer); - DDEINIT* pDDEData = (DDEINIT*)pParams->nPar2; - - if ( ( nTransactFilter & (CBF_FAIL_CONNECTIONS | APPCMD_CLIENTONLY)) || - (( nTransactFilter & CBF_FAIL_SELFCONNECTIONS) && bSameInst ) - ) - { - MyDosFreeMem( pDDEData,"DdeInitiate" ); - return (MRESULT)sal_False; // narda - } - - HSZ hszService = (HSZ)0; - if( *(pDDEData->pszAppName) != '\0' ) - { - hszService = DdeCreateStringHandle( pDDEData->pszAppName, 850 ); - ////WRITELOG(pDDEData->pszAppName); - } - HSZ hszTopic = (HSZ)0; - if( *(pDDEData->pszTopic) != '\0' ) - { - hszTopic = DdeCreateStringHandle( pDDEData->pszTopic, 850 ); - ////WRITELOG(pDDEData->pszTopic); - } - HSZ hszPartner = GetAppName( hWndClient ); - - // nur weitermachen, wenn Service registriert oder - // Service-Name-Filtering ausgeschaltet. - if( !bServFilterOn || GetService(hszService) ) - { - // XTYP_CONNECT-Transaktionen erfolgen nur mit - // Services & Topics ungleich 0! - if( hszService && hszTopic ) - { - if( IsConvHandleAvailable(pData) && Callback( XTYP_CONNECT, - 0, 0, hszTopic,hszService, 0, 0, (sal_uIntPtr)bSameInst)) - { - // App erlaubt Verbindung mit Client - ConnectWithClient( hWndClient, hszPartner, - hszService, hszTopic, bSameInst, pDDEData ); - } - } - else - { - // ** Wildcard-Connect ** - ////WRITELOG("DdeInitiate:Wildconnect") - // vom Server eine Liste aller Service/Topic-Paare anfordern - CONVCONTEXT* pCC=(CONVCONTEXT*)(pDDEData+pDDEData->offConvContext); - DDESTRUCT* hList = Callback( XTYP_WILDCONNECT, 0, (HCONV)0, - hszTopic,hszService, (HDDEDATA)0, (sal_uIntPtr)pCC, (sal_uIntPtr)bSameInst ); - if( hList ) - { - HSZPAIR* pPairs = (HSZPAIR*)((char*)hList+hList->offabData); - while( pPairs->hszSvc ) - { - ////WRITELOG("DdeInitiate:Wildconnect.Connecting") - ConnectWithClient( hWndClient, hszPartner, - pPairs->hszSvc, pPairs->hszTopic, bSameInst, 0, pCC); - // Stringhandles gehoeren der App! (nicht free-en) - pPairs++; - } - DdeFreeDataHandle( hList ); - } - } - } -#if 0 && defined(OV_DEBUG) - else - { - WRITELOG("DdeInitiate:Service filtered") - } -#endif - DdeFreeStringHandle( hszTopic ); - DdeFreeStringHandle( hszService ); - DdeFreeStringHandle( hszPartner ); - MyDosFreeMem( pDDEData,"DdeInitiate" ); - ////WRITELOG("DdeInitiate:End") - return (MRESULT)sal_True; -} - -MRESULT ImpDdeMgr::DdeInitiateAck( ImpWndProcParams* pParams ) -{ - ////WRITELOG("DdeInitiateAck:Received") - DDEINIT* pDDEData = (DDEINIT*)(pParams->nPar2); - - if( !bListConnect && hCurConv ) - { - ////WRITELOG("DdeInitiateAck:Already connected") - MyDosFreeMem( pDDEData,"DdeInitiateAck" ); - WinPostMsg( hWndServer, WM_DDE_TERMINATE, (MPARAM)hWndServer, 0 ); - return (MRESULT)sal_False; - } - - HWND hWndThis = pParams->hWndReceiver; - // Referenz-Count unseres Client-Windows inkrementieren - IncConversationWndRefCount( hWndThis ); - - HWND hWndSrv = (HWND)(pParams->nPar1); - HSZ hszService = DdeCreateStringHandle( pDDEData->pszAppName, 850 ); - HSZ hszTopic = DdeCreateStringHandle( pDDEData->pszTopic, 850 ); - HSZ hszPartnerApp = GetAppName( hWndSrv ); - - hCurConv = CreateConvHandle( pData, pidThis, hWndThis, hWndSrv, - hszPartnerApp, hszService, hszTopic, 0 ); - - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hCurConv; - - // HCONV der PartnerApp suchen & bei uns eintragen - pConv->hConvPartner = GetConvHandle( pData, hWndSrv, hWndThis ); - // nicht asserten, da ja non-ddeml-Partner moeglich - // DBG_ASSERT(pConv->hConvPartner,"DDE:Partner not found"); - pConv->nStatus = ST_CONNECTED | ST_CLIENT; - - if( bListConnect ) - { - ////WRITELOG("DdeInitiateAck:ListConnect/Connecting hConvs") - // Status setzen & verketten - pConv->hConvList = hCurListId; - pConv->nPrevHCONV = nPrevConv; - pConv->nStatus |= ST_INLIST; - if( nPrevConv ) - { - pConv = pConvTable; - pConv += nPrevConv; - pConv->nNextHCONV = (sal_uInt16)hCurConv; - } - nPrevConv = (sal_uInt16)hCurConv; - } - - DdeFreeStringHandle( hszService ); - DdeFreeStringHandle( hszTopic ); - DdeFreeStringHandle( hszPartnerApp ); - MyDosFreeMem( pDDEData,"DdeInitiateAck" ); - ////WRITESTATUS("After DdeInitiateAck") - ////WRITELOG("DdeInitiateAck:End") - return (MRESULT)sal_True; -} - -MRESULT ImpDdeMgr::DdePoke( ImpWndProcParams* pParams ) -{ - ////WRITELOG("DdePoke:Received") - HSZ hszItem = 0; - DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2); - HCONV hConv = CheckIncoming( pParams, CBF_FAIL_REQUESTS, hszItem ); - sal_Bool bSuccess =sal_False; - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hConv; - if ( hConv && !(nTransactFilter & CBF_FAIL_POKES) && pInDDEData ) - { - if( Callback( XTYP_POKE, pInDDEData->usFormat, hConv, - pConv->hszTopic, hszItem, pInDDEData, 0, 0 ) - == (DDESTRUCT*)DDE_FACK ) - bSuccess = sal_True; - } -#if 0 && defined( OV_DEBUG ) - else - { - WRITELOG("DdePoke:Not processed") - } -#endif - if( pInDDEData ) - { - if( bSuccess ) - pInDDEData->fsStatus |= DDE_FACK; - else - pInDDEData->fsStatus &= (~DDE_FACK); - - MyWinDdePostMsg( pConv->hWndPartner, pConv->hWndThis, WM_DDE_ACK, - pInDDEData, DDEPM_RETRY ); - } - DdeFreeStringHandle( hszItem ); - return (MRESULT)0; -} - -MRESULT ImpDdeMgr::DdeRequest( ImpWndProcParams* pParams ) -{ - ////WRITELOG("DdeRequest:Received") - HSZ hszItem = 0; - DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2); - if( pInDDEData ) - // ist fuer Requests nicht definiert - pInDDEData->fsStatus = 0; - HCONV hConv = CheckIncoming( pParams, CBF_FAIL_REQUESTS, hszItem ); - HWND hWndThis = pParams->hWndReceiver; - HWND hWndClient = (HWND)pParams->nPar1; - if( hConv ) - { - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hConv; - - DDESTRUCT* pOutDDEData = Callback( XTYP_REQUEST, pInDDEData->usFormat, - hConv, pConv->hszTopic, hszItem, (HDDEDATA)0, 0, 0 ); - - if ( !pOutDDEData ) - { - ////WRITELOG("DdeRequest:Not processed") - pInDDEData->fsStatus &= (~DDE_FACK); - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - } - else - { - ////WRITELOG("DdeRequest:Success") - MyDosFreeMem( pInDDEData,"DdeRequest" ); - pOutDDEData->fsStatus |= DDE_FRESPONSE; - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_DATA,pOutDDEData,DDEPM_RETRY); - } - } - else - { - pInDDEData->fsStatus &= (~DDE_FACK); - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - } - - DdeFreeStringHandle( hszItem ); - ////WRITELOG("DdeRequest:End") - return (MRESULT)0; -} - - -MRESULT ImpDdeMgr::DdeUnadvise( ImpWndProcParams* pParams ) -{ - ////WRITELOG("DdeUnadvise:Received") - - HSZ hszItem; - HCONV hConv = CheckIncoming( pParams, 0, hszItem ); - DDESTRUCT* pInDDEData = (DDESTRUCT*)(pParams->nPar2); - HWND hWndThis = pParams->hWndReceiver; - HWND hWndClient = (HWND)pParams->nPar1; - sal_uInt16 nClosedTransactions = 0; - if( hConv ) - { - sal_uInt16 nFormat = pInDDEData->usFormat; - // alle Transaktionen des HCONVs loeschen ? - if( !hszItem ) - { - // App benachrichtigen & Transaktionen loeschen - nClosedTransactions = SendUnadvises( hConv, nFormat, sal_True ); - } - else - { - sal_uIntPtr nTransId = GetTransaction(pData, hConv, hszItem, nFormat); - if( nTransId ) - { - ////WRITELOG("DdeUnadvise:Transaction found") - Transaction* pTrans = pTransTable; - pTrans += (sal_uInt16)nTransId; - ImpHCONV* pConv = pConvTable; - pConv += (sal_uInt16)hConv; - nClosedTransactions = 1; - if( !(nTransactFilter & CBF_FAIL_ADVISES) ) - Callback( XTYP_ADVSTOP, nFormat, hConv, - pConv->hszTopic, hszItem, 0, 0, 0 ); - if( !pConv->hConvPartner ) - FreeTransaction( pData, nTransId ); - } -#if defined(OV_DEBUG) - else - { - WRITELOG("DdeUnadvise:Transaction not found") - } -#endif - } - } -#if defined(OV_DEBUG) - else - { - WRITELOG("DdeUnadvise:Conversation not found") - } -#endif - - if( !nClosedTransactions ) - pInDDEData->fsStatus &= (~DDE_FACK); - else - pInDDEData->fsStatus |= DDE_FACK; - - MyWinDdePostMsg(hWndClient,hWndThis,WM_DDE_ACK,pInDDEData,DDEPM_RETRY); - DdeFreeStringHandle( hszItem ); - return (MRESULT)0; -} - -sal_Bool ImpDdeMgr::WaitTransState( Transaction* pTrans, sal_uIntPtr nTransId, - sal_uInt16 nNewState, sal_uIntPtr nTimeout ) -{ - ////WRITELOG("WaitTransState:Start") - ImpHCONV* pConv = pConvTable; - pConv += pTrans->hConvOwner; - HAB hAB = WinQueryAnchorBlock( pConv->hWndThis ); - sal_uIntPtr nTimerId = WinStartTimer( hAB, 0, 0, 50 ); - QMSG aQueueMsg; - -// while( WinGetMsg( hAB, &aQueueMsg, 0, 0, 0 ) && -// WinIsWindow( hAB, pConv->hWndPartner) && -// pTrans->nConvst != nNewState ) -// { -// WinDispatchMsg( hAB, &aQueueMsg ); -// } - - sal_Bool bContinue = sal_True; - while( bContinue ) - { - if( WinGetMsg( hAB, &aQueueMsg, 0, 0, 0 )) - { - WinDispatchMsg( hAB, &aQueueMsg ); - if( (!WinIsWindow( hAB, pConv->hWndPartner)) || - (pTrans->nConvst == nNewState) ) - { - bContinue = sal_False; - } - } - else - bContinue = sal_False; - } - - WinStopTimer( hAB, 0, nTimerId ); - ////WRITELOG("WaitTransState:End") - return sal_True; -} - - - - diff --git a/svl/source/svdde/ddeml2.cxx b/svl/source/svdde/ddeml2.cxx deleted file mode 100644 index 6bcb4f7fcf27..000000000000 --- a/svl/source/svdde/ddeml2.cxx +++ /dev/null @@ -1,1011 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svl.hxx" - -#define INCL_DOS -#include <stdlib.h> - -#include "ddemlimp.hxx" -#define LOGFILE -#define STATUSFILE -#define DDEDATAFILE -#include "ddemldeb.hxx" - -#if defined (OS2) && defined (__BORLANDC__) -#pragma option -w-par -#endif - - -// ************************************************************************ -// Hilfsfunktionen Speicherverwaltung -// ************************************************************************ - -// -// AllocAtomName -// - -PSZ ImpDdeMgr::AllocAtomName( ATOM hString, sal_uIntPtr& rBufLen ) -{ - HATOMTBL hAtomTable = WinQuerySystemAtomTable(); - sal_uIntPtr nLen = WinQueryAtomLength( hAtomTable, hString ); - nLen++; - PSZ pBuf = 0; - if ( !MyDosAllocMem( (PPVOID)&pBuf, nLen, PAG_READ|PAG_WRITE|PAG_COMMIT | OBJ_ANY,"Atom" ) ) - { - WinQueryAtomName( hAtomTable, hString, pBuf, nLen ); - rBufLen = nLen; - } - return pBuf; -} - - -// -// MakeDDEObject -// - -PDDESTRUCT ImpDdeMgr::MakeDDEObject( HWND hwnd, ATOM hItemName, - sal_uInt16 fsStatus, sal_uInt16 usFormat, PVOID pabData, sal_uIntPtr usDataLen ) -{ - PDDESTRUCT pddes = 0; - sal_uIntPtr usItemLen; - PULONG pulSharedObj; - //WRITELOG("MakeDDEObject: Start") - - PSZ pItemName = 0; - if( hItemName != NULL ) - pItemName = AllocAtomName( hItemName, usItemLen ); - else - usItemLen = 1; - - sal_uIntPtr nTotalSize = sizeof(DDESTRUCT) + usItemLen + usDataLen; - - if( !(MyDosAllocSharedMem((PPVOID)&pulSharedObj, NULL, - nTotalSize, - PAG_COMMIT | PAG_READ | PAG_WRITE | OBJ_GETTABLE | OBJ_GIVEABLE | OBJ_ANY, - "MakeDDEObject"))) - { - pddes = (PDDESTRUCT) pulSharedObj; - // siehe "Glenn Puchtel, DDE for OS/2" p.60 - pddes->cbData = (sal_uIntPtr)usDataLen; - pddes->fsStatus = fsStatus; - pddes->usFormat = usFormat; - pddes->offszItemName = sizeof( DDESTRUCT ); - if( (usDataLen) && (pabData != NULL ) ) - pddes->offabData = sizeof(DDESTRUCT) + usItemLen; - else - pddes->offabData = 0; - - if( pItemName != NULL ) - memcpy(DDES_PSZITEMNAME(pddes), pItemName, usItemLen ); - else - *(DDES_PSZITEMNAME(pddes)) = '\0'; - - if( pabData != NULL ) - memcpy( DDES_PABDATA(pddes), pabData, usDataLen ); - } - - if ( pItemName ) - { - MyDosFreeMem( pItemName,"MakeDDEObject" ); - } - return pddes; -} - -// -// AllocNamedSharedMem -// - -APIRET ImpDdeMgr::AllocNamedSharedMem( PPVOID ppBaseAddress, PSZ pName, - sal_uIntPtr nElementSize, sal_uIntPtr nElementCount ) -{ - sal_uIntPtr nObjSize = (sal_uIntPtr)(nElementSize * nElementCount ); - nObjSize += sizeof( sal_uIntPtr ); // fuer ElementCount am Anfang des Blocks - - *ppBaseAddress = 0; - APIRET nRet = MyDosAllocSharedMem( ppBaseAddress, pName, nObjSize, - PAG_READ | PAG_WRITE | PAG_COMMIT | OBJ_ANY, - "AllocNamedSharedMem" ); - if ( !nRet ) - { - memset( *ppBaseAddress, 0, nObjSize ); - sal_uIntPtr* pULONG = (sal_uIntPtr*)*ppBaseAddress; - *pULONG = nObjSize; - } - return nRet; -} - -void ImpDdeMgr::CreateServerWnd() -{ - hWndServer = WinCreateWindow( HWND_DESKTOP, WC_FRAME, "DDEServer", 0, - 0,0,0,0, HWND_DESKTOP, HWND_BOTTOM, 0, 0, 0 ); - WinSetWindowULong( hWndServer, 0, (sal_uIntPtr)this ); - WinSubclassWindow( hWndServer, ::ServerWndProc ); - TID tidDummy; - WinQueryWindowProcess( hWndServer, &pidThis, &tidDummy ); -} - -void ImpDdeMgr::DestroyServerWnd() -{ - WinDestroyWindow( hWndServer ); - hWndServer = NULLHANDLE; -} - -HWND ImpDdeMgr::CreateConversationWnd() -{ - HWND hWnd = WinCreateWindow( HWND_OBJECT, WC_FRAME, "DDEConvWnd", 0, - 0,0,0,0, HWND_DESKTOP, HWND_BOTTOM, 0, 0, 0 ); - if ( hWnd ) - { - ImpConvWndData* pWndData = new ImpConvWndData; - pWndData->pThis = this; - pWndData->nRefCount = 0; - WinSetWindowULong( hWnd, 0, (sal_uIntPtr)pWndData ); - WinSubclassWindow( hWnd, ::ConvWndProc ); -#if 0 && defined( OV_DEBUG ) - String aStr("ConvWnd created:"); - aStr += (sal_uIntPtr)hWnd; - WRITELOG((char*)aStr.GetStr()) -#endif - } - else - nLastErrInstance = DMLERR_SYS_ERROR; - - return hWnd; -} - -// static -void ImpDdeMgr::DestroyConversationWnd( HWND hWnd ) -{ - ImpConvWndData* pObj = (ImpConvWndData*)WinQueryWindowULong( hWnd, 0 ); - if( pObj ) - { - pObj->nRefCount--; - if( pObj->nRefCount == 0 - // auch Windows mit Refcount vonm loeschen, da dieser in initial - // auf 0 gesetzt wird - || pObj->nRefCount == (sal_uInt16)-1 ) - { - delete pObj; - WinDestroyWindow( hWnd ); -#if 0 && defined( OV_DEBUG ) - String aStr("ConvWnd destroyed:"); - aStr += (sal_uIntPtr)hWnd; - WRITELOG((char*)aStr.GetStr()) -#endif - } - else - { -#if 0 && defined( OV_DEBUG ) - String aStr("ConvWnd not destroyed (Refcount="); - aStr += pObj->nRefCount; - aStr += ") "; aStr += (sal_uIntPtr)hWnd; - WRITELOG((char*)aStr.GetStr()) -#endif - } - } -#if defined( OV_DEBUG ) - else - { - WRITELOG("DestroyCnvWnd:Already destroyed/No win data/Partner died") - } -#endif -} - -// static -sal_uInt16 ImpDdeMgr::GetConversationWndRefCount( HWND hWnd ) -{ - ImpConvWndData* pObj = (ImpConvWndData*)WinQueryWindowULong( hWnd, 0 ); - DBG_ASSERT(pObj,"Dde:ConvWnd has no data"); - if( pObj ) - return pObj->nRefCount; - return 0; -} - -// static -sal_uInt16 ImpDdeMgr::IncConversationWndRefCount( HWND hWnd ) -{ -#if 0 && defined( OV_DEBUG ) - String aStr("IncConversationWndRefCount "); - aStr += (sal_uIntPtr)hWnd; - WRITELOG((char*)aStr.GetStr()) -#endif - ImpConvWndData* pObj = (ImpConvWndData*)WinQueryWindowULong( hWnd, 0 ); - DBG_ASSERT(pObj,"Dde:ConvWnd has no data"); - if( pObj ) - { - pObj->nRefCount++; - return pObj->nRefCount; - } - return 0; -} - -ImpDdeMgrData* ImpDdeMgr::InitAll() -{ - ImpDdeMgrData* pBase = 0; - // nur dann neu anlegen, wenn die Tabelle nicht existiert - APIRET nRet=DosGetNamedSharedMem((PPVOID)&pBase,DDEMLDATA,PAG_READ| PAG_WRITE); - if ( nRet ) - { - if ( nRet == 2 ) // ERROR_FILE_NOT_FOUND ) - { - // DDECONVERSATIONCOUNT=4096 - sal_uInt16 nConvTransCount = 128; - PSZ pResult; - nRet = DosScanEnv( "SOMAXDDECONN", (const char**)&pResult ); - if( !nRet ) - { - int nTemp = 0; - nTemp = atoi( pResult ); - nTemp++; // der nullte Eintrag wird nicht benutzt - if( nTemp > 128 ) - nConvTransCount = (sal_uInt16)nTemp; - } - sal_uIntPtr nSize = sizeof(ImpDdeMgrData); - nSize += sizeof(ImpHCONV) * nConvTransCount; - nSize += sizeof(Transaction) * nConvTransCount; - nSize += sizeof(HWND) * DDEMLAPPCOUNT; - - nRet = ImpDdeMgr::AllocNamedSharedMem( (PPVOID)&pBase, - DDEMLDATA, nSize, 1 ); - if ( !nRet ) - { - pBase->nTotalSize = nSize; - sal_uIntPtr nAppTable = (sal_uIntPtr)&(pBase->aAppTable); - sal_uIntPtr nCharBase = (sal_uIntPtr)pBase; - pBase->nOffsAppTable = nAppTable - nCharBase; - pBase->nOffsConvTable = pBase->nOffsAppTable; - pBase->nOffsConvTable += sizeof(HWND) * DDEMLAPPCOUNT; - pBase->nOffsTransTable = pBase->nOffsConvTable; - pBase->nOffsTransTable += sizeof(ImpHCONV) * nConvTransCount; - - pBase->nMaxAppCount = DDEMLAPPCOUNT; - pBase->nMaxConvCount = nConvTransCount; - pBase->nMaxTransCount = nConvTransCount; - } - } - } - - if( pBase ) - { - pConvTable = ImpDdeMgr::GetConvTable( pBase ); - pTransTable = ImpDdeMgr::GetTransTable( pBase ); - pAppTable = ImpDdeMgr::GetAppTable( pBase ); - } - - memset( &aDefaultContext, 0, sizeof(CONVCONTEXT) ); - aDefaultContext.cb = sizeof(CONVCONTEXT); - aDefaultContext.idCountry = 49; // ?? - aDefaultContext.usCodepage = 850; // ?? - - return pBase; -} - -// static -HCONV ImpDdeMgr::CreateConvHandle( ImpDdeMgrData* pData, - PID pidOwner, - HWND hWndMe, HWND hWndPartner, - HSZ hszPartner, HSZ hszServiceReq, HSZ hszTopic, - HCONV hPrevHCONV ) -{ - DBG_ASSERT(pData,"DDE:Invalid data"); - if( !pData ) - return (HCONV)0; - - ImpHCONV* pPtr = ImpDdeMgr::GetConvTable( pData ); - sal_uInt16 nCount = pData->nMaxConvCount; - pPtr++; - nCount--; // ersten Handle (NULLHANDLE) ueberspringen - sal_uInt16 nIdx = 1; - DBG_ASSERT(pPtr,"No ConvTable"); - if( !pPtr ) - return (HCONV)0; - - while( nCount && pPtr->hWndThis != (HWND)NULL ) - { - nCount--; - pPtr++; - nIdx++; - } - if( !nCount ) - return (HCONV)0; - - DdeKeepStringHandle( hszPartner ); - DdeKeepStringHandle( hszServiceReq ); - DdeKeepStringHandle( hszTopic ); - pPtr->hszPartner = hszPartner; - pPtr->hszServiceReq = hszServiceReq; - pPtr->hszTopic = hszTopic; - - pPtr->hWndThis = hWndMe; - pPtr->hWndPartner = hWndPartner; - pPtr->pidOwner = pidOwner; - pPtr->hConvPartner = (HCONV)0; - pPtr->nPrevHCONV = (sal_uInt16)hPrevHCONV; - pPtr->nNextHCONV = 0; - pPtr->nStatus = ST_CONNECTED; - - pData->nCurConvCount++; - - return (HCONV)nIdx; -} - -// static -void ImpDdeMgr::FreeConvHandle( ImpDdeMgrData* pBase, HCONV hConv, - sal_Bool bDestroyHWndThis ) -{ - DBG_ASSERT(pBase,"DDE:No data"); -#if 0 && defined( OV_DEBUG ) - String aStr("FreeConvHandle: Start "); - aStr += (sal_uIntPtr)hConv; - aStr += " Destroy: "; aStr += (sal_uInt16)bDestroyHWndThis; - WRITELOG((char*)aStr.GetStr()); - WRITESTATUS("FreeConvHandle: Start"); -#endif - if( !pBase ) - { - WRITELOG("FreeConvHandle: FAIL"); - return; - } - DBG_ASSERT(hConv&&hConv<pBase->nMaxConvCount,"DDE:Invalid Conv-Handle"); - if( hConv && hConv < pBase->nMaxConvCount ) - { - ImpHCONV* pTable = ImpDdeMgr::GetConvTable( pBase ); - ImpHCONV* pPtr = pTable + (sal_uInt16)hConv; - if( pPtr->nStatus & ST_INLIST ) - { - // Verkettung umsetzen - sal_uInt16 nPrev = pPtr->nPrevHCONV; - sal_uInt16 nNext = pPtr->nNextHCONV; - if( nPrev ) - { - pPtr = pTable + nPrev; - pPtr->nNextHCONV = nNext; - } - if( nNext ) - { - pPtr = pTable + nNext; - pPtr->nPrevHCONV = nPrev; - } - pPtr = pTable + (sal_uInt16)hConv; - } - - DdeFreeStringHandle( pPtr->hszPartner ); - DdeFreeStringHandle( pPtr->hszServiceReq ); - DdeFreeStringHandle( pPtr->hszTopic ); - if( bDestroyHWndThis ) - DestroyConversationWnd( pPtr->hWndThis ); - memset( pPtr, 0, sizeof(ImpHCONV) ); - DBG_ASSERT(pBase->nCurConvCount,"Dde:Invalid Trans. count"); - pBase->nCurConvCount--; - } -#if defined(OV_DEBUG) - else - { - WRITELOG("FreeConvHandle: FAIL"); - } -#endif - //WRITELOG("FreeConvHandle: END"); - //WRITESTATUS("FreeConvHandle: End"); -} - -// static -HCONV ImpDdeMgr::IsConvHandleAvailable( ImpDdeMgrData* pBase ) -{ - DBG_ASSERT(pBase,"DDE:No data"); - if( !pBase ) - return 0; - - ImpHCONV* pPtr = ImpDdeMgr::GetConvTable( pBase ); - sal_uInt16 nCurPos = pBase->nMaxConvCount - 1; - pPtr += nCurPos; // von hinten aufrollen - while( nCurPos >= 1 ) - { - if( pPtr->hWndThis == 0 ) - return sal_True; - pPtr--; - nCurPos--; - } - return sal_False; -} - -// static -HCONV ImpDdeMgr::GetConvHandle( ImpDdeMgrData* pBase, HWND hWndThis, - HWND hWndPartner ) -{ - DBG_ASSERT(pBase,"DDE:No data"); - if( !pBase ) - return 0; - ImpHCONV* pPtr = ImpDdeMgr::GetConvTable( pBase ); - sal_uInt16 nCurPos = 1; - pPtr++; // ersten Handle ueberspringen - sal_uInt16 nCurConvCount = pBase->nCurConvCount; - while( nCurConvCount && nCurPos < pBase->nMaxConvCount ) - { - if( pPtr->hWndThis ) - { - if(pPtr->hWndThis == hWndThis && pPtr->hWndPartner == hWndPartner) - return (HCONV)nCurPos; - nCurConvCount--; - if( !nCurConvCount ) - return (HCONV)0; - } - nCurPos++; - pPtr++; - } - return (HCONV)0; -} - - - -// static -sal_uIntPtr ImpDdeMgr::CreateTransaction( ImpDdeMgrData* pBase, HCONV hOwner, - HSZ hszItem, sal_uInt16 nFormat, sal_uInt16 nTransactionType ) -{ - DBG_ASSERT(pBase,"DDE:No Data"); - DBG_ASSERT(hOwner!=0,"DDE:No Owner"); - - if( pBase && hOwner ) - { - Transaction* pPtr = ImpDdeMgr::GetTransTable( pBase ); - DBG_ASSERT(pPtr->hConvOwner==0,"DDE:Data corrupted"); - sal_uInt16 nId = 1; - pPtr++; - while( nId < pBase->nMaxTransCount ) - { - if( pPtr->hConvOwner == (HCONV)0 ) - { - pPtr->hConvOwner = hOwner; - DdeKeepStringHandle( hszItem ); - pPtr->hszItem = hszItem; - pPtr->nType = nTransactionType; - pPtr->nConvst = XST_CONNECTED; - pPtr->nFormat = nFormat; - pBase->nCurTransCount++; - return (sal_uIntPtr)nId; - } - nId++; - pPtr++; - } - } - return 0; -} - -// static -void ImpDdeMgr::FreeTransaction( ImpDdeMgrData* pBase, sal_uIntPtr nTransId ) -{ - DBG_ASSERT(pBase,"DDE:No Data"); - if( !pBase ) - return; - - DBG_ASSERT(nTransId<pBase->nMaxTransCount,"DDE:Invalid TransactionId"); - if( nTransId >= pBase->nMaxTransCount ) - return; - - Transaction* pPtr = ImpDdeMgr::GetTransTable( pBase ); - pPtr += nTransId; - DBG_ASSERT(pPtr->hConvOwner!=0,"DDE:TransId has no owner"); - if( pPtr->hConvOwner ) - { - //WRITELOG("Freeing transaction"); - DdeFreeStringHandle( pPtr->hszItem ); - memset( pPtr, 0, sizeof(Transaction) ); - DBG_ASSERT(pBase->nCurTransCount,"Dde:Invalid Trans. count"); - pBase->nCurTransCount--; - } -} - -// static -sal_uIntPtr ImpDdeMgr::GetTransaction( ImpDdeMgrData* pBase, - HCONV hOwner, HSZ hszItem, sal_uInt16 nFormat ) -{ - DBG_ASSERT(pBase,"DDE:No Data"); - if( !pBase || !hOwner ) - return 0; - - Transaction* pTrans = ImpDdeMgr::GetTransTable( pBase ); - DBG_ASSERT(pTrans,"DDE:No TransactionTable"); - if( !pTrans ) - return 0; - pTrans++; // NULLHANDLE ueberspringen - - ImpHCONV* pConv = ImpDdeMgr::GetConvTable( pBase ); - pConv += (sal_uInt16)hOwner; - HCONV hConvPartner = pConv->hConvPartner; - - sal_uInt16 nCurTransCount = pBase->nCurTransCount; - for( sal_uInt16 nTrans=1; nTrans< pBase->nMaxTransCount; nTrans++, pTrans++ ) - { - if( pTrans->hConvOwner ) - { - if(( pTrans->hConvOwner == hOwner || - pTrans->hConvOwner == hConvPartner) && - pTrans->nFormat == nFormat && - pTrans->hszItem == hszItem ) - { - // gefunden! - return (sal_uIntPtr)nTrans; - } - nCurTransCount--; - if( !nCurTransCount ) - return 0; - } - } - return 0; // narda -} - -// static -HSZ ImpDdeMgr::DdeCreateStringHandle( PSZ pszString, int iCodePage) -{ - if( !pszString || *pszString == '\0' ) - return (HSZ)0; - // Atom-Table beachtet Gross/Kleinschreibung, DDEML aber nicht - - // OV 12.4.96: Services,Topics,Items case-sensitiv!!! - // (Grosskundenanforderung (Reuter-DDE)) - //strlwr( pszString ); - //*pszString = (char)toupper(*pszString); - - HATOMTBL hAtomTable = WinQuerySystemAtomTable(); - ATOM aAtom = WinAddAtom( hAtomTable, pszString ); - return (HSZ)aAtom; -} - -// static -sal_uIntPtr ImpDdeMgr::DdeQueryString( HSZ hszStr, PSZ pszStr, sal_uIntPtr cchMax, int iCodePage) -{ - HATOMTBL hAtomTable = WinQuerySystemAtomTable(); - if ( !pszStr ) - return WinQueryAtomLength( hAtomTable, (ATOM)hszStr); - else - { - *pszStr = 0; - return WinQueryAtomName( hAtomTable, (ATOM)hszStr, pszStr, cchMax ); - } -} - -// static -sal_Bool ImpDdeMgr::DdeFreeStringHandle( HSZ hsz ) -{ - if( !hsz ) - return sal_False; - ATOM aResult = WinDeleteAtom( WinQuerySystemAtomTable(),(ATOM)hsz ); - return (sal_Bool)(aResult==0); -} - -// static -sal_Bool ImpDdeMgr::DdeKeepStringHandle( HSZ hsz ) -{ - if( !hsz ) - return sal_True; - HATOMTBL hAtomTable = WinQuerySystemAtomTable(); -#ifdef DBG_UTIL - sal_uIntPtr nUsageCount=WinQueryAtomUsage(hAtomTable,(ATOM)hsz); -#endif - sal_uIntPtr nAtom = 0xFFFF0000; - sal_uIntPtr nPar = (sal_uIntPtr)hsz; - nAtom |= nPar; - ATOM aAtom = WinAddAtom( hAtomTable, (PSZ)nAtom ); -#ifdef DBG_UTIL - if ( aAtom ) - DBG_ASSERT(WinQueryAtomUsage(hAtomTable,(ATOM)hsz)==nUsageCount+1,"Keep failed"); -#endif - return (sal_Bool)(aAtom!=0); -} - - -// static -int ImpDdeMgr::DdeCmpStringHandles(HSZ hsz1, HSZ hsz2) -{ - if ( hsz1 == hsz2 ) - return 0; - if ( hsz1 < hsz2 ) - return -1; - return 1; -} - -HDDEDATA ImpDdeMgr::DdeCreateDataHandle( void* pSrc, sal_uIntPtr cb, - sal_uIntPtr cbOff, HSZ hszItem, sal_uInt16 wFmt, sal_uInt16 afCmd) -{ - char* pData = (char*)pSrc; - pData += cbOff; - sal_uInt16 nStatus; - if( afCmd & HDATA_APPOWNED ) - nStatus = IMP_HDATAAPPOWNED; - else - nStatus = 0; - PDDESTRUCT hData=MakeDDEObject(0,(ATOM)hszItem,nStatus,wFmt,pData,cb); -// WRITEDATA(hData) - if ( !hData ) - ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER; - return (HDDEDATA)hData; -} - -// static -sal_uInt8* ImpDdeMgr::DdeAccessData(HDDEDATA hData, sal_uIntPtr* pcbDataSize) -{ - sal_uInt8* pRet = 0; - *pcbDataSize = 0; - if ( hData ) - { - pRet = (sal_uInt8*)hData; - pRet += hData->offabData; - sal_uIntPtr nLen = hData->cbData; - // nLen -= hData->offabData; - *pcbDataSize = nLen; - } - else - ImpDdeMgr::nLastErrInstance = DMLERR_INVALIDPARAMETER; - return pRet; -} - -// static -sal_Bool ImpDdeMgr::DdeUnaccessData(HDDEDATA hData) -{ - return sal_True; // nothing to do for us -} - -// static -sal_Bool ImpDdeMgr::DdeFreeDataHandle(HDDEDATA hData) -{ - DdeUnaccessData( hData ); - MyDosFreeMem( (PSZ)hData, "DdeFreeDataHandle" ); - return sal_True; -} - -// static -HDDEDATA ImpDdeMgr::DdeAddData(HDDEDATA hData,void* pSrc,sal_uIntPtr cb,sal_uIntPtr cbOff) -{ - return (HDDEDATA)0; -} - -// static -sal_uIntPtr ImpDdeMgr::DdeGetData(HDDEDATA hData,void* pDst,sal_uIntPtr cbMax,sal_uIntPtr cbOff) -{ - return 0; -} - -sal_Bool ImpDdeMgr::DisconnectAll() -{ - //WRITESTATUS("Before DisconnectAll()") - sal_uInt16 nCurConvCount = pData->nCurConvCount; - if( !nCurConvCount ) - return sal_True; - - sal_Bool bRet = sal_True; - ImpHCONV* pPtr = pConvTable; - pPtr++; - - for( sal_uInt16 nPos=1; nPos < pData->nMaxConvCount; nPos++, pPtr++ ) - { - if( pPtr->hWndThis ) - { - if( !DdeDisconnect( (HCONV)nPos ) ) - bRet = sal_False; - nCurConvCount--; - if( !nCurConvCount ) - break; - } - } - //WRITESTATUS("After DisconnectAll()") - return bRet; -} - -// static -void ImpDdeMgr::FreeTransactions( ImpDdeMgrData* pData,HWND hWndThis, - HWND hWndPartner ) -{ - sal_uInt16 nCurTransCount = pData->nCurTransCount; - if( !nCurTransCount ) - return; - - Transaction* pTrans = GetTransTable( pData ); - ImpHCONV* pConvTable = GetConvTable( pData ); - pTrans++; - for( sal_uInt16 nPos=1; nPos < pData->nMaxTransCount; nPos++, pTrans++ ) - { - if( pTrans->hConvOwner ) - { - ImpHCONV* pConv = pConvTable + (sal_uInt16)(pTrans->hConvOwner); - if((pConv->hWndThis==hWndThis&& pConv->hWndPartner==hWndPartner)|| - (pConv->hWndThis==hWndPartner && pConv->hWndPartner==hWndThis)) - { - FreeTransaction( pData, (sal_uIntPtr)nPos ); - } - nCurTransCount--; - if( !nCurTransCount ) - return; - } - } -} - -// static -void ImpDdeMgr::FreeTransactions( ImpDdeMgrData* pData, HCONV hConvOwner ) -{ - sal_uInt16 nCurTransCount = pData->nCurTransCount; - if( !nCurTransCount ) - return; - - Transaction* pTrans = GetTransTable( pData ); -// ImpHCONV* pConvTable = GetConvTable( pData ); - pTrans++; - for( sal_uInt16 nPos=1; nPos < pData->nMaxTransCount; nPos++, pTrans++ ) - { - if( pTrans->hConvOwner == hConvOwner ) - { - FreeTransaction( pData, (sal_uIntPtr)nPos ); - nCurTransCount--; - if( !nCurTransCount ) - return; - } - } -} - -// static -void ImpDdeMgr::FreeConversations( ImpDdeMgrData* pData, HWND hWndThis, - HWND hWndPartner ) -{ - sal_uInt16 nCurCount = pData->nCurConvCount; - if( !nCurCount ) - return; - - ImpHCONV* pPtr = GetConvTable( pData ); - pPtr++; - for( sal_uInt16 nPos=1; nPos < pData->nMaxConvCount; nPos++, pPtr++ ) - { - if( pPtr->hWndThis ) - { - if( hWndThis && pPtr->hWndPartner==hWndPartner ) - FreeConvHandle( pData, (HCONV)nPos ); - nCurCount--; - if( !nCurCount ) - return; - } - } -} - - -sal_Bool ImpDdeMgr::OwnsConversationHandles() -{ - //WRITESTATUS("OwnsConversationHandles()"); -#if 0 && defined( OV_DEBUG ) - String aStr("OwnsConversationHandles Server:"); - aStr += (sal_uIntPtr)hWndServer; - WRITELOG((char*)aStr.GetStr()) -#endif - ImpHCONV* pPtr = GetConvTable( pData ); - for( sal_uInt16 nCur = 1; nCur < pData->nMaxConvCount; nCur++, pPtr++ ) - { - if( pPtr->hWndThis && pPtr->pidOwner == pidThis ) - { - //WRITELOG("OwnsConversationHandles: sal_True"); - return sal_True; - } - } - // WRITELOG("OwnsConversationHandles: sal_False"); - return sal_False; -} - - - -// ********************************************************************* -// ********************************************************************* -// ********************************************************************* - -sal_uInt16 DdeInitialize(sal_uIntPtr* pidInst, PFNCALLBACK pfnCallback, - sal_uIntPtr afCmd, sal_uIntPtr ulRes) -{ - if( (*pidInst)!=0 ) - { - // Reinitialize wird noch nicht unterstuetzt - DBG_ASSERT(0,"DDEML:Reinitialize not supported"); - return DMLERR_INVALIDPARAMETER; - } - - ImpDdeMgr* pMgr = new ImpDdeMgr; - *pidInst = (sal_uIntPtr)pMgr; - return pMgr->DdeInitialize( pfnCallback, afCmd ); -} - -sal_Bool DdeUninitialize(sal_uIntPtr idInst) -{ - if( !idInst ) - return sal_False; - ImpDdeMgr* pMgr = (ImpDdeMgr*)idInst; - // nur loeschen, wenn wir nicht mehr benutzt werden! - if( !pMgr->OwnsConversationHandles() ) - { - WRITELOG("DdeUninitialize: sal_True"); - delete pMgr; - return sal_True; - } - WRITELOG("DdeUninitialize: sal_False"); - return sal_False; -} - - -HCONVLIST DdeConnectList(sal_uIntPtr idInst, HSZ hszService, HSZ hszTopic, - HCONVLIST hConvList, CONVCONTEXT* pCC) -{ - if( !idInst ) - return 0; - return ((ImpDdeMgr*)idInst)->DdeConnectList(hszService,hszTopic, - hConvList, pCC ); -} - -HCONV DdeQueryNextServer(HCONVLIST hConvList, HCONV hConvPrev) -{ - return ImpDdeMgr::DdeQueryNextServer( hConvList, hConvPrev ); -} - -sal_Bool DdeDisconnectList(HCONVLIST hConvList) -{ - return ImpDdeMgr::DdeDisconnectList( hConvList ); -} - -HCONV DdeConnect(sal_uIntPtr idInst, HSZ hszService, HSZ hszTopic, - CONVCONTEXT* pCC) -{ - if( !idInst ) - return 0; - return ((ImpDdeMgr*)idInst)->DdeConnect( hszService, hszTopic, pCC ); -} - -sal_Bool DdeDisconnect(HCONV hConv) -{ - return ImpDdeMgr::DdeDisconnect( hConv ); -} - -HCONV DdeReconnect(HCONV hConv) -{ - return ImpDdeMgr::DdeReconnect( hConv ); -} - - -sal_uInt16 DdeQueryConvInfo(HCONV hConv, sal_uIntPtr idTransact, CONVINFO* pCI ) -{ - return ImpDdeMgr::DdeQueryConvInfo( hConv, idTransact, pCI ); -} - -sal_Bool DdeSetUserHandle(HCONV hConv, sal_uIntPtr id, sal_uIntPtr hUser) -{ - return ImpDdeMgr::DdeSetUserHandle( hConv, id, hUser ); -} - -sal_Bool DdeAbandonTransaction(sal_uIntPtr idInst, HCONV hConv, sal_uIntPtr idTransaction) -{ - if( !idInst ) - return sal_False; - return ((ImpDdeMgr*)idInst)->DdeAbandonTransaction(hConv,idTransaction); -} - -sal_Bool DdePostAdvise(sal_uIntPtr idInst, HSZ hszTopic, HSZ hszItem) -{ - if( !idInst ) - return sal_False; - return ((ImpDdeMgr*)idInst)->DdePostAdvise( hszTopic, hszItem ); -} - -sal_Bool DdeEnableCallback(sal_uIntPtr idInst, HCONV hConv, sal_uInt16 wCmd) -{ - if( !idInst ) - return sal_False; - return ((ImpDdeMgr*)idInst)->DdeEnableCallback( hConv, wCmd ); -} - -HDDEDATA DdeClientTransaction(void* pData, sal_uIntPtr cbData, - HCONV hConv, HSZ hszItem, sal_uInt16 wFmt, sal_uInt16 wType, - sal_uIntPtr dwTimeout, sal_uIntPtr* pdwResult) -{ - return ImpDdeMgr::DdeClientTransaction( pData, cbData, - hConv, hszItem, wFmt, wType, dwTimeout, pdwResult ); -} - -HDDEDATA DdeCreateDataHandle(sal_uIntPtr idInst, void* pSrc, sal_uIntPtr cb, - sal_uIntPtr cbOff, HSZ hszItem, sal_uInt16 wFmt, sal_uInt16 afCmd) -{ - if( !idInst ) - return 0; - return ((ImpDdeMgr*)idInst)->DdeCreateDataHandle( pSrc, cb, - cbOff, hszItem, wFmt, afCmd ); -} - -HDDEDATA DdeAddData(HDDEDATA hData, void* pSrc, sal_uIntPtr cb, sal_uIntPtr cbOff) -{ - return ImpDdeMgr::DdeAddData( hData, pSrc, cb, cbOff ); -} - -sal_uIntPtr DdeGetData(HDDEDATA hData, void* pDst, sal_uIntPtr cbMax, sal_uIntPtr cbOff) -{ - return ImpDdeMgr::DdeGetData( hData, pDst, cbMax, cbOff ); -} - -sal_uInt8* DdeAccessData(HDDEDATA hData, sal_uIntPtr* pcbDataSize) -{ - return ImpDdeMgr::DdeAccessData( hData, pcbDataSize ); -} - -sal_Bool DdeUnaccessData(HDDEDATA hData) -{ - return ImpDdeMgr::DdeUnaccessData( hData ); -} - -sal_Bool DdeFreeDataHandle(HDDEDATA hData) -{ - return ImpDdeMgr::DdeFreeDataHandle( hData ); -} - -sal_uInt16 DdeGetLastError(sal_uIntPtr idInst) -{ - if( !idInst ) - return DMLERR_DLL_NOT_INITIALIZED; - return ((ImpDdeMgr*)idInst)->DdeGetLastError(); -} - -HSZ DdeCreateStringHandle(sal_uIntPtr idInst, PSZ pszString,int iCodePage ) -{ - if( !idInst ) - return 0; - return ((ImpDdeMgr*)idInst)->DdeCreateStringHandle(pszString,iCodePage); -} - -sal_uIntPtr DdeQueryString( sal_uIntPtr idInst, HSZ hsz, PSZ pBuf, - sal_uIntPtr cchMax, int iCodePage ) -{ - if( !idInst ) - return 0; - return ((ImpDdeMgr*)idInst)->DdeQueryString( hsz,pBuf,cchMax,iCodePage); -} - -sal_Bool DdeFreeStringHandle( sal_uIntPtr idInst, HSZ hsz) -{ - if( !idInst ) - return sal_False; - return ((ImpDdeMgr*)idInst)->DdeFreeStringHandle( hsz ); -} - -sal_Bool DdeKeepStringHandle( sal_uIntPtr idInst, HSZ hsz ) -{ - if( !idInst ) - return sal_False; - return ((ImpDdeMgr*)idInst)->DdeKeepStringHandle( hsz ); -} - -int DdeCmpStringHandles(HSZ hsz1, HSZ hsz2) -{ - return ImpDdeMgr::DdeCmpStringHandles( hsz1, hsz2 ); -} - -HDDEDATA DdeNameService( sal_uIntPtr idInst, HSZ hsz1, HSZ hszRes, sal_uInt16 afCmd ) -{ - if( !idInst ) - return 0; - return ((ImpDdeMgr*)idInst)->DdeNameService( hsz1, afCmd ); -} - - diff --git a/svl/source/svdde/ddemldeb.cxx b/svl/source/svdde/ddemldeb.cxx deleted file mode 100644 index 84b9ca555546..000000000000 --- a/svl/source/svdde/ddemldeb.cxx +++ /dev/null @@ -1,280 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svl.hxx" - -#include "ddemlimp.hxx" - -#ifdef OV_DEBUG -#include <svgen.hxx> -#endif - -#if defined(OV_DEBUG) - -void ImpAddHSZ( HSZ hszString, String& rStr ) -{ - char aBuf[ 128 ]; - ImpDdeMgr::DdeQueryString( hszString,aBuf,sizeof(aBuf),850); - rStr += " (\""; rStr += aBuf; rStr += "\","; - HATOMTBL hAtomTable = WinQuerySystemAtomTable(); - sal_uIntPtr nRefCount = 0; - if( hszString ) - nRefCount = WinQueryAtomUsage(hAtomTable, (ATOM)hszString ); - rStr += nRefCount; rStr += ')'; -} - - -void ImpWriteDdeStatus(char* aFilename, char* pAppContext) -{ - char aBuf[ 128 ]; - sal_uInt16 nCtr; - HWND* pAppPtr; - ImpHCONV* pConvPtr; - Transaction* pTransPtr; - - ImpDdeMgrData* pData = ImpDdeMgr::AccessMgrData(); - if( !pData ) - return; - SvFileStream aStrm(aFilename, STREAM_READWRITE ); - String aLine; - aStrm.Seek( STREAM_SEEK_TO_END ); - aStrm << endl; - aStrm.WriteLine("********************** DDEML-Log ***********************"); - aStrm << endl; - if( pAppContext ) - { - aLine = Application::GetAppName(); - aLine += ':'; - aLine += "App-Context:"; aLine += pAppContext; - aStrm.WriteLine( aLine ); aStrm << endl; - } - aStrm.WriteLine("----------------- ImpDdeMgrData -------------------"); - aStrm << endl; - aLine= "TotalSize :"; aLine+= pData->nTotalSize; aStrm.WriteLine(aLine); - aLine= "nOffsAppTable :"; aLine+= pData->nOffsAppTable; aStrm.WriteLine(aLine); - aLine= "nOffsConvTable :"; aLine+= pData->nOffsConvTable; aStrm.WriteLine(aLine); - aLine= "nOffsTransTable:"; aLine+= pData->nOffsTransTable; aStrm.WriteLine(aLine); - aLine= "nMaxAppCount :"; aLine+= pData->nMaxAppCount; aStrm.WriteLine(aLine); - aLine= "nMaxConvCount :"; aLine+= pData->nMaxConvCount; aStrm.WriteLine(aLine); - aLine= "nMaxTransCount :"; aLine+= pData->nMaxTransCount; aStrm.WriteLine(aLine); - aLine= "nLastErr :"; aLine+= pData->nLastErr; aStrm.WriteLine(aLine); - aLine= "nCurConvCount :"; aLine+= pData->nCurConvCount; aStrm.WriteLine(aLine); - aLine= "nCurTransCount :"; aLine+= pData->nCurTransCount; aStrm.WriteLine(aLine); - aStrm << endl; - aStrm.WriteLine("---------- Registered DDEML-Applications -----------"); - aStrm << endl; - pAppPtr = ImpDdeMgr::GetAppTable( pData ); - for( nCtr = 0; nCtr < pData->nMaxAppCount; nCtr++, pAppPtr++ ) - { - if( *pAppPtr ) - { - aLine = "App."; aLine += nCtr; aLine += " HWND:"; - aLine += (sal_uIntPtr)*pAppPtr; aStrm.WriteLine(aLine); - } - } - - aStrm << endl; - aStrm.WriteLine("-------------- Conversation handles ----------------"); - aStrm << endl; - - sal_uInt16 nCurCount = pData->nCurConvCount; - - if( nCurCount ) - { - pConvPtr = ImpDdeMgr::GetConvTable( pData ); - for( nCtr = 0; nCtr < pData->nMaxConvCount; nCtr++, pConvPtr++ ) - { - if( pConvPtr->hWndThis ) - { - aLine = "HCONV:"; aLine += nCtr; - aLine += " HCONVpartner: "; aLine += (sal_uInt16)pConvPtr->hConvPartner; - if( !pConvPtr->hConvPartner ) aLine += "(Non-DDEML-App)"; - aLine += " hszPartner: "; aLine += (sal_uInt16)pConvPtr->hszPartner; - ImpAddHSZ( pConvPtr->hszPartner, aLine ); - aStrm.WriteLine( aLine ); - - aLine = "hszService: "; aLine += (sal_uInt16)pConvPtr->hszServiceReq; - ImpAddHSZ( pConvPtr->hszServiceReq, aLine ); - aLine += " hszTopic: "; aLine += (sal_uInt16)pConvPtr->hszTopic; - ImpAddHSZ( pConvPtr->hszTopic, aLine ); - aStrm.WriteLine( aLine ); - - aLine= "Status: "; aLine+= pConvPtr->nStatus; - if( pConvPtr->nStatus & ST_CLIENT ) aLine += " (Client)"; - if( pConvPtr->nStatus & ST_INLIST ) aLine += " (Inlist)"; - aStrm.WriteLine(aLine); - - aLine = "pidOwner: "; aLine += (sal_uIntPtr)pConvPtr->pidOwner; - aStrm.WriteLine( aLine ); - aLine = "hWndThis: "; aLine += (sal_uIntPtr)pConvPtr->hWndThis; - aStrm.WriteLine( aLine ); - aLine = "hWndPartner: "; aLine += (sal_uIntPtr)pConvPtr->hWndPartner; - aStrm.WriteLine( aLine ); - - aLine = "hConvList: "; aLine += (sal_uIntPtr)pConvPtr->hConvList; - aLine += " Prev: "; aLine += pConvPtr->nPrevHCONV; - aLine += " Next: "; aLine += pConvPtr->nNextHCONV; - aStrm.WriteLine( aLine ); - aStrm.WriteLine("----------------------------------------------------"); - - nCurCount--; - if( !nCurCount ) - break; - } - } - } - - aStrm.WriteLine("----------------- Transaction Ids ------------------"); - - nCurCount = pData->nCurTransCount; - if( nCurCount ) - { - pTransPtr = ImpDdeMgr::GetTransTable( pData ); - for( nCtr = 0; nCtr < pData->nMaxTransCount; nCtr++, pTransPtr++ ) - { - - if( pTransPtr->hConvOwner ) - { - aLine = "TransactionId:"; aLine += nCtr; - aLine += " hConvOwner: "; aLine += (sal_uInt16)pTransPtr->hConvOwner; - aStrm.WriteLine( aLine ); - aLine = "Item: "; aLine += (sal_uInt16)pTransPtr->hszItem; - ImpAddHSZ( pTransPtr->hszItem, aLine ); - aLine += " Format: "; aLine += pTransPtr->nFormat; - aStrm.WriteLine( aLine ); - aLine = "TransactionType: "; aLine += pTransPtr->nType; - aLine += " Convst: "; aLine += pTransPtr->nConvst; - aLine += " LastErr: "; aLine += pTransPtr->nLastError; - aLine += " Userhandle: "; aLine += pTransPtr->nUser; - aStrm.WriteLine( aLine ); - aStrm.WriteLine("--------------------------------------------------"); - - nCurCount--; - if( !nCurCount ) - break; - } - } - } - aStrm << endl; - aStrm.WriteLine("******************* End of DDEML-Log *******************"); -} - -void ImpWriteDdeData(char* aFilename, DDESTRUCT* pData) -{ - char aBuf[ 128 ]; - sal_uInt16 nCtr; - SvFileStream aStrm(aFilename, STREAM_READWRITE ); - aStrm.Seek( STREAM_SEEK_TO_END ); - String aLine; - aStrm << endl; - aLine = "cbData:"; aLine += pData->cbData; aStrm.WriteLine( aLine ); - aLine = "fsStatus:"; aLine += pData->fsStatus; aStrm.WriteLine( aLine ); - aLine = "usFormat:"; aLine += pData->usFormat; aStrm.WriteLine( aLine ); - aLine = "ItemName:"; aLine += (char*)((char*)pData+pData->offszItemName); - aStrm.WriteLine( aLine ); - aLine = "offabData:"; aLine += pData->offabData; aStrm.WriteLine(aLine); - char* pBuf = (char*)pData+pData->offabData; - sal_uInt16 nLen = pData->cbData; // - pData->offabData; - while( nLen ) - { - aStrm << *pBuf; - nLen--; - pBuf++; - } - aStrm << endl; -} - -void ImpWriteLogFile(char* pFilename, char* pStr) -{ - SvFileStream aStrm(pFilename, STREAM_READWRITE ); - aStrm.Seek( STREAM_SEEK_TO_END ); - String aStr( Application::GetAppName() ); - aStr += ':'; aStr += pStr; - aStrm.WriteLine( (char*)aStr.GetStr() ); -} - -#else - -void ImpWriteDdeStatus(char*, char* ) {} -void ImpWriteDdeData(char*, DDESTRUCT*) {} -void ImpWriteLogFile(char*, char*) {} - -#endif - -APIRET MyDosAllocSharedMem(void** ppBaseAddress, char* pszName, unsigned long ulObjectSize, - unsigned long ulFlags, char* pContextStr ) -{ - APIRET nRet = DosAllocSharedMem(ppBaseAddress,pszName,ulObjectSize,ulFlags ); -#if 0 && defined(OV_DEBUG) && defined(LOGFILE) - String aStr("DosAllocSharedMem:"); - aStr += pContextStr; - aStr += ": "; - aStr += ulObjectSize; - aStr += " ("; - aStr += (sal_uIntPtr)*((char**)ppBaseAddress); - aStr += ')'; - ImpWriteLogFile("\\ddeml.mem", (char*)aStr.GetStr() ); -#endif - return nRet; -} - -APIRET MyDosAllocMem(void** ppBaseAddress, unsigned long ulObjectSize, - unsigned long ulFlags, char* pContextStr ) -{ - APIRET nRet = DosAllocMem(ppBaseAddress, ulObjectSize,ulFlags ); -#if 0 && defined(OV_DEBUG) && defined(LOGFILE) - String aStr("DosAllocMem:"); - aStr += pContextStr; - aStr += ": "; - aStr += ulObjectSize; - aStr += " ("; - aStr += (sal_uIntPtr)*((char**)ppBaseAddress); - aStr += ')'; - ImpWriteLogFile("\\ddeml.mem", (char*)aStr.GetStr() ); -#endif - return nRet; -} - - -APIRET MyDosFreeMem( void* pBaseAddress, char* pContextStr ) -{ - APIRET nRet = DosFreeMem( pBaseAddress ); -#if 0 && defined(OV_DEBUG) && defined(LOGFILE) - String aStr("DosFreeMem:"); - aStr += pContextStr; - aStr += ": "; - aStr += (sal_uIntPtr)pBaseAddress; - ImpWriteLogFile("\\ddeml.mem", (char*)aStr.GetStr()); -#endif - return nRet; -} - - - - - diff --git a/svl/source/svdde/ddemldeb.hxx b/svl/source/svdde/ddemldeb.hxx deleted file mode 100644 index 8654bbd3ca65..000000000000 --- a/svl/source/svdde/ddemldeb.hxx +++ /dev/null @@ -1,66 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#if defined(OV_DEBUG) - -void ImpWriteLogFile(char*,char*); -void ImpAddHSZ( HSZ, String& ); -void ImpWriteDdeStatus(char*, char* ); -void ImpWriteDdeData(char*, DDESTRUCT*); - -#ifdef LOGFILE -#define WRITELOG(aString) ImpWriteLogFile("\\ddeml.log",aString); -#else -#define WRITELOG(bla) -#endif -#ifdef STATUSFILE -#define WRITESTATUS(aContext) ImpWriteDdeStatus("\\ddeml.sts",aContext); -#else -#define WRITESTATUS(bla) -#endif -#ifdef DDEDATAFILE -#define WRITEDATA(data) ImpWriteDdeData("\\ddeml.dat",data); -#else -#define WRITEDATA(bla) -#endif - -#else - -#define WRITELOG(bla) -#define WRITESTATUS(bla) -#define WRITEDATA(bla) - -#endif - -APIRET MyDosAllocSharedMem(void** ppBaseAddress, char* pszName, unsigned long ulObjectSize, - unsigned long ulFlags, char* pContextStr ); - -APIRET MyDosAllocMem(void** ppBaseAddress, unsigned long ulObjectSize, - unsigned long ulFlags, char* pContextStr ); - -APIRET MyDosFreeMem( void* pBaseAddress, char* pContextStr ); - diff --git a/svl/source/svdde/ddemlimp.hxx b/svl/source/svdde/ddemlimp.hxx deleted file mode 100644 index a145bc489f0f..000000000000 --- a/svl/source/svdde/ddemlimp.hxx +++ /dev/null @@ -1,433 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef _DDEMLIMP_HXX -#define _DDEMLIMP_HXX - - -#include <string.h> -#include <ctype.h> -#include "ddemlos2.h" - -#define DDEMLSERVICETABLE_INISIZE 8 - -// Bezeichner der systemglobalen DDEML-Tabelle -#define DDEMLDATA "\\SHAREMEM\\OV_DDEML.DAT" - -// vorlaeufig konstante Tabellengroessen -#define CONVTABLECOUNT 2048 /* max count conversations */ -#define TRANSTABLECOUNT 2048 /* transactions */ -#define DDEMLAPPCOUNT 16 /* max count simultaniously running */ - /* ddeml (StarDivision) applications */ - -#define ST_TERMACKREC 0x8000 /* wird im Conversationhandle gesetzt, */ - /* wenn die Partner-App DDE_TERMINATE */ - /* bestaetigt hat */ - -#define XST_TIMEOUT 17 /* Trans. hat Timeout ueberschritten */ -#define XST_WAITING_ACK 18 /* Trans. wartet auf Acknowledge */ -#define XST_WAITING_ADVDATA 19 /* Trans. wartet auf Advise-Daten */ -#define XST_WAITING_REQDATA 20 /* Trans. wartet auf angeforderte Daten */ - - -/* User-Flags DDESTRUCT */ -#define IMP_HDATAAPPOWNED 0x8000 - -#define CONVLISTNAME "DdeConvListId" - -#define XTYPF_MASK (XTYPF_NOBLOCK | XTYPF_NODATA | XTYPF_ACKREQ) - -// -// DDEML-Messages; werden nur an registrierte DDEML-Apps gesendet -// - -// Msg: WM_DDEML_REGISTER -// Empfaenger: wird allen DDEML-Applikationen nach Registrierung -// eines neuen Services gesendet -// Params: nPar1: hszBaseServName -// nPar2: hszInstServName -#define WM_DDEML_REGISTER WM_USER+1 - -// Msg: WM_DDEML_UNREGISTER -// Empfaenger: wird allen DDEML-Applikationen nach Deregistrierung -// eines Services gesendet -// Params: nPar1: hszBaseServName -// nPar2: hszInstServName -#define WM_DDEML_UNREGISTER WM_USER+2 - -// -// -// - -struct ImpHCONV -{ - HCONV hConvPartner; - HSZ hszPartner; // Name of partner application - HSZ hszServiceReq; // Service name - HSZ hszTopic; // Topic name - sal_uInt16 nStatus; // ST_* of conversation - HCONVLIST hConvList; // ConvListId , wenn in ConvList - CONVCONTEXT aConvContext; // Conversation context - - // private - HWND hWndThis; // 0 == Handle not used - HWND hWndPartner; - PID pidOwner; // PID des DdeManagers, der - // den Conv-Handle erzeugt hat. - sal_uInt16 nPrevHCONV; // 0 == no previous hConv or not in list - sal_uInt16 nNextHCONV; // 0 == no next hconv or not in list -}; - -struct Transaction -{ - HSZ hszItem; // Item name - sal_uInt16 nFormat; // Data format - sal_uInt16 nType; // Transaction type (XTYP_*) - // XTYP_ADVREQ [|XTYPF_NODATA] == Advise-Loop - // [|XTYPF_ACKREQ] - // XTYP_EXECUTE == laufendes Execute - // XTYP_REQUEST - // XTYP_POKE - // XTYP_ADVSTOP - // XTYP_ADVSTART - sal_uInt16 nConvst; // Conversation state (XST_*) - // 0 == idle - // XST_REQSENT (fuer XTYP_ADVREQ) - // XST_TIMEOUT (fuer alle Typen!) - // XST_WAITING (alle ausser XTYP_ADVREQ) - sal_uInt16 nLastError; // last err in transaction - sal_uIntPtr nUser; // Userhandle - // private - HCONV hConvOwner; // 0 == Transaction not used -}; - - -struct ImpWndProcParams -{ - HWND hWndReceiver; - MPARAM nPar1; - MPARAM nPar2; -}; - -struct ImpService -{ - HSZ hBaseServName; // Basis-Name des Service - HSZ hInstServName; // Basis-Name + DDEML-Server-HWND der App -}; - -class ImpDdeMgr; - -// Daten eines Conversation-Windows -struct ImpConvWndData -{ - ImpDdeMgr* pThis; - sal_uInt16 nRefCount; // Zahl Conversations auf diesem Window -}; - - -// systemglobale Daten der Library (liegen in named shared memory) -struct ImpDdeMgrData -{ - sal_uIntPtr nTotalSize; - sal_uIntPtr nOffsAppTable; - sal_uIntPtr nOffsConvTable; - sal_uIntPtr nOffsTransTable; - sal_uInt16 nMaxAppCount; - sal_uInt16 nMaxConvCount; - sal_uInt16 nMaxTransCount; - sal_uInt16 nLastErr; - sal_uInt16 nReserved; - sal_uInt16 nCurTransCount; - sal_uInt16 nCurConvCount; - HWND aAppTable[ 1 ]; // fuer Broadcast-Messages - ImpHCONV aConvTable[ 1 ]; - Transaction aTransTable[ 1 ]; -}; - - - -class ImpDdeMgr -{ - friend MRESULT EXPENTRY ConvWndProc(HWND hWnd,sal_uIntPtr nMsg,MPARAM nPar1,MPARAM nPar2); - friend MRESULT EXPENTRY ServerWndProc(HWND hWnd,sal_uIntPtr nMsg,MPARAM nPar1,MPARAM nPar2); - friend void ImpWriteDdeStatus(char*,char*); - friend void ImpAddHSZ( HSZ, String& ); - - static PSZ AllocAtomName( ATOM hString, sal_uIntPtr& rBufLen ); - static PDDESTRUCT MakeDDEObject( HWND hwnd, ATOM hItemName, - sal_uInt16 fsStatus, sal_uInt16 usFormat, PVOID pabData, sal_uIntPtr usDataLen ); - static APIRET AllocNamedSharedMem( PPVOID ppBaseAddress, PSZ pName, - sal_uIntPtr nElementSize, sal_uIntPtr nElementCount ); - - HWND hWndServer; - PID pidThis; - PFNCALLBACK pCallback; - sal_uIntPtr nTransactFilter; - CONVCONTEXT aDefaultContext; - ImpDdeMgrData* pData; - ImpService* pServices; - sal_uInt16 nServiceCount; - - ImpHCONV* pConvTable; // liegt in pData (nicht deleten!) - Transaction* pTransTable; // liegt in pData (nicht deleten!) - HWND* pAppTable; // liegt in pData (nicht deleten!) - - static ImpHCONV* GetConvTable( ImpDdeMgrData* ); - static Transaction* GetTransTable( ImpDdeMgrData* ); - static HWND* GetAppTable( ImpDdeMgrData* ); - - - static HWND NextFrameWin( HENUM hEnum ); - void CreateServerWnd(); - void DestroyServerWnd(); - HWND CreateConversationWnd(); - // Fktn. duerfen nur fuer HCONVs aufgerufen werden, die - // in der eigenen Applikation erzeugt wurden - static void DestroyConversationWnd( HWND hWndConv ); - static sal_uInt16 GetConversationWndRefCount( HWND hWndConv ); - static sal_uInt16 IncConversationWndRefCount( HWND hWndConv ); - - MRESULT SrvWndProc(HWND hWnd,sal_uIntPtr nMsg,MPARAM nPar1,MPARAM nPar2); - MRESULT ConvWndProc(HWND hWnd,sal_uIntPtr nMsg,MPARAM nPar1,MPARAM nPar2); - void RegisterDDEMLApp(); - void UnregisterDDEMLApp(); - void CleanUp(); - ImpDdeMgrData* InitAll(); - static sal_Bool MyWinDdePostMsg( HWND, HWND, sal_uInt16, PDDESTRUCT, sal_uIntPtr ); - void MyInitiateDde( HWND hWndServer, HWND hWndClient, - HSZ hszService, HSZ hszTopic, CONVCONTEXT* pCC ); - DDEINIT* CreateDDEInitData( HWND hWndDest, HSZ hszService, - HSZ hszTopic, CONVCONTEXT* pCC ); - // wenn pDDEData==0, muss pCC gesetzt sein - HCONV ConnectWithClient( HWND hWndClient, HSZ hszPartner, - HSZ hszService, HSZ hszTopic, sal_Bool bSameInst, - DDEINIT* pDDEData, CONVCONTEXT* pCC = 0); - - HCONV CheckIncoming( ImpWndProcParams*, sal_uIntPtr nTransMask, - HSZ& rhszItem ); - // fuer Serverbetrieb. Ruft Callback-Fkt fuer alle offenen Advises - // auf, deren Owner der uebergebene HCONV ist. - // bFreeTransactions==sal_True: loescht die Transaktionen - // gibt Anzahl der getrennten Transaktionen zurueck - sal_uInt16 SendUnadvises( HCONV hConv, - sal_uInt16 nFormat, // 0==alle - sal_Bool bFreeTransactions ); - - sal_Bool WaitTransState( - Transaction* pTrans, sal_uIntPtr nTransId, - sal_uInt16 nNewState, - sal_uIntPtr nTimeout ); - - // DDEML ruft Callback mit XTYP_CONNECT-Transaction nur auf, - // wenn die App den angeforderten Service registriert hat - // Standardeinstellung: sal_True - sal_Bool bServFilterOn; - - // Fehlercode muss noch systemglobal werden (Atom o. ae.) - static sal_uInt16 nLastErrInstance; // wenn 0, dann gilt globaler Fehlercode - - static ImpDdeMgrData* AccessMgrData(); - - static HCONV CreateConvHandle( ImpDdeMgrData* pBase, - PID pidOwner, - HWND hWndThis, HWND hWndPartner, - HSZ hszPartner, HSZ hszServiceReq, HSZ hszTopic, - HCONV hPrevHCONV = 0 ); - - static HCONV IsConvHandleAvailable( ImpDdeMgrData* pBase ); - static HCONV GetConvHandle( ImpDdeMgrData* pBase, - HWND hWndThis, HWND hWndPartner ); - static void FreeConvHandle( ImpDdeMgrData*, HCONV, - sal_Bool bDestroyHWndThis = sal_True ); - - static sal_uIntPtr CreateTransaction( ImpDdeMgrData* pBase, - HCONV hOwner, HSZ hszItem, sal_uInt16 nFormat, - sal_uInt16 nTransactionType ); - static sal_uIntPtr GetTransaction( ImpDdeMgrData* pBase, - HCONV hOwner, HSZ hszItem, sal_uInt16 nFormat ); - - static void FreeTransaction( ImpDdeMgrData*, sal_uIntPtr nTransId ); - - sal_Bool DisconnectAll(); - // Transaktionen muessen _vor_ den Konversationen geloescht werden! - static void FreeTransactions( ImpDdeMgrData*, HWND hWndThis, - HWND hWndPartner ); - static void FreeTransactions( ImpDdeMgrData*, HCONV hConvOwner ); - - static void FreeConversations( ImpDdeMgrData*,HWND hWndThis, - HWND hWndPartner ); - - ImpService* GetService( HSZ hszService ); - ImpService* PutService( HSZ hszService ); - void BroadcastService( ImpService*, sal_Bool bRegistered ); - - // rh: Startposition(!) & gefundener Handle - static ImpHCONV* GetFirstServer( ImpDdeMgrData*, HCONVLIST, HCONV& rh); - static ImpHCONV* GetLastServer( ImpDdeMgrData*, HCONVLIST, HCONV& ); - static sal_Bool CheckConvListId( HCONVLIST hConvListId ); - - sal_Bool IsSameInstance( HWND hWnd ); - HSZ GetAppName( HWND hWnd ); - - - // Transactions - MRESULT DdeAck( ImpWndProcParams* pParams ); - MRESULT DdeAdvise( ImpWndProcParams* pParams ); - MRESULT DdeData( ImpWndProcParams* pParams ); - MRESULT DdeExecute( ImpWndProcParams* pParams ); - MRESULT DdeInitiate( ImpWndProcParams* pParams ); - MRESULT DdeInitiateAck( ImpWndProcParams* pParams ); - MRESULT DdePoke( ImpWndProcParams* pParams ); - MRESULT DdeRequest( ImpWndProcParams* pParams ); - MRESULT DdeTerminate( ImpWndProcParams* pParams ); - MRESULT DdeUnadvise( ImpWndProcParams* pParams ); - MRESULT DdeRegister( ImpWndProcParams* pParams ); - MRESULT DdeUnregister( ImpWndProcParams* pParams ); - MRESULT DdeTimeout( ImpWndProcParams* pParams ); - - HDDEDATA Callback( - sal_uInt16 nTransactionType, - sal_uInt16 nClipboardFormat, - HCONV hConversationHandle, - HSZ hsz1, - HSZ hsz2, - HDDEDATA hData, - sal_uIntPtr nData1, - sal_uIntPtr nData2 ); - - HCONV DdeConnectImp( HSZ hszService,HSZ hszTopic,CONVCONTEXT* pCC); - - // connection data - HCONV hCurConv; // wird im DdeInitiateAck gesetzt - HCONVLIST hCurListId; // fuer DdeConnectList - sal_uInt16 nPrevConv; // .... "" .... - sal_Bool bListConnect; - - // synchr. transaction data - sal_Bool bInSyncTrans; - sal_uIntPtr nSyncTransId; - HDDEDATA hSyncResponseData; - sal_uIntPtr nSyncResponseMsg; // WM_DDE_ACK, WM_DDE_DATA, WM_TIMER - // sal_True==nach Ende der synchronen Transaktion eine evtl. benutzte - // asynchrone Transaktion beenden (typisch synchroner Request auf - // Advise-Loop) - sal_Bool bSyncAbandonTrans; - -public: - ImpDdeMgr(); - ~ImpDdeMgr(); - - sal_uInt16 DdeInitialize( PFNCALLBACK pCallbackProc, sal_uIntPtr nTransactionFilter ); - sal_uInt16 DdeGetLastError(); - - HCONV DdeConnect( HSZ hszService, HSZ hszTopic, CONVCONTEXT* ); - HCONVLIST DdeConnectList( HSZ hszService, HSZ hszTopic, - HCONVLIST hConvList, CONVCONTEXT* ); - static sal_Bool DdeDisconnect( HCONV hConv ); - static sal_Bool DdeDisconnectList( HCONVLIST hConvList ); - static HCONV DdeReconnect(HCONV hConv); - static HCONV DdeQueryNextServer(HCONVLIST hConvList, HCONV hConvPrev); - static sal_uInt16 DdeQueryConvInfo(HCONV hConv, sal_uIntPtr idTrans,CONVINFO* pCI); - static sal_Bool DdeSetUserHandle(HCONV hConv, sal_uIntPtr id, sal_uIntPtr hUser); - sal_Bool DdeAbandonTransaction( HCONV hConv, sal_uIntPtr idTransaction); - - sal_Bool DdePostAdvise( HSZ hszTopic, HSZ hszItem); - sal_Bool DdeEnableCallback( HCONV hConv, sal_uInt16 wCmd); - - HDDEDATA DdeNameService( HSZ hszService, sal_uInt16 afCmd); - - static HDDEDATA DdeClientTransaction(void* pData, sal_uIntPtr cbData, - HCONV hConv, HSZ hszItem, sal_uInt16 wFmt, sal_uInt16 wType, - sal_uIntPtr dwTimeout, sal_uIntPtr* pdwResult); - - // Data handles - - HDDEDATA DdeCreateDataHandle( void* pSrc, sal_uIntPtr cb, sal_uIntPtr cbOff, - HSZ hszItem, sal_uInt16 wFmt, sal_uInt16 afCmd); - static sal_uInt8* DdeAccessData(HDDEDATA hData, sal_uIntPtr* pcbDataSize); - static sal_Bool DdeUnaccessData(HDDEDATA hData); - static sal_Bool DdeFreeDataHandle(HDDEDATA hData); - static HDDEDATA DdeAddData(HDDEDATA hData,void* pSrc,sal_uIntPtr cb,sal_uIntPtr cbOff); - static sal_uIntPtr DdeGetData(HDDEDATA hData,void* pDst,sal_uIntPtr cbMax,sal_uIntPtr cbOff); - - // String handles - - static HSZ DdeCreateStringHandle( PSZ pStr, int iCodePage); - static sal_uIntPtr DdeQueryString(HSZ hsz,PSZ pStr,sal_uIntPtr cchMax,int iCPage); - static sal_Bool DdeFreeStringHandle( HSZ hsz ); - static sal_Bool DdeKeepStringHandle( HSZ hsz ); - static int DdeCmpStringHandles(HSZ hsz1, HSZ hsz2); - - // mit dieser Funktion kann geprueft werden, ob eine - // Applikation schon eine DDEML-Instanz angelegt hat. - // Die aktuelle Impl. unterstuetzt nur eine DDEML-Instanz - // pro Applikation (wg. synchroner Transaktionen) - static ImpDdeMgr* GetImpDdeMgrInstance( HWND hWnd ); - - // gibt sal_True zurueck, wenn mind. ein lebender HCONV - // von diesem DdeMgr erzeugt wurde - sal_Bool OwnsConversationHandles(); -}; - -// static -inline ImpHCONV* ImpDdeMgr::GetConvTable( ImpDdeMgrData* pData ) -{ - ImpHCONV* pRet; - if( pData ) - pRet = (ImpHCONV*)((sal_uIntPtr)(pData) + pData->nOffsConvTable); - else - pRet = 0; - return pRet; -} - -// static -inline Transaction* ImpDdeMgr::GetTransTable( ImpDdeMgrData* pData ) -{ - Transaction* pRet; - if( pData ) - pRet = (Transaction*)((sal_uIntPtr)(pData) + pData->nOffsTransTable); - else - pRet = 0; - return pRet; -} - -// static -inline HWND* ImpDdeMgr::GetAppTable( ImpDdeMgrData* pData ) -{ - HWND* pRet; - if( pData ) - pRet = (HWND*)((sal_uIntPtr)(pData) + pData->nOffsAppTable); - else - pRet = 0; - return pRet; -} - - - - -#endif - diff --git a/svl/source/svdde/ddemlos2.h b/svl/source/svdde/ddemlos2.h deleted file mode 100644 index 0d8fec8cef8b..000000000000 --- a/svl/source/svdde/ddemlos2.h +++ /dev/null @@ -1,374 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _DDEML_H -#define _DDEML_H - -#define INCL_OS2 -#define INCL_WIN - -#include <tools/svpm.h> -#include <tools/solar.h> -#include <tools/debug.hxx> -#include <tools/stream.hxx> - -typedef LHANDLE HSTR; - -#ifndef CALLBACK -#define CALLBACK -#endif - - -typedef sal_uIntPtr HCONVLIST; -typedef sal_uIntPtr HCONV; -typedef ATOM HSZ; -typedef DDESTRUCT* HDDEDATA; - -struct CONVINFO -{ - sal_uInt16 nSize; // sizeof(CONVINFO) - sal_uIntPtr nUser; // Userhandle - HCONV hConvPartner; // - HSZ hszPartner; // Name der Partnerapp - HSZ hszServiceReq; // Name des angeforderten Services - HSZ hszTopic; // -- " -- Topics - HSZ hszItem; // -- " -- Items - sal_uInt16 nFormat; // Datenformat der akt. Transaktion - sal_uInt16 nType; // Typ der akt. Transaktion (XTYP_*) - sal_uInt16 nStatus; // ST_* der Konversation - sal_uInt16 nConvst; // XST_* der akt. Transaktion - sal_uInt16 nLastError; // letzter Fehler der Transaktion - HCONVLIST hConvList; // ConvListId , wenn in ConvList - CONVCONTEXT aConvCtxt; // conversation context -}; - -/* the following structure is for use with XTYP_WILDCONNECT processing. */ - -struct HSZPAIR -{ - HSZ hszSvc; - HSZ hszTopic; -}; -typedef HSZPAIR *PHSZPAIR; - -/***** conversation states (usState) *****/ - -#define XST_NULL 0 /* quiescent states */ -#define XST_INCOMPLETE 1 -#define XST_CONNECTED 2 -#define XST_INIT1 3 /* mid-initiation states */ -#define XST_INIT2 4 -#define XST_REQSENT 5 /* active conversation states */ -#define XST_DATARCVD 6 -#define XST_POKESENT 7 -#define XST_POKEACKRCVD 8 -#define XST_EXECSENT 9 -#define XST_EXECACKRCVD 10 -#define XST_ADVSENT 11 -#define XST_UNADVSENT 12 -#define XST_ADVACKRCVD 13 -#define XST_UNADVACKRCVD 14 -#define XST_ADVDATASENT 15 -#define XST_ADVDATAACKRCVD 16 - -/* used in LOWORD(dwData1) of XTYP_ADVREQ callbacks... */ -#define CADV_LATEACK 0xFFFF - -/***** conversation status bits (fsStatus) *****/ - -#define ST_CONNECTED 0x0001 -#define ST_ADVISE 0x0002 -#define ST_ISLOCAL 0x0004 -#define ST_BLOCKED 0x0008 -#define ST_CLIENT 0x0010 -#define ST_TERMINATED 0x0020 -#define ST_INLIST 0x0040 -#define ST_BLOCKNEXT 0x0080 -#define ST_ISSELF 0x0100 - - -/* DDE constants for wStatus field */ - -//#define DDE_FACK 0x8000 -//#define DDE_FBUSY 0x4000 -//#define DDE_FDEFERUPD 0x4000 -//#define DDE_FACKREQ 0x8000 -//#define DDE_FRELEASE 0x2000 -//#define DDE_FREQUESTED 0x1000 -//#define DDE_FACKRESERVED 0x3ff0 -//#define DDE_FADVRESERVED 0x3fff -//#define DDE_FDATRESERVED 0x4fff -//#define DDE_FPOKRESERVED 0xdfff -//#define DDE_FAPPSTATUS 0x00ff -#define DDE_FNOTPROCESSED 0x0000 - -/***** message filter hook types *****/ - -#define MSGF_DDEMGR 0x8001 - -/***** codepage constants ****/ - -#define CP_WINANSI 1004 /* default codepage for windows & old DDE convs. */ - -/***** transaction types *****/ - -#define XTYPF_NOBLOCK 0x0002 /* CBR_BLOCK will not work */ -#define XTYPF_NODATA 0x0004 /* DDE_FDEFERUPD */ -#define XTYPF_ACKREQ 0x0008 /* DDE_FACKREQ */ - -#define XCLASS_MASK 0xFC00 -#define XCLASS_BOOL 0x1000 -#define XCLASS_DATA 0x2000 -#define XCLASS_FLAGS 0x4000 -#define XCLASS_NOTIFICATION 0x8000 - -#define XTYP_ERROR (0x0000 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK ) -#define XTYP_ADVDATA (0x0010 | XCLASS_FLAGS ) -#define XTYP_ADVREQ (0x0020 | XCLASS_DATA | XTYPF_NOBLOCK ) -#define XTYP_ADVSTART (0x0030 | XCLASS_BOOL ) -#define XTYP_ADVSTOP (0x0040 | XCLASS_NOTIFICATION) -#define XTYP_EXECUTE (0x0050 | XCLASS_FLAGS ) -#define XTYP_CONNECT (0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK) -#define XTYP_CONNECT_CONFIRM (0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK) -#define XTYP_XACT_COMPLETE (0x0080 | XCLASS_NOTIFICATION ) -#define XTYP_POKE (0x0090 | XCLASS_FLAGS ) -#define XTYP_REGISTER (0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK) -#define XTYP_REQUEST (0x00B0 | XCLASS_DATA ) -#define XTYP_DISCONNECT (0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK) -#define XTYP_UNREGISTER (0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK) -#define XTYP_WILDCONNECT (0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK) - -#define XTYP_MASK 0x00F0 -#define XTYP_SHIFT 4 /* shift to turn XTYP_ into an index */ - -/***** Timeout constants *****/ - -#define TIMEOUT_ASYNC -1L - -/***** Transaction ID constants *****/ - -#define QID_SYNC -1L - -/****** public strings used in DDE ******/ - -#define SZDDESYS_TOPIC "System" -#define SZDDESYS_ITEM_TOPICS "Topics" -#define SZDDESYS_ITEM_SYSITEMS "SysItems" -#define SZDDESYS_ITEM_RTNMSG "ReturnMessage" -#define SZDDESYS_ITEM_STATUS "Status" -#define SZDDESYS_ITEM_FORMATS "Formats" -#define SZDDESYS_ITEM_HELP "Help" -#define SZDDE_ITEM_ITEMLIST "TopicItemList" - - -/****** API entry points ******/ - -typedef HDDEDATA CALLBACK FNCALLBACK(sal_uInt16 wType, sal_uInt16 wFmt, HCONV hConv, - HSZ hsz1, HSZ hsz2, HDDEDATA hData, sal_uIntPtr dwData1, sal_uIntPtr dwData2); -typedef FNCALLBACK* PFNCALLBACK; - -#define CBR_BLOCK 0xffffffffL - -/* DLL registration functions */ - -sal_uInt16 DdeInitialize(sal_uIntPtr* pidInst, PFNCALLBACK pfnCallback, - sal_uIntPtr afCmd, sal_uIntPtr ulRes); - -/* - * Callback filter flags for use with standard apps. - */ - -#define CBF_FAIL_SELFCONNECTIONS 0x00001000 -#define CBF_FAIL_CONNECTIONS 0x00002000 -#define CBF_FAIL_ADVISES 0x00004000 -#define CBF_FAIL_EXECUTES 0x00008000 -#define CBF_FAIL_POKES 0x00010000 -#define CBF_FAIL_REQUESTS 0x00020000 -#define CBF_FAIL_ALLSVRXACTIONS 0x0003f000 - -#define CBF_SKIP_CONNECT_CONFIRMS 0x00040000 -#define CBF_SKIP_REGISTRATIONS 0x00080000 -#define CBF_SKIP_UNREGISTRATIONS 0x00100000 -#define CBF_SKIP_DISCONNECTS 0x00200000 -#define CBF_SKIP_ALLNOTIFICATIONS 0x003c0000 - -/* - * Application command flags - */ -#define APPCMD_CLIENTONLY 0x00000010L -#define APPCMD_FILTERINITS 0x00000020L -#define APPCMD_MASK 0x00000FF0L - -/* - * Application classification flags - */ -#define APPCLASS_STANDARD 0x00000000L -#define APPCLASS_MASK 0x0000000FL - - -sal_Bool DdeUninitialize(sal_uIntPtr idInst); - -/* conversation enumeration functions */ - -HCONVLIST DdeConnectList(sal_uIntPtr idInst, HSZ hszService, HSZ hszTopic, - HCONVLIST hConvList, CONVCONTEXT* pCC); -HCONV DdeQueryNextServer(HCONVLIST hConvList, HCONV hConvPrev); -sal_Bool DdeDisconnectList(HCONVLIST hConvList); - -/* conversation control functions */ - -HCONV DdeConnect(sal_uIntPtr idInst, HSZ hszService, HSZ hszTopic, - CONVCONTEXT* pCC); -sal_Bool DdeDisconnect(HCONV hConv); -HCONV DdeReconnect(HCONV hConv); - -sal_uInt16 DdeQueryConvInfo(HCONV hConv, sal_uIntPtr idTransaction, CONVINFO* pConvInfo); -sal_Bool DdeSetUserHandle(HCONV hConv, sal_uIntPtr id, sal_uIntPtr hUser); - -sal_Bool DdeAbandonTransaction(sal_uIntPtr idInst, HCONV hConv, sal_uIntPtr idTransaction); - - -/* app server interface functions */ - -sal_Bool DdePostAdvise(sal_uIntPtr idInst, HSZ hszTopic, HSZ hszItem); -sal_Bool DdeEnableCallback(sal_uIntPtr idInst, HCONV hConv, sal_uInt16 wCmd); - -#define EC_ENABLEALL 0 -#define EC_ENABLEONE ST_BLOCKNEXT -#define EC_DISABLE ST_BLOCKED -#define EC_QUERYWAITING 2 - -HDDEDATA DdeNameService(sal_uIntPtr idInst, HSZ hsz1, HSZ hsz2, sal_uInt16 afCmd); - -#define DNS_REGISTER 0x0001 -#define DNS_UNREGISTER 0x0002 -#define DNS_FILTERON 0x0004 -#define DNS_FILTEROFF 0x0008 - -/* app client interface functions */ - -HDDEDATA DdeClientTransaction(void* pData, sal_uIntPtr cbData, - HCONV hConv, HSZ hszItem, sal_uInt16 wFmt, sal_uInt16 wType, - sal_uIntPtr dwTimeout, sal_uIntPtr* pdwResult); - -/* data transfer functions */ - -HDDEDATA DdeCreateDataHandle(sal_uIntPtr idInst, void* pSrc, sal_uIntPtr cb, - sal_uIntPtr cbOff, HSZ hszItem, sal_uInt16 wFmt, sal_uInt16 afCmd); -// HDDEDATA DdeAddData(HDDEDATA hData, void* pSrc, sal_uIntPtr cb, sal_uIntPtr cbOff); -sal_uIntPtr DdeGetData(HDDEDATA hData, void* pDst, sal_uIntPtr cbMax, sal_uIntPtr cbOff); -sal_uInt8* DdeAccessData(HDDEDATA hData, sal_uIntPtr* pcbDataSize); -sal_Bool DdeUnaccessData(HDDEDATA hData); -sal_Bool DdeFreeDataHandle(HDDEDATA hData); - -#define HDATA_APPOWNED 0x0001 - -sal_uInt16 DdeGetLastError(sal_uIntPtr idInst); - -#define DMLERR_NO_ERROR 0 /* must be 0 */ - -#define DMLERR_FIRST 0x4000 - -#define DMLERR_ADVACKTIMEOUT 0x4000 -#define DMLERR_BUSY 0x4001 -#define DMLERR_DATAACKTIMEOUT 0x4002 -#define DMLERR_DLL_NOT_INITIALIZED 0x4003 -#define DMLERR_DLL_USAGE 0x4004 -#define DMLERR_EXECACKTIMEOUT 0x4005 -#define DMLERR_INVALIDPARAMETER 0x4006 -#define DMLERR_LOW_MEMORY 0x4007 -#define DMLERR_MEMORY_ERROR 0x4008 -#define DMLERR_NOTPROCESSED 0x4009 -#define DMLERR_NO_CONV_ESTABLISHED 0x400a -#define DMLERR_POKEACKTIMEOUT 0x400b -#define DMLERR_POSTMSG_FAILED 0x400c -#define DMLERR_REENTRANCY 0x400d -#define DMLERR_SERVER_DIED 0x400e -#define DMLERR_SYS_ERROR 0x400f -#define DMLERR_UNADVACKTIMEOUT 0x4010 -#define DMLERR_UNFOUND_QUEUE_ID 0x4011 - -#define DMLERR_LAST 0x4011 - -HSZ DdeCreateStringHandle(sal_uIntPtr idInst, PSZ pStr, int iCodePage); -sal_uIntPtr DdeQueryString(sal_uIntPtr idInst, HSZ hsz, PSZ pStr, sal_uIntPtr cchMax, - int iCodePage); -sal_Bool DdeFreeStringHandle(sal_uIntPtr idInst, HSZ hsz); -sal_Bool DdeKeepStringHandle(sal_uIntPtr idInst, HSZ hsz); -int DdeCmpStringHandles(HSZ hsz1, HSZ hsz2); - - - -/* von OS/2 nicht unterstuetzte Win3.1 Clipboard-Formate */ - -#define CF_NOTSUPPORTED_BASE 0xff00 - -#ifndef CF_DIB -#define CF_DIB CF_NOTSUPPORTED_BASE+1 -#endif - -#ifndef CF_DIF -#define CF_DIF CF_NOTSUPPORTED_BASE+2 -#endif - -#ifndef CF_DSPMETAFILEPICT -#define CF_DSPMETAFILEPICT CF_NOTSUPPORTED_BASE+3 -#endif - -#ifndef CF_METAFILEPICT -#define CF_METAFILEPICT CF_NOTSUPPORTED_BASE+4 -#endif - -#ifndef CF_OEMTEXT -#define CF_OEMTEXT CF_NOTSUPPORTED_BASE+5 -#endif - -#ifndef CF_OWNERDISPLAY -#define CF_OWNERDISPLAY CF_NOTSUPPORTED_BASE+6 -#endif - -#ifndef CF_PENDATA -#define CF_PENDATA CF_NOTSUPPORTED_BASE+7 -#endif - -#ifndef CF_RIFF -#define CF_RIFF CF_NOTSUPPORTED_BASE+8 -#endif - -#ifndef CF_SYLK -#define CF_SYLK CF_NOTSUPPORTED_BASE+9 -#endif - -#ifndef CF_TIFF -#define CF_TIFF CF_NOTSUPPORTED_BASE+10 -#endif - -#ifndef CF_WAVE -#define CF_WAVE CF_NOTSUPPORTED_BASE+11 -#endif - - -#endif /* _DDEML_HXX */ diff --git a/svl/source/svdde/makefile.mk b/svl/source/svdde/makefile.mk deleted file mode 100644 index d7f0a790486b..000000000000 --- a/svl/source/svdde/makefile.mk +++ /dev/null @@ -1,60 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - - -.IF "$(GUIBASE)"=="WIN" - -PRJ=..$/.. - -PRJNAME=svl -TARGET=svdde - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk - -# --- Files -------------------------------------------------------- - - -SLOFILES= $(SLO)$/ddecli.obj \ - $(SLO)$/ddesvr.obj \ - $(SLO)$/ddedata.obj \ - $(SLO)$/ddestrg.obj \ - $(SLO)$/ddewrap.obj \ - $(SLO)$/ddeinf.obj - -# --- Targets ------------------------------------------------------- - -.INCLUDE : target.mk - -.ELSE -dummy: - @echo GUI == "$(GUI)" - nothing to do - -.ENDIF - diff --git a/svl/source/svsql/converter.cxx b/svl/source/svsql/converter.cxx index 7b684110a196..2f6fa9f8c389 100644 --- a/svl/source/svsql/converter.cxx +++ b/svl/source/svsql/converter.cxx @@ -27,7 +27,7 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svl.hxx" -#include "converter.hxx" +#include <svl/converter.hxx> sal_Int32 SvDbaseConverter::ConvertPrecisionToDbase(sal_Int32 _nLen, sal_Int32 _nScale) { diff --git a/svl/source/svsql/makefile.mk b/svl/source/svsql/makefile.mk deleted file mode 100644 index e837d022fb1e..000000000000 --- a/svl/source/svsql/makefile.mk +++ /dev/null @@ -1,46 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. - -PRJNAME=svl -TARGET=svsql - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk - -# --- Files -------------------------------------------------------- - -SLOFILES = \ - $(SLO)$/converter.obj - -# --- Targets ------------------------------------------------------- - -.INCLUDE : target.mk - diff --git a/svl/source/undo/makefile.mk b/svl/source/undo/makefile.mk deleted file mode 100644 index 8a615d97a03b..000000000000 --- a/svl/source/undo/makefile.mk +++ /dev/null @@ -1,47 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. - -PRJNAME=svl -TARGET=undo -ENABLE_EXCEPTIONS=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk - -# --- Files -------------------------------------------------------- - -SLOFILES = \ - $(SLO)$/undo.obj - -# --- Tagets ------------------------------------------------------- - -.INCLUDE : target.mk - diff --git a/svl/source/uno/makefile.mk b/svl/source/uno/makefile.mk deleted file mode 100644 index 3414871305d5..000000000000 --- a/svl/source/uno/makefile.mk +++ /dev/null @@ -1,47 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/.. - -PRJNAME=svl -TARGET=unoiface -ENABLE_EXCEPTIONS=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk - -# --- Files -------------------------------------------------------- - -SLOFILES= \ - $(SLO)$/registerservices.obj\ - $(SLO)$/pathservice.obj - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk diff --git a/svl/unx/source/svdde/makefile.mk b/svl/unx/source/svdde/makefile.mk deleted file mode 100644 index 3d2ae4308821..000000000000 --- a/svl/unx/source/svdde/makefile.mk +++ /dev/null @@ -1,46 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ=..$/..$/.. - -PRJNAME=svl -TARGET=svdde - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk -.INCLUDE : $(PRJ)$/util$/svl.pmk - -# --- Files -------------------------------------------------------- - -SLOFILES = \ - $(SLO)$/ddedummy.obj - -# --- Tagets ------------------------------------------------------- - -.INCLUDE : target.mk - diff --git a/svl/util/makefile.mk b/svl/util/makefile.mk deleted file mode 100644 index 7cb493ae0d94..000000000000 --- a/svl/util/makefile.mk +++ /dev/null @@ -1,130 +0,0 @@ -#******************************************************************** |