diff options
Diffstat (limited to 'sot')
38 files changed, 202 insertions, 536 deletions
diff --git a/sot/inc/absdev.hxx b/sot/inc/sot/absdev.hxx index 3d251d98e0b6..3d251d98e0b6 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 2f8cc7587458..2f8cc7587458 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/sot/factory.hxx b/sot/inc/sot/factory.hxx index 08dd21a88aa5..7b7feb0e9ebe 100644 --- a/sot/inc/sot/factory.hxx +++ b/sot/inc/sot/factory.hxx @@ -73,7 +73,6 @@ public: void PutSuperClass( const SotFactory * ); virtual void * CreateInstance( SotObject ** ppObj = NULL ) const; void * CastAndAddRef( SotObject * ) const; - void * AggCastAndAddRef( SotObject * ) const; BOOL Is( const SotFactory * pSuperClass ) const; const SotFactory * GetSuper( USHORT nPos ) const diff --git a/sot/inc/filelist.hxx b/sot/inc/sot/filelist.hxx index 4c6c55534319..4c6c55534319 100644 --- a/sot/inc/filelist.hxx +++ b/sot/inc/sot/filelist.hxx diff --git a/sot/inc/sot/object.hxx b/sot/inc/sot/object.hxx index db2ac3b30ffc..563c90d89a54 100644 --- a/sot/inc/sot/object.hxx +++ b/sot/inc/sot/object.hxx @@ -381,22 +381,17 @@ SotFactory * ClassName::pFactory = NULL; \ #pragma warning(disable: 4250) #endif -class SvAggregateMemberList; struct IUnknown; class SOT_DLLPUBLIC SotObject : virtual public SvRefBase { friend class SotFactory; friend class SvObject; - SvAggregateMemberList * pAggList; // fuer Aggregation, erstes ist das MainObj USHORT nStrongLockCount; USHORT nOwnerLockCount; BOOL bOwner:1, bSVObject:1, // Ist Proxy, dann TRUE wenn andere Seite SV ist bInClose:1; // TRUE, im DoClose - void * DownAggCast( const SotFactory * pFact ); - void RemoveInterface( ULONG ); - void RemoveInterface( SotObject * ); #if defined (GCC) && (defined (C281) || defined (C290) || defined (C291)) public: #else @@ -414,25 +409,10 @@ public: virtual IUnknown * GetInterface( const SvGlobalName & ); BOOL Owner() const { return bOwner; } - BOOL IsSvObject() const; - - // Methoden fuer die Aggregation (siehe OLE2-Spec) - BOOL ShouldDelete(); - virtual void QueryDelete(); - SvAggregateMemberList & GetAggList(); - void AddInterface( SotObject * ); - void AddInterface( SotFactory * ); - virtual SotObjectRef CreateAggObj( const SotFactory * ); - void * AggCast( const SotFactory * pFact ); - void * CastAndAddRef( const SotFactory * pFact ); - SotObject * GetMainObj() const; - - // !!! Read the Manual !!! - virtual USHORT FuzzyLock( BOOL bLock, BOOL bIntern, BOOL bClose ); - void Lock( BOOL bLock ) - { - FuzzyLock( bLock, TRUE, TRUE ); - } + + void* CastAndAddRef( const SotFactory * pFact ); + + USHORT Lock( BOOL bLock ); // affects nStrongLockCount USHORT GetOwnerLockCount() const { return nOwnerLockCount; } USHORT GetStrongLockCount() const { return nStrongLockCount; } @@ -450,18 +430,6 @@ private: //==================class SotObjectRef====================================== SV_IMPL_REF(SotObject) -inline SotObjectRef::SotObjectRef( SotObject * pObjP, SvCastEnum ) -{ - if( pObjP ) - { - pObj = (SotObject *)pObjP->AggCast( SotObject::ClassFactory() ); - if( pObj ) - pObj->AddRef(); - } - else - pObj = NULL; -} - //==================class SotObject*List==================================== SV_DECL_REF_LIST(SotObject,SotObject*) SV_IMPL_REF_LIST(SotObject,SotObject*) diff --git a/sot/inc/sot/sotref.hxx b/sot/inc/sot/sotref.hxx index ae03032e286e..a6728627ef2c 100644 --- a/sot/inc/sot/sotref.hxx +++ b/sot/inc/sot/sotref.hxx @@ -33,14 +33,12 @@ #endif //======================================================================== -enum SvCastEnum { SV_AGGREGATION_CAST }; #ifndef SVT_DECL_SOTOBJECT_DEFINED #define SVT_DECL_SOTOBJECT_DEFINED class SotObject; class SotObjectRef { PRV_SV_DECL_REF(SotObject) - inline SotObjectRef( SotObject * pObjP, SvCastEnum ); }; #endif @@ -52,7 +50,6 @@ class ClassName##Ref \ PRV_SV_DECL_REF(ClassName) \ inline ClassName##Ref( const SotObjectRef & ); \ inline ClassName##Ref( SotObject * pObjP ); \ - inline ClassName##Ref( SotObject * pObjP, SvCastEnum ); \ }; #define SO2_IMPL_REF(ClassName) \ @@ -64,12 +61,9 @@ inline ClassName##Ref::ClassName##Ref( const SotObjectRef & r ) \ inline ClassName##Ref::ClassName##Ref( SotObject * pObjP ) \ { \ pObj = (ClassName *)ClassName::ClassFactory()->CastAndAddRef( pObjP );\ -} \ -inline ClassName##Ref::ClassName##Ref( SotObject * pObjP, SvCastEnum ) \ -{ \ - pObj = (ClassName *)ClassName::ClassFactory()->AggCastAndAddRef( pObjP );\ } + #define SO2_DECL_IMPL_REF(ClassName) \ SO2_DECL_REF(ClassName) \ SO2_IMPL_REF(ClassName) diff --git a/sot/inc/stg.hxx b/sot/inc/sot/stg.hxx index 84373e26d596..84373e26d596 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 dab1f6d4540e..dab1f6d4540e 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 f2696155fd97..9d6e785898a5 100644 --- a/sot/prj/build.lst +++ b/sot/prj/build.lst @@ -1,8 +1,10 @@ -to sot : 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 -to sot\source\base nmake - all sot_base sot_inc NULL -to sot\source\sdstor nmake - all sot_sdst sot_inc NULL -to sot\source\unoolestorage nmake - all sot_unoolestor sot_inc NULL -to sot\util nmake - all sot_ut sot_base sot_sdst sot_unoolestor 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 +to sot\source\base nmake - all sot_base sot_inc NULL +to sot\source\sdstor nmake - all sot_sdst sot_inc NULL +to sot\source\unoolestorage nmake - all sot_unoolestor sot_inc NULL +to sot\util nmake - all sot_ut sot_base sot_sdst sot_unoolestor NULL + +# to sot\qa\complex\olesimplestorage nmake - all sot_complex sot_ut NULL diff --git a/sot/prj/d.lst b/sot/prj/d.lst index 528b6863ef3c..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% @@ -25,3 +12,4 @@ mkdir: %_DEST%\inc%_EXT%\sot ..\%__SRC%\bin\sot?????.dll %_DEST%\bin%_EXT%\sot?????.dll ..\%__SRC%\bin\sot?????.sym %_DEST%\bin%_EXT%\sot?????.sym ..\%__SRC%\misc\sot?????.map %_DEST%\bin%_EXT%\sot?????.map +..\%__SRC%\misc\sot.component %_DEST%\xml%_EXT%\sot.component diff --git a/sot/qa/complex/olesimplestorage/OLESimpleStorageUnitTest.java b/sot/qa/complex/olesimplestorage/OLESimpleStorageUnitTest.java index 054480d377d1..2824b0fcbffa 100644 --- a/sot/qa/complex/olesimplestorage/OLESimpleStorageUnitTest.java +++ b/sot/qa/complex/olesimplestorage/OLESimpleStorageUnitTest.java @@ -26,42 +26,85 @@ ************************************************************************/ package complex.olesimplestorage; -import complexlib.ComplexTestCase; import com.sun.star.lang.XMultiServiceFactory; import com.sun.star.uno.UnoRuntime; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openoffice.test.OfficeConnection; +import static org.junit.Assert.*; + /* Document. */ -public class OLESimpleStorageUnitTest extends ComplexTestCase { +public class OLESimpleStorageUnitTest /* extends ComplexTestCase */ +{ private XMultiServiceFactory m_xMSF = null; - public String[] getTestMethodNames() { - return new String[] { - "ExecuteTest01"}; - } - - public String getTestObjectName() { - return "OLESimpleStorageUnitTest"; - } +// public String[] getTestMethodNames() { +// return new String[] { +// "ExecuteTest01"}; +// } +// +// public String getTestObjectName() { +// return "OLESimpleStorageUnitTest"; +// } - public void before () { + @Before public void before () { + System.out.println("before()"); try { - m_xMSF = (XMultiServiceFactory)param.getMSF(); + m_xMSF = getMSF(); } catch ( Exception e ){ - failed ( "Cannot create service factory!" ); + fail( "Cannot create service factory!" ); } if ( m_xMSF == null ) { - failed ( "Cannot create service factory!" ); + fail( "Cannot create service factory!" ); } } - public void after () { + @After public void after () { + System.out.println("after()"); m_xMSF = null; } - public void ExecuteTest01() { - OLESimpleStorageTest aTest = new Test01( m_xMSF, log ); - assure( "Test01 failed!", aTest.test() ); + @Test public void ExecuteTest01() { + System.out.println("ExecuteTest01()"); + OLESimpleStorageTest aTest = new Test01( m_xMSF ); + assertTrue( "Test01 failed!", aTest.test() ); } + + + + private XMultiServiceFactory getMSF() + { + final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager()); + return xMSF1; + } + + // setup and close connections + @BeforeClass public static void setUpConnection() throws Exception { + System.out.println("setUpConnection()"); + connection.setUp(); + } + + @AfterClass public static void tearDownConnection() + throws InterruptedException, com.sun.star.uno.Exception + { +// try +// { +// Thread.sleep(5000); +// } +// catch (java.lang.InterruptedException e) +// { +// } + System.out.println("tearDownConnection()"); + connection.tearDown(); + } + + private static final OfficeConnection connection = new OfficeConnection(); + }
\ No newline at end of file diff --git a/sot/qa/complex/olesimplestorage/Test01.java b/sot/qa/complex/olesimplestorage/Test01.java index c9010e61231a..ad32e6e55a6b 100644 --- a/sot/qa/complex/olesimplestorage/Test01.java +++ b/sot/qa/complex/olesimplestorage/Test01.java @@ -1,6 +1,6 @@ package complex.olesimplestorage; -import complexlib.ComplexTestCase; + import com.sun.star.lang.XMultiServiceFactory; import com.sun.star.io.XInputStream; @@ -10,7 +10,7 @@ import com.sun.star.embed.XOLESimpleStorage; import com.sun.star.uno.UnoRuntime; import java.util.Random; -import share.LogWriter; + public class Test01 implements OLESimpleStorageTest { @@ -19,10 +19,10 @@ public class Test01 implements OLESimpleStorageTest final int pStreamCnt = 5; final int pBytesCnt = 10; - public Test01 ( XMultiServiceFactory xMSF, LogWriter aLogWriter ) + public Test01 ( XMultiServiceFactory xMSF ) { m_xMSF = xMSF; - m_aTestHelper = new TestHelper (aLogWriter, "Test01: "); + m_aTestHelper = new TestHelper ("Test01: "); } public boolean test () @@ -31,7 +31,7 @@ public class Test01 implements OLESimpleStorageTest { //create a new temporary stream Object oTempFile = m_xMSF.createInstance ( "com.sun.star.io.TempFile" ); - XTempFile xTempFile = (XTempFile) UnoRuntime.queryInterface ( XTempFile.class, oTempFile ); + XTempFile xTempFile = UnoRuntime.queryInterface(XTempFile.class, oTempFile); m_aTestHelper.Message ( "A new temporary stream created." ); //create OLESimpleStorage based on it @@ -39,7 +39,7 @@ public class Test01 implements OLESimpleStorageTest pArgs[0] = (Object) xTempFile; pArgs[1] = new Boolean( true ); Object oOLESimpleStorage = m_xMSF.createInstanceWithArguments ( "com.sun.star.embed.OLESimpleStorage", pArgs ); - XOLESimpleStorage xOLESimpleStorage = (XOLESimpleStorage) UnoRuntime.queryInterface ( XOLESimpleStorage.class, oOLESimpleStorage ); + XOLESimpleStorage xOLESimpleStorage = UnoRuntime.queryInterface(XOLESimpleStorage.class, oOLESimpleStorage); m_aTestHelper.Message ( "OLESimpleStorage based on XStream created." ); //fill it with some streams @@ -53,7 +53,7 @@ public class Test01 implements OLESimpleStorageTest { oRandom.nextBytes (pBytesOut[i]); oStream[i] = m_xMSF.createInstance ( "com.sun.star.io.TempFile" ); - xTempStream[i] = (XTempFile) UnoRuntime.queryInterface ( XTempFile.class, oStream[i] ); + xTempStream[i] = UnoRuntime.queryInterface(XTempFile.class, oStream[i]); xTempStream[i].getOutputStream ().writeBytes (pBytesOut[i]); xTempStream[i].seek (0); m_aTestHelper.Message ( "Substream " + i + " initialized." ); @@ -83,7 +83,7 @@ public class Test01 implements OLESimpleStorageTest //open the same stream with the constructor for inputstream pArgs[0] = (Object)xTempFile.getInputStream (); oOLESimpleStorage = m_xMSF.createInstanceWithArguments ( "com.sun.star.embed.OLESimpleStorage", pArgs ); - xOLESimpleStorage = (XOLESimpleStorage)UnoRuntime.queryInterface ( XOLESimpleStorage.class, oOLESimpleStorage ); + xOLESimpleStorage = UnoRuntime.queryInterface(XOLESimpleStorage.class, oOLESimpleStorage); m_aTestHelper.Message ( "Storage reopened, based on XInputStream." ); //check that all the streams contain correct information @@ -92,8 +92,7 @@ public class Test01 implements OLESimpleStorageTest { if ( xOLESimpleStorage.hasByName (sSubStreamPrefix + i) ) { - xTempStream[i] = (XTempFile)UnoRuntime.queryInterface ( - XTempFile.class, xOLESimpleStorage.getByName (sSubStreamPrefix + i) ); + xTempStream[i] = UnoRuntime.queryInterface(XTempFile.class, xOLESimpleStorage.getByName(sSubStreamPrefix + i)); xTempStream[i].seek (0); xTempStream[i].getInputStream ().readBytes (pBytesIn[i], pBytesIn[i][0].length + 1 ); for ( int j = 0; j < pBytesCnt; ++j ) @@ -120,6 +119,7 @@ public class Test01 implements OLESimpleStorageTest catch ( Exception e ) { m_aTestHelper.Error ( "Exception: " + e ); + return false; } return true; } diff --git a/sot/qa/complex/olesimplestorage/TestHelper.java b/sot/qa/complex/olesimplestorage/TestHelper.java index 4b29ed15e393..e9e14f8d68c0 100644 --- a/sot/qa/complex/olesimplestorage/TestHelper.java +++ b/sot/qa/complex/olesimplestorage/TestHelper.java @@ -1,26 +1,27 @@ package complex.olesimplestorage; -import share.LogWriter; public class TestHelper { - LogWriter m_aLogWriter; + String m_sTestPrefix; - /** Creates a new instance of TestHelper */ - public TestHelper ( LogWriter aLogWriter, String sTestPrefix ) + /** Creates a new instance of TestHelper + * @param sTestPrefix + */ + public TestHelper ( String sTestPrefix ) { - m_aLogWriter = aLogWriter; + m_sTestPrefix = sTestPrefix; } public void Error ( String sError ) { - m_aLogWriter.println ( m_sTestPrefix + "Error: " + sError ); + System.out.println ( m_sTestPrefix + "Error: " + sError ); } public void Message ( String sMessage ) { - m_aLogWriter.println ( m_sTestPrefix + sMessage ); + System.out.println ( m_sTestPrefix + sMessage ); } } diff --git a/sot/qa/complex/olesimplestorage/makefile.mk b/sot/qa/complex/olesimplestorage/makefile.mk index 3420d798c9bc..cf3facf94d66 100644 --- a/sot/qa/complex/olesimplestorage/makefile.mk +++ b/sot/qa/complex/olesimplestorage/makefile.mk @@ -25,60 +25,38 @@ # #************************************************************************* -PRJ = ..$/..$/.. -TARGET = OLESimpleStorageUnitTest -PRJNAME = sot -PACKAGE = complex$/olesimplestorage - -# --- Settings ----------------------------------------------------- -.INCLUDE: settings.mk - - -#----- compile .java files ----------------------------------------- - -JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar - -JAVAFILES =\ - OLESimpleStorageUnitTest.java\ - OLESimpleStorageTest.java\ - TestHelper.java\ - Test01.java - -JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class) - -#----- make a jar from compiled files ------------------------------ +.IF "$(OOO_SUBSEQUENT_TESTS)" == "" +nothing .PHONY: +.ELSE -MAXLINELENGTH = 100000 +PRJ = ../../.. +PRJNAME = sot +TARGET = qa_complex_olesimplestorage -JARCLASSDIRS = $(PACKAGE) -JARTARGET = $(TARGET).jar -JARCOMPRESS = TRUE +.IF "$(OOO_JUNIT_JAR)" != "" +PACKAGE = complex/olesimplestorage +JAVATESTFILES = \ + OLESimpleStorageUnitTest.java -# --- Parameters for the test -------------------------------------- +JAVAFILES = $(JAVATESTFILES) \ + OLESimpleStorageTest.java \ + Test01.java \ + TestHelper.java -# 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 +JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar jurt.jar +EXTRAJARFILES = $(OOO_JUNIT_JAR) +.END -# test base is java complex -CT_TESTBASE = -TestBase java_complex +.INCLUDE: settings.mk +.INCLUDE: target.mk +.INCLUDE: installationtest.mk -# test looks something like the.full.package.TestName -CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b) +ALLTAR : javatest -# start the runner application -CT_APP = org.openoffice.Runner +.END -# --- Targets ------------------------------------------------------ -.INCLUDE: target.mk -RUN: run -run: - +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST) diff --git a/sot/source/base/exchange.cxx b/sot/source/base/exchange.cxx index 67c2b64f105f..d860c8b0f572 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 4934f99e78c6..3c034a980578 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> @@ -344,45 +344,6 @@ void * SotFactory::CastAndAddRef return pObj ? pObj->CastAndAddRef( this ) : NULL; } -//========================================================================= -void * SotFactory::AggCastAndAddRef -( - SotObject * pObj /* Das Objekt von dem der Typ gepr"uft wird. */ -) const -/* [Beschreibung] - - Ist eine Optimierung, damit die Ref-Klassen k"urzer implementiert - werden k"onnen. pObj wird auf den Typ der Factory gecastet. - In c++ (wenn es immer erlaubt w"are) w"urde der void * wie im - Beispiel gebildet. - Factory der Klasse SvPersist. - void * p = (void *)(SvPersist *)pObj; - Hinzu kommt noch, dass ein Objekt aus meheren c++ Objekten - zusammengesetzt sein kann. Diese Methode sucht nach einem - passenden Objekt. - - [R"uckgabewert] - - void *, NULL, pObj war NULL oder das Objekt war nicht vom Typ - der Factory. - Ansonsten wird pObj zuerst auf den Typ der Factory - gecastet und dann auf void *. - - [Querverweise] - - <SvObject::AggCast> -*/ -{ - void * pRet = NULL; - if( pObj ) - { - pRet = pObj->AggCast( this ); - if( pRet ) - pObj->AddRef(); - } - return pRet; -} - /************************************************************************* |* SotFactory::Is() |* diff --git a/sot/source/base/filelist.cxx b/sot/source/base/filelist.cxx index 4f854add304d..048f19e65bd7 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 baddde6e716f..58b08fb53f18 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 403a1c6bb61d..70792a325d31 100644 --- a/sot/source/base/object.cxx +++ b/sot/source/base/object.cxx @@ -33,11 +33,7 @@ #include <tools/debug.hxx> #include <sot/object.hxx> #include <sot/factory.hxx> -#include <agg.hxx> - -/************** class SvAggregateMemberList *****************************/ -/************************************************************************/ -PRV_SV_IMPL_OWNER_LIST(SvAggregateMemberList,SvAggregate); +#include <sot/agg.hxx> /************** class SotObject ******************************************/ class SotObjectFactory : public SotFactory @@ -84,8 +80,7 @@ void SotObject::TestMemberInvariant( BOOL /*bPrint*/ ) |* Beschreibung *************************************************************************/ SotObject::SotObject() - : pAggList ( NULL ) - , nStrongLockCount( 0 ) + : nStrongLockCount( 0 ) , nOwnerLockCount( 0 ) , bOwner ( TRUE ) , bSVObject ( FALSE ) @@ -119,246 +114,11 @@ IUnknown * SotObject::GetInterface( const SvGlobalName & ) } /************************************************************************* -|* SotObject::IsSvClass() -|* -|* Beschreibung -*************************************************************************/ -BOOL SotObject::IsSvObject() const -{ - return Owner() || bSVObject; -} - -/************************************************************************* -|* SotObject::QueryDelete() -|* -|* Beschreibung: Bei allen aggregierten Objekte muss der RefCount auf -|* 0 gehen, damit das Gesammt-Objekt zerstoert wird. Das -|* zerst�ren von Teilen ist verboten. Da der Aggregator -|* (oder Cast-Verwalter) den Zaehler der aggregierten -|* Objekte um 1 erhoeht, muss dies bei der Berechnung -|* des 0-RefCounts beruecksichtigt werden. -*************************************************************************/ -BOOL SotObject::ShouldDelete() -{ - if( !pAggList ) - return TRUE; - - SvAggregate & rMO = pAggList->GetObject( 0 ); - if( rMO.bMainObj ) - { - AddRef(); - pAggList->GetObject( 0 ).pObj->ReleaseRef(); - return FALSE; - } - - ULONG i; - for( i = 1; i < pAggList->Count(); i++ ) - { - SvAggregate & rAgg = pAggList->GetObject( i ); - // Groesser 1, wegen AddRef() bei AddInterface - if( !rAgg.bFactory && rAgg.pObj->GetRefCount() > 1 ) - { - // den eigenen hochzaehelen - AddRef(); - // einen Aggregierten runterzaehlen - rAgg.pObj->ReleaseRef(); - return FALSE; - } - } - AddNextRef(); // rekursion stoppen - for( i = pAggList->Count() -1; i > 0; i-- ) - { - // Referenzen aufloesen - DBG_ASSERT( !pAggList->GetObject( i ).bMainObj, "main object reference is opened" ); - RemoveInterface( i ); - } - delete pAggList; - pAggList = NULL; - // und zerstoeren, dies ist unabhaengig vom RefCount - return TRUE; -} - -/************************************************************************* -|* SotObject::QueryDelete() -|* -|* Beschreibung -*************************************************************************/ -void SotObject::QueryDelete() -{ - if( ShouldDelete() ) - SvRefBase::QueryDelete(); -} - - - -/************************************************************************* -|* SotObject::GetAggList() -|* -|* Beschreibung -*************************************************************************/ -SvAggregateMemberList & SotObject::GetAggList() -{ - if( !pAggList ) - { - pAggList = new SvAggregateMemberList( 2, 1 ); - pAggList->Append( SvAggregate() ); - } - return *pAggList; -} - - -/************************************************************************* -|* SotObject::RemoveInterface() -|* -|* Beschreibung -*************************************************************************/ -void SotObject::RemoveInterface( ULONG nPos ) -{ - SvAggregate & rAgg = pAggList->GetObject( nPos ); - if( !rAgg.bFactory ) - { - DBG_ASSERT( rAgg.pObj->pAggList, "no aggregation list" ); - DBG_ASSERT( rAgg.pObj->pAggList->GetObject( 0 ).pObj == this, - "not owner of aggregated object" ); - // sich selbst als Cast-Verwalter austragen - rAgg.pObj->pAggList->GetObject( 0 ) = SvAggregate(); - // Referenz aufloesen - rAgg.pObj->ReleaseRef(); - // Aus der eigenen List austragen - pAggList->Remove( nPos ); - } -} - -/************************************************************************* -|* SotObject::RemoveInterface() -|* -|* Beschreibung -*************************************************************************/ -void SotObject::RemoveInterface( SotObject * pObjP ) -{ - DBG_ASSERT( pObjP, "null pointer" ); - DBG_ASSERT( pAggList, "no aggregation list" ); - ULONG i; - for( i = 0; i < pAggList->Count(); i++ ) - { - SvAggregate & rAgg = pAggList->GetObject( i ); - if( !rAgg.bFactory && pObjP == rAgg.pObj ) - RemoveInterface( i ); - } - DBG_ASSERT( i < pAggList->Count(), "object not found" ); -} - -/************************************************************************* -|* SotObject::AddInterface() -|* -|* Beschreibung -*************************************************************************/ -void SotObject::AddInterface( SotObject * pObjP ) -{ - pObjP->AddRef(); // Objekt festhalten - GetAggList(); - pAggList->Append( SvAggregate( pObjP, FALSE ) ); - - // sich selbst als Typecast-Verwalter eintragen - SvAggregateMemberList & rAList = pObjP->GetAggList(); - DBG_ASSERT( !rAList.GetObject( 0 ).bMainObj, "try to aggregate twice" ); - rAList[ 0 ] = SvAggregate( this, TRUE ); -} - -/************************************************************************* -|* SotObject::AddInterface() -|* -|* Beschreibung -*************************************************************************/ -void SotObject::AddInterface( SotFactory * pFactP ) -{ - GetAggList(); - pAggList->Append( SvAggregate( pFactP ) ); -} - -/************************************************************************* -|* SotObject::CreateAggObj() -|* -|* Beschreibung -*************************************************************************/ -SotObjectRef SotObject::CreateAggObj( const SotFactory * ) -{ - return SotObjectRef(); -} - - -/************************************************************************* -|* SotObject::DownAggCast() -|* -|* Beschreibung -*************************************************************************/ -void * SotObject::DownAggCast( const SotFactory * pFact ) -{ - void * pCast = NULL; - // geht den Pfad nur Richtung aggregierte Objekte - if( pAggList ) - { - for( ULONG i = 1; !pCast || i < pAggList->Count(); i++ ) - { - SvAggregate & rAgg = pAggList->GetObject( i ); - if( rAgg.bFactory ) - { - if( rAgg.pFact->Is( pFact ) ) - { - // On-Demand erzeugen, wenn Typ gebraucht - SotObjectRef aObj( CreateAggObj( rAgg.pFact ) ); - rAgg.bFactory = FALSE; - rAgg.pObj = aObj; - rAgg.pObj->AddRef(); - - // sich selbst als Typecast-Verwalter eintragen - SvAggregateMemberList & rAList = rAgg.pObj->GetAggList(); - DBG_ASSERT( !rAList.GetObject( 0 ).bMainObj, "try to aggregate twice" ); - rAList[ 0 ] = SvAggregate( this, TRUE ); - } - } - if( !rAgg.bFactory ) - { - // muss der (void *) auf Klasse pFact sein - pCast = rAgg.pObj->Cast( pFact ); - if( !pCast ) - pCast = rAgg.pObj->DownAggCast( pFact ); - if( pCast ) - break; - } - } - } - return pCast; -} - -/************************************************************************* -|* SotObject::AggCast() -|* -|* Beschreibung -*************************************************************************/ -void * SotObject::AggCast( const SotFactory * pFact ) -{ - void * pCast = NULL; - if( pAggList ) - { - SvAggregate & rAgg = pAggList->GetObject( 0 ); - if( rAgg.bMainObj ) - return rAgg.pObj->AggCast( pFact ); - pCast = Cast( pFact ); - if( !pCast ) - pCast = DownAggCast( pFact ); - } - else - pCast = Cast( pFact ); - return pCast; -} - -/************************************************************************* |* SotObject::CastAndAddRef() |* |* Beschreibung *************************************************************************/ -void * SotObject::CastAndAddRef( const SotFactory * pFact ) +void* SotObject::CastAndAddRef( const SotFactory * pFact ) { void * pCast = Cast( pFact ); if( pCast ) @@ -366,49 +126,8 @@ void * SotObject::CastAndAddRef( const SotFactory * pFact ) return pCast; } -/************************************************************************* -|* SotObject::GetMainObj() -|* -|* Beschreibung -*************************************************************************/ -SotObject * SotObject::GetMainObj() const -{ - if( pAggList ) - { - if( pAggList->GetObject( 0 ).bMainObj ) - return pAggList->GetObject( 0 ).pObj->GetMainObj(); - } - return (SotObject *)this; -} - //========================================================================= -USHORT SotObject::FuzzyLock -( - BOOL bLock, /* TRUE, lock. FALSE, unlock. */ - BOOL /*bIntern*/, /* TRUE, es handelt sich um einen internen Lock. - FALSE, der Lock kam von aussen (Ole2, Ipc2) */ - BOOL bClose /* TRUE, Close aufrufen wenn letzte Lock */ -) -/* [Beschreibung] - - Erlaubte Parameterkombinationen: - ( TRUE, TRUE, * ) -> interner Lock. - ( FALSE, TRUE, TRUE ) -> interner Unlock mit Close, - wenn LockCount() == 0 - ( TRUE, FALSE, * ) -> externer Lock. - ( FALSE, FALSE, TRUE ) -> externer Unlock mit Close, - wenn LockCount() == 0 - ( FALSE, FALSE, FALSE ) -> externer Unlock - - F"ur !Owner() wird der Aufruf an das externe Objekt weitergeleitet. - F"ur diese muss das <IOleItemContainer>-Interface zur Vef"ugung stehen. - bIntern und bClose werden dann ignoriert. - Wenn der LockCount auf 0 wechselt, wird <SotObject::DoClose> - gerufen, wenn kein OwnerLock besteht. - - [Anmerkung] - -*/ +USHORT SotObject::Lock( BOOL bLock ) { SotObjectRef xHoldAlive( this ); USHORT nRet; @@ -423,8 +142,9 @@ USHORT SotObject::FuzzyLock ReleaseRef(); } - if( !nRet && bClose && !nOwnerLockCount ) + if( !nRet && !nOwnerLockCount ) DoClose(); + return nRet; } diff --git a/sot/source/sdstor/stg.cxx b/sot/source/sdstor/stg.cxx index 1c749aa05cb8..c057b2d0aac0 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 88a8187ee9dd..f4461383c0ba 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 f093dc60cbe7..8c553d0f8a32 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 @@ BOOL StgDirStrm::Store() void* StgDirStrm::GetEntry( INT32 n, BOOL bDirty ) { + if( n < 0 ) + return NULL; + n *= STGENTRY_SIZE; - if( n >= nSize ) + if( n < 0 && n >= nSize ) return NULL; return GetPtr( n, TRUE, bDirty ); } diff --git a/sot/source/sdstor/stgelem.cxx b/sot/source/sdstor/stgelem.cxx index 46d7f1803140..b140c7fb27e2 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 7a5b7bc52b26..951d3503adbc 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 2c18429b9d64..723dea4d4b00 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" @@ -159,6 +159,7 @@ class EasyFat public: EasyFat( StgIo & rIo, StgStrm *pFatStream, INT32 nPSize ); ~EasyFat() { delete[] pFat; delete[] pFree; } + INT32 GetPageSize() { return nPageSize; } INT32 Count() { return nPages; } INT32 operator[]( INT32 nOffset ) { return pFat[ nOffset ]; } diff --git a/sot/source/sdstor/stgole.cxx b/sot/source/sdstor/stgole.cxx index 148f1e87585c..0bb5887eed76 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 346f21035f06..a9eebe1aae68 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 07711133bf4b..840f2cf2bba8 100644 --- a/sot/source/sdstor/stgstrms.cxx +++ b/sot/source/sdstor/stgstrms.cxx @@ -34,20 +34,14 @@ #include <tools/tempfile.hxx> #include <tools/debug.hxx> -#include "stg.hxx" +#include "sot/stg.hxx" #include "stgelem.hxx" #include "stgcache.hxx" #include "stgstrms.hxx" #include "stgdir.hxx" #include "stgio.hxx" -#if defined(W31) - #include <tools/svwin.h> - #define memcpy hmemcpy - #define __HUGE _huge -#else - #define __HUGE -#endif +#define __HUGE ///////////////////////////// class StgFAT /////////////////////////////// diff --git a/sot/source/sdstor/storage.cxx b/sot/source/sdstor/storage.cxx index 136abb29a98e..e09c5fc864fc 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 2aaaadd5a151..f912dc6fc83f 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 ea3b656272db..4f265490a05e 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 55c205557648..6224925c1820 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/register.cxx b/sot/source/unoolestorage/register.cxx index 00326333546d..083a4d585ca1 100644 --- a/sot/source/unoolestorage/register.cxx +++ b/sot/source/unoolestorage/register.cxx @@ -69,33 +69,5 @@ SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImp return pRet; } -SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey ) -{ - if (pRegistryKey) - { - try - { - uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) ); - - uno::Reference< registry::XRegistryKey > xNewKey; - - xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + - OLESimpleStorage::impl_staticGetImplementationName() + - ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) ); - - const uno::Sequence< ::rtl::OUString > &rServices = OLESimpleStorage::impl_staticGetSupportedServiceNames(); - for( sal_Int32 ind = 0; ind < rServices.getLength(); ind++ ) - xNewKey->createKey( rServices.getConstArray()[ind] ); - - return sal_True; - } - catch (registry::InvalidRegistryException &) - { - OSL_ENSURE( sal_False, "### InvalidRegistryException!" ); - } - } - return sal_False; -} - } // extern "C" 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 60b34c356217..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 @@ -79,3 +79,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk @echo Making: $@ $(TYPE) sot.flt > $@ + +ALLTAR : $(MISC)/sot.component + +$(MISC)/sot.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \ + sot.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt sot.component diff --git a/sot/util/sot.component b/sot/util/sot.component new file mode 100644 index 000000000000..7d17c7d54475 --- /dev/null +++ b/sot/util/sot.component @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> + +<component loader="com.sun.star.loader.SharedLibrary" + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="com.sun.star.comp.embed.OLESimpleStorage"> + <service name="com.sun.star.embed.OLESimpleStorage"/> + </implementation> +</component> |