/************************************************************** * * 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 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef _COMPHELPER_MIMECONFIGHELPER_HXX_ #define _COMPHELPER_MIMECONFIGHELPER_HXX_ #include #include #include #include #include #include #include #include #include "comphelper/comphelperdllapi.h" namespace comphelper { class COMPHELPER_DLLPUBLIC MimeConfigurationHelper { ::osl::Mutex m_aMutex; ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory; ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xConfigProvider; ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xObjectConfig; ::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 ); static ::rtl::OUString GetStringClassIDRepresentation( const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID ); static ::com::sun::star::uno::Sequence< sal_Int8 > GetSequenceClassIDRepresentation( const ::rtl::OUString& aClassID ); ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > GetConfigurationByPath( const ::rtl::OUString& aPath ); ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > GetObjConfiguration(); ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > GetVerbsConfiguration(); ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > GetMediaTypeConfiguration(); ::rtl::OUString GetDocServiceNameFromFilter( const ::rtl::OUString& aFilterName ); ::rtl::OUString GetDocServiceNameFromMediaType( const ::rtl::OUString& aMediaType ); ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > GetObjPropsFromConfigEntry( const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& xObjectProps ); sal_Bool GetVerbByShortcut( const ::rtl::OUString& aVerbShortcut, ::com::sun::star::embed::VerbDescriptor& aDescriptor ); ::rtl::OUString GetExplicitlyRegisteredObjClassID( const ::rtl::OUString& aMediaType ); // retrieving object description from configuration ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > GetObjectPropsByStringClassID( const ::rtl::OUString& aStringClassID ); ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > GetObjectPropsByClassID( const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID ); ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > GetObjectPropsByMediaType( const ::rtl::OUString& aMediaType ); ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > GetObjectPropsByFilter( const ::rtl::OUString& aFilterName ); ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > GetObjectPropsByDocumentName( const ::rtl::OUString& aDocumentName ); // retrieving object factory from configuration ::rtl::OUString GetFactoryNameByStringClassID( const ::rtl::OUString& aStringClassID ); ::rtl::OUString GetFactoryNameByClassID( const ::com::sun::star::uno::Sequence< sal_Int8 >& aClassID ); ::rtl::OUString GetFactoryNameByDocumentName( const ::rtl::OUString& aDocName ); ::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 ); ::rtl::OUString UpdateMediaDescriptorWithFilterName( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescr, ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aObject ); sal_Bool AddFilterNameCheckOwnFile( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aMediaDescr ); ::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, sal_uInt8 b8, sal_uInt8 b9, sal_uInt8 b10, sal_uInt8 b11, sal_uInt8 b12, sal_uInt8 b13, sal_uInt8 b14, sal_uInt8 b15 ); ::com::sun::star::uno::Sequence GetSequenceClassIDFromObjectName(const ::rtl::OUString& _sObjectName) ; }; } #endif // _COMPHELPER_MIMECONFIGHELPER_HXX_