summaryrefslogtreecommitdiffstats
path: root/dtrans/source/cnttype
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /dtrans/source/cnttype
parentInitial commit. (diff)
downloadlibreoffice-upstream.tar.xz
libreoffice-upstream.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dtrans/source/cnttype')
-rw-r--r--dtrans/source/cnttype/mcnttfactory.cxx68
-rw-r--r--dtrans/source/cnttype/mcnttfactory.hxx55
-rw-r--r--dtrans/source/cnttype/mcnttype.cxx92
-rw-r--r--dtrans/source/cnttype/mcnttype.hxx61
-rw-r--r--dtrans/source/cnttype/mctfentry.cxx78
-rw-r--r--dtrans/source/cnttype/wbench/makefile.mk44
-rw-r--r--dtrans/source/cnttype/wbench/testcnttype.cxx186
7 files changed, 584 insertions, 0 deletions
diff --git a/dtrans/source/cnttype/mcnttfactory.cxx b/dtrans/source/cnttype/mcnttfactory.cxx
new file mode 100644
index 000000000..49db62746
--- /dev/null
+++ b/dtrans/source/cnttype/mcnttfactory.cxx
@@ -0,0 +1,68 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <cppuhelper/supportsservice.hxx>
+#include "mcnttfactory.hxx"
+#include "mcnttype.hxx"
+
+#define MIMECONTENTTYPEFACTORY_IMPL_NAME "com.sun.star.datatransfer.MimeCntTypeFactory"
+
+using namespace ::osl;
+using namespace ::cppu;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::datatransfer;
+
+namespace
+{
+ Sequence< OUString > MimeContentTypeFactory_getSupportedServiceNames( )
+ {
+ Sequence< OUString > aRet { "com.sun.star.datatransfer.MimeContentTypeFactory" };
+ return aRet;
+ }
+}
+
+CMimeContentTypeFactory::CMimeContentTypeFactory()
+{
+}
+
+Reference< XMimeContentType > CMimeContentTypeFactory::createMimeContentType( const OUString& aContentType )
+{
+ MutexGuard aGuard( m_aMutex );
+ return Reference< XMimeContentType >( new CMimeContentType( aContentType ) );
+}
+
+// XServiceInfo
+
+OUString SAL_CALL CMimeContentTypeFactory::getImplementationName( )
+{
+ return MIMECONTENTTYPEFACTORY_IMPL_NAME;
+}
+
+sal_Bool SAL_CALL CMimeContentTypeFactory::supportsService( const OUString& ServiceName )
+{
+ return cppu::supportsService(this, ServiceName);
+}
+
+Sequence< OUString > SAL_CALL CMimeContentTypeFactory::getSupportedServiceNames( )
+{
+ return MimeContentTypeFactory_getSupportedServiceNames( );
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dtrans/source/cnttype/mcnttfactory.hxx b/dtrans/source/cnttype/mcnttfactory.hxx
new file mode 100644
index 000000000..d79cd6063
--- /dev/null
+++ b/dtrans/source/cnttype/mcnttfactory.hxx
@@ -0,0 +1,55 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_DTRANS_SOURCE_CNTTYPE_MCNTTFACTORY_HXX
+#define INCLUDED_DTRANS_SOURCE_CNTTYPE_MCNTTFACTORY_HXX
+
+#include <rtl/ustring.hxx>
+#include <sal/types.h>
+#include <cppuhelper/implbase.hxx>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/datatransfer/XMimeContentTypeFactory.hpp>
+
+class CMimeContentTypeFactory : public
+ cppu::WeakImplHelper< css::datatransfer::XMimeContentTypeFactory,
+ css::lang::XServiceInfo >
+{
+
+public:
+ CMimeContentTypeFactory();
+
+ // XMimeContentTypeFactory
+
+ virtual css::uno::Reference< css::datatransfer::XMimeContentType > SAL_CALL createMimeContentType( const OUString& aContentType ) override;
+
+ // XServiceInfo
+
+ virtual OUString SAL_CALL getImplementationName( ) override;
+
+ virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
+
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
+
+private:
+ ::osl::Mutex m_aMutex;
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dtrans/source/cnttype/mcnttype.cxx b/dtrans/source/cnttype/mcnttype.cxx
new file mode 100644
index 000000000..8b35abb23
--- /dev/null
+++ b/dtrans/source/cnttype/mcnttype.cxx
@@ -0,0 +1,92 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <sal/config.h>
+
+#include <com/sun/star/container/NoSuchElementException.hpp>
+#include <comphelper/sequence.hxx>
+#include <rtl/ustring.hxx>
+#include <tools/inetmime.hxx>
+
+#include "mcnttype.hxx"
+
+using namespace com::sun::star::uno;
+using namespace com::sun::star::container;
+using namespace std;
+
+CMimeContentType::CMimeContentType( const OUString& aCntType )
+{
+ init( aCntType );
+}
+
+OUString SAL_CALL CMimeContentType::getMediaType( )
+{
+ return m_MediaType;
+}
+
+OUString SAL_CALL CMimeContentType::getMediaSubtype( )
+{
+ return m_MediaSubtype;
+}
+
+OUString SAL_CALL CMimeContentType::getFullMediaType( )
+{
+ return m_MediaType + "/" + m_MediaSubtype;
+}
+
+Sequence< OUString > SAL_CALL CMimeContentType::getParameters( )
+{
+ return comphelper::mapKeysToSequence(m_ParameterMap);
+}
+
+sal_Bool SAL_CALL CMimeContentType::hasParameter( const OUString& aName )
+{
+ return ( m_ParameterMap.end( ) != m_ParameterMap.find( aName.toAsciiLowerCase() ) );
+}
+
+OUString SAL_CALL CMimeContentType::getParameterValue( const OUString& aName )
+{
+ auto const lower = aName.toAsciiLowerCase();
+
+ if ( !hasParameter( lower ) )
+ throw NoSuchElementException( );
+
+ return m_ParameterMap.find( lower )->second;
+}
+
+void CMimeContentType::init( const OUString& aCntType )
+{
+ INetContentTypeParameterList params;
+ if (INetMIME::scanContentType(aCntType, &m_MediaType, &m_MediaSubtype, &params)
+ != aCntType.getStr() + aCntType.getLength())
+ {
+ throw css::lang::IllegalArgumentException(
+ "illegal media type " + aCntType, css::uno::Reference<css::uno::XInterface>(), -1);
+ }
+ for (auto const & i: params) {
+ if (!i.second.m_bConverted) {
+ throw css::lang::IllegalArgumentException(
+ "illegal parameter value in media type " + aCntType,
+ css::uno::Reference<css::uno::XInterface>(), -1);
+ }
+ m_ParameterMap[OUString::fromUtf8(i.first)] = i.second.m_sValue;
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dtrans/source/cnttype/mcnttype.hxx b/dtrans/source/cnttype/mcnttype.hxx
new file mode 100644
index 000000000..6b2dd4c8e
--- /dev/null
+++ b/dtrans/source/cnttype/mcnttype.hxx
@@ -0,0 +1,61 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_DTRANS_SOURCE_CNTTYPE_MCNTTYPE_HXX
+#define INCLUDED_DTRANS_SOURCE_CNTTYPE_MCNTTYPE_HXX
+
+#include <cppuhelper/implbase.hxx>
+#include <rtl/ustring.hxx>
+#include <sal/types.h>
+#include <com/sun/star/lang/IllegalArgumentException.hpp>
+#include <com/sun/star/datatransfer/XMimeContentType.hpp>
+
+#include <map>
+
+class CMimeContentType : public
+ cppu::WeakImplHelper< css::datatransfer::XMimeContentType >
+{
+public:
+ explicit CMimeContentType(const OUString& rCntType);
+
+ // XMimeContentType
+
+ virtual OUString SAL_CALL getMediaType( ) override;
+ virtual OUString SAL_CALL getMediaSubtype( ) override;
+ virtual OUString SAL_CALL getFullMediaType( ) override;
+
+ virtual css::uno::Sequence< OUString > SAL_CALL getParameters( ) override;
+
+ virtual sal_Bool SAL_CALL hasParameter( const OUString& aName ) override;
+
+ virtual OUString SAL_CALL getParameterValue( const OUString& aName ) override;
+
+private:
+ /// @throws css::lang::IllegalArgumentException
+ void init( const OUString& aCntType );
+
+private:
+ OUString m_MediaType;
+ OUString m_MediaSubtype;
+ std::map< OUString, OUString > m_ParameterMap;
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dtrans/source/cnttype/mctfentry.cxx b/dtrans/source/cnttype/mctfentry.cxx
new file mode 100644
index 000000000..43d165876
--- /dev/null
+++ b/dtrans/source/cnttype/mctfentry.cxx
@@ -0,0 +1,78 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <cppuhelper/factory.hxx>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <com/sun/star/container/XSet.hpp>
+#include <com/sun/star/datatransfer/XMimeContentTypeFactory.hpp>
+#include "mcnttfactory.hxx"
+
+#define MIMECONTENTTYPEFACTORY_IMPL_NAME "com.sun.star.datatransfer.MimeCntTypeFactory"
+
+using namespace ::cppu;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::registry;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::datatransfer;
+
+namespace
+{
+
+ // functions to create a new Clipboard instance; is needed by factory helper implementation
+ // @param rServiceManager - service manager, useful if the component needs other uno services
+ // so we should give it to every UNO-Implementation component
+
+ Reference< XInterface > createInstance( const Reference< XMultiServiceFactory >& )
+ {
+ return Reference< XInterface >( static_cast< XMimeContentTypeFactory* >( new CMimeContentTypeFactory() ) );
+ }
+}
+
+extern "C"
+{
+
+// component_getFactory
+// returns a factory to create XFilePicker-Services
+
+SAL_DLLPUBLIC_EXPORT void* mcnttype_component_getFactory( const char* pImplName, void* pSrvManager, void* /*pRegistryKey*/ )
+{
+ void* pRet = nullptr;
+
+ if ( pSrvManager && ( 0 == rtl_str_compare( pImplName, MIMECONTENTTYPEFACTORY_IMPL_NAME ) ) )
+ {
+ Sequence<OUString> aSNS { "com.sun.star.datatransfer.MimeContentTypeFactory" };
+
+ Reference< XSingleServiceFactory > xFactory ( createSingleFactory(
+ static_cast< XMultiServiceFactory* > ( pSrvManager ),
+ OUString::createFromAscii( pImplName ),
+ createInstance,
+ aSNS ) );
+ if ( xFactory.is() )
+ {
+ xFactory->acquire();
+ pRet = xFactory.get();
+ }
+ }
+
+ return pRet;
+}
+
+} // extern "C"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dtrans/source/cnttype/wbench/makefile.mk b/dtrans/source/cnttype/wbench/makefile.mk
new file mode 100644
index 000000000..ad1e635eb
--- /dev/null
+++ b/dtrans/source/cnttype/wbench/makefile.mk
@@ -0,0 +1,44 @@
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you under the Apache
+# License, Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.apache.org/licenses/LICENSE-2.0 .
+#
+
+PRJ=..$/..$/..
+
+PRJNAME=dtrans
+TARGET=testcnttype
+LIBTARGET=NO
+TARGETTYPE=CUI
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+CFLAGS+=-GX
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= $(OBJ)$/testcnttype.obj
+APP1TARGET= $(TARGET)
+APP1OBJS= $(OBJ)$/testcnttype.obj
+
+APP1STDLIBS= $(SALLIB) \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB) \
+
+# --- Targets ------------------------------------------------------
+.INCLUDE : target.mk
+
diff --git a/dtrans/source/cnttype/wbench/testcnttype.cxx b/dtrans/source/cnttype/wbench/testcnttype.cxx
new file mode 100644
index 000000000..a148348ff
--- /dev/null
+++ b/dtrans/source/cnttype/wbench/testcnttype.cxx
@@ -0,0 +1,186 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <cppuhelper/servicefactory.hxx>
+#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <com/sun/star/lang/IllegalArgumentException.hpp>
+#include <com/sun/star/container/NoSuchElementException.hpp>
+#include <com/sun/star/datatransfer/XMimeContentType.hpp>
+#include <com/sun/star/datatransfer/XMimeContentTypeFactory.hpp>
+#include <com/sun/star/lang/XComponent.hpp>
+#include <rtl/ustring.hxx>
+#include <sal/types.h>
+#include <osl/diagnose.h>
+
+#include <stdio.h>
+
+#include <vector>
+
+// my defines
+
+#define TEST_CLIPBOARD
+#define RDB_SYSPATH "d:\\projects\\src621\\dtrans\\wntmsci7\\bin\\applicat.rdb"
+
+// namespaces
+
+using namespace ::std;
+using namespace ::cppu;
+using namespace ::com::sun::star::datatransfer;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::container;
+
+void ShutdownServiceMgr( Reference< XMultiServiceFactory >& SrvMgr )
+{
+ // Cast factory to XComponent
+ Reference< XComponent > xComponent( SrvMgr, UNO_QUERY );
+
+ if ( !xComponent.is() )
+ OSL_FAIL("Error shutting down");
+
+ // Dispose and clear factory
+ xComponent->dispose();
+ SrvMgr.clear();
+}
+
+sal_Bool readCntTypesFromFileIntoVector( char* fname, vector< string >& vecData )
+{
+ FILE* fstream;
+
+ fstream = fopen( fname, "r+" );
+ if ( !fstream )
+ return sal_False;
+
+ // set pointer to file start
+ fseek( fstream, 0, SEEK_SET );
+
+ char line[1024];
+ while ( fscanf( fstream, "%1023[^\n]s", line ) != EOF )
+ {
+ vecData.push_back( line );
+ fgetc( fstream );
+ }
+
+ fclose( fstream );
+
+ return sal_True;
+}
+
+sal_Bool processCntTypesAndWriteResultIntoFile( char* fname, vector< string >& vecData, Reference< XMimeContentTypeFactory > cnttypeFactory )
+{
+ FILE* fstream;
+
+ fstream = fopen( fname, "w" );
+ if ( !fstream )
+ return sal_False;
+
+ // set pointer to file start
+ fseek( fstream, 0, SEEK_SET );
+
+ for ( const auto& rData : vecData )
+ {
+ try
+ {
+ fprintf( fstream, "Read: %s\n", rData.c_str( ) );
+
+ Reference< XMimeContentType > xMCntTyp = cnttypeFactory->createMimeContentType( OUString::createFromAscii( rData.c_str( ) ) );
+
+ fwprintf( fstream, OUString("Type: %s\n"), xMCntTyp->getMediaType( ).getStr( ) );
+ fwprintf( fstream, OUString("Subtype: %s\n"), xMCntTyp->getMediaSubtype( ).getStr( ) );
+
+ Sequence< OUString > seqParam = xMCntTyp->getParameters( );
+ sal_Int32 nParams = seqParam.getLength( );
+
+ for ( sal_Int32 i = 0; i < nParams; i++ )
+ {
+ fwprintf( fstream, OUString("PName: %s\n"), seqParam[i].getStr( ) );
+ fwprintf( fstream, OUString("PValue: %s\n"), xMCntTyp->getParameterValue( seqParam[i] ).getStr( ) );
+ }
+ }
+ catch( IllegalArgumentException& ex )
+ {
+ fwprintf( fstream, OUString("Read incorrect content type!\n\n") );
+ }
+ catch( NoSuchElementException& )
+ {
+ fwprintf( fstream, OUString("Value of parameter not available\n") );
+ }
+ catch( ... )
+ {
+ fwprintf( fstream, OUString("Unknown error!\n\n") );
+ }
+
+ fwprintf( fstream, OUString("\n#############################################\n\n") );
+ }
+
+ fclose( fstream );
+
+ return sal_True;
+}
+
+// main
+
+int SAL_CALL main( int nArgc, char* argv[] )
+{
+ if ( nArgc != 3 )
+ printf( "Start with: testcnttype input-file output-file\n" );
+
+ // get the global service-manager
+
+ Reference< XMultiServiceFactory > g_xFactory( createRegistryServiceFactory( RDB_SYSPATH ) );
+
+ // Print a message if an error occurred.
+ if ( !g_xFactory.is( ) )
+ {
+ OSL_FAIL("Can't create RegistryServiceFactory");
+ return(-1);
+ }
+
+ vector< string > vecCntTypes;
+
+ // open input-file and read the data
+ if ( !readCntTypesFromFileIntoVector( argv[1], vecCntTypes ) )
+ {
+ printf( "Can't open input file" );
+ ShutdownServiceMgr( g_xFactory );
+ }
+
+ Reference< XMimeContentTypeFactory >
+ xMCntTypeFactory( g_xFactory->createInstance("com.sun.star.datatransfer.MimeContentTypeFactory"), UNO_QUERY );
+
+ if ( !xMCntTypeFactory.is( ) )
+ {
+ OSL_FAIL( "Error creating MimeContentTypeFactory Service" );
+ return(-1);
+ }
+
+ if ( !processCntTypesAndWriteResultIntoFile( argv[2], vecCntTypes, xMCntTypeFactory ) )
+ {
+ printf( "Can't open output file" );
+ ShutdownServiceMgr( g_xFactory );
+ }
+
+ // shutdown the service manager
+
+ ShutdownServiceMgr( g_xFactory );
+
+ return 0;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */