diff options
Diffstat (limited to 'framework')
101 files changed, 18379 insertions, 7149 deletions
diff --git a/framework/dtd/event.dtd b/framework/dtd/event.dtd index 90579f46b60a..3c0000cdcc77 100644 --- a/framework/dtd/event.dtd +++ b/framework/dtd/event.dtd @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - $Id: event.dtd,v 1.2 2001-12-06 11:48:28 cd Exp $ + $Id: event.dtd,v 1.3 2003-03-25 18:19:27 hr Exp $ The Contents of this file are made available subject to the terms of either of the following licenses @@ -60,8 +60,8 @@ <!ATTLIST event:event event:name CDATA #REQUIRED event:language CDATA #REQUIRED - event:library CDATA #REQUIRED - event:macro-name CDATA #REQUIRED + event:library CDATA #IMPLIED + event:macro-name CDATA #IMPLIED xlink:type %xlinkType; "simple" xlink:href CDATA #IMPLIED > diff --git a/framework/inc/arguments.h b/framework/inc/arguments.h index bfaf340c96db..f4b0fed952f2 100644 --- a/framework/inc/arguments.h +++ b/framework/inc/arguments.h @@ -2,9 +2,9 @@ * * $RCSfile: arguments.h,v $ * - * $Revision: 1.11 $ + * $Revision: 1.12 $ * - * last change: $Author: as $ $Date: 2002-08-22 10:04:55 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:27 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -115,6 +115,7 @@ namespace framework{ #define ARGUMENTNAME_URL DECLARE_ASCII("URL" ) // string #define ARGUMENTNAME_VERSION DECLARE_ASCII("Version" ) // int16 #define ARGUMENTNAME_VIEWID DECLARE_ASCII("ViewId" ) // int16 +#define ARGUMENTNAME_REPAIRPACKAGE DECLARE_ASCII("RepairPackage" ) // bool /*-************************************************************************************************************//** @short define our argument mask @@ -197,7 +198,8 @@ enum EArgument E_UPDATEDOCMODE = ARGUMENTLAYER_2 | ARGUMENTFLAG_7 , E_URL = ARGUMENTLAYER_2 | ARGUMENTFLAG_8 , E_VERSION = ARGUMENTLAYER_2 | ARGUMENTFLAG_9 , - E_VIEWID = ARGUMENTLAYER_2 | ARGUMENTFLAG_10 + E_VIEWID = ARGUMENTLAYER_2 | ARGUMENTFLAG_10, + E_REPAIRPACKAGE = ARGUMENTLAYER_2 | ARGUMENTFLAG_11 }; } // namespace framework diff --git a/framework/inc/classes/addonmenu.hxx b/framework/inc/classes/addonmenu.hxx index 723886f5af53..80b27d763b25 100644 --- a/framework/inc/classes/addonmenu.hxx +++ b/framework/inc/classes/addonmenu.hxx @@ -2,9 +2,9 @@ * * $RCSfile: addonmenu.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: cd $ $Date: 2002-10-11 14:15:41 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:30 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -95,9 +95,9 @@ class AddonMenu : public PopupMenu AddonMenu( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame ); ~AddonMenu(); - void Initialize(); // Synchrones Laden der Eintraege + void Initialize(); // Synchrones Laden der Eintraege - static sal_Bool HasElements(); + static sal_Bool HasElements(); protected: USHORT CreateMenuId(); @@ -110,6 +110,44 @@ class AddonMenu : public PopupMenu ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& m_xFrame; }; +class AddonPopupMenu : public PopupMenu +{ + public: + ~AddonPopupMenu(); + + const rtl::OUString& GetContext() const { return m_aContext; } + const rtl::OUString& GetCommandURL() const { return m_aCommandURL; } + const rtl::OUString& GetTitle() const { return m_aTitle; } + USHORT GetId() const { return m_nId; } + + // Get the top-level popup menus for addons. The menubar is used as a container. Every popup menu is from type AddonPopupMenu! + static void GetAddonPopupMenus( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, + MenuBar* pAddonPopupMenus ); + + // Merge the addon popup menus into the given menu bar at the provided pos. + static void MergeAddonPopupMenus( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rModel, + USHORT nMergeAtPos, + MenuBar* pMergeMenuBar ); + + protected: + void Initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rAddonPopupMenuDefinition ); + USHORT CreateMenuId(); + sal_Bool IsCorrectContext( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rModel ) const; + + private: + AddonPopupMenu( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame ); + + PopupMenu* BuildSubMenu( ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > aAddonSubMenuDefinition ); + + USHORT m_nId; + rtl::OUString m_aCommandURL; + rtl::OUString m_aTitle; + rtl::OUString m_aContext; + AddonMenu_Impl* _pImp; + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& m_xFrame; +}; + } // namespace framework #endif // #ifndef __FRAMEWORK_CLASSES_ADDONMENU_HXX_ diff --git a/framework/inc/classes/addonsoptions.hxx b/framework/inc/classes/addonsoptions.hxx index 8efdfeb9d9ef..4fca0363b17b 100644 --- a/framework/inc/classes/addonsoptions.hxx +++ b/framework/inc/classes/addonsoptions.hxx @@ -2,9 +2,9 @@ * * $RCSfile: addonsoptions.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: cd $ $Date: 2002-10-11 14:16:20 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:30 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -103,6 +103,9 @@ #define ADDONSMENUITEM_PROPERTYNAME_TARGET ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Target" )) #define ADDONSMENUITEM_PROPERTYNAME_SUBMENU ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Submenu" )) #define ADDONSMENUITEM_PROPERTYNAME_COMPONENTID ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ComponentID" )) +#define ADDONSMENUITEM_PROPERTYNAME_CONTEXT ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Context" )) + +#define ADDONSPOPUPMENU_URL_PREFIX ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:menu/Addon" )) namespace framework { @@ -208,12 +211,12 @@ class AddonsOptions const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& GetAddonsMenu() const; /*-****************************************************************************************************//** - @short Get the popup menu or menu item of the specified component + @short Get the popup-menu/menu entries of the specified component @descr Call it to add a addons popup menu or menu item for a component @seealso - - @return sal_True if operation has been successfully completed + @return A list of menu items which belongs to the specified component @onerror We return sal_False *//*-*****************************************************************************************************/ @@ -221,6 +224,32 @@ class AddonsOptions ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > GetAddonsComponentMenu( const ::rtl::OUString aComponentID ) const; /*-****************************************************************************************************//** + @short Gets the menu bar part of all addon components registered + @descr - + + @seealso - + + @return A complete + + @onerror We return sal_False + *//*-*****************************************************************************************************/ + + const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& GetAddonsMenuBarPart() const; + + /*-****************************************************************************************************//** + @short Gets the toolbar part of all addon components registered + @descr - + + @seealso - + + @return A complete + + @onerror We return sal_False + *//*-*****************************************************************************************************/ + + const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& GetAddonsToolBarPart() const; + + /*-****************************************************************************************************//** @short Retrieve an image for a command URL which is defined inside the addon menu configuration @descr Call it to retrieve an image for a command URL which is defined inside the addon menu configuration diff --git a/framework/inc/classes/colorlistener.hxx b/framework/inc/classes/colorlistener.hxx new file mode 100644 index 000000000000..6371d17cbdcb --- /dev/null +++ b/framework/inc/classes/colorlistener.hxx @@ -0,0 +1,166 @@ +/************************************************************************* + * + * $RCSfile: colorlistener.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:19:32 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __FRAMEWORK_CLASSES_COLORLISTENER_HXX_ +#define __FRAMEWORK_CLASSES_COLORLISTENER_HXX_ + +//__________________________________________ +// own includes + +#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ +#include <threadhelp/threadhelpbase.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XINTERFACE_HXX_ +#include <macros/xinterface.hxx> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +//__________________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_ +#include <com/sun/star/awt/XWindow.hpp> +#endif + +//__________________________________________ +// other includes + +#ifndef _CPPUHELPER_WEAK_HXX_ +#include <cppuhelper/weak.hxx> +#endif + +#ifndef INCLUDED_SVTOOLS_COLORCFG_HXX +#include <svtools/colorcfg.hxx> +#endif + +//__________________________________________ +// definition + +namespace framework +{ + +//__________________________________________ + +/** listen for color changes inside configuration. + + This listener looks for color changes provided at the config item + "ColorConfig". All interested colors will be applied directly to a + given window set window member. Curren implementation support setting + of the background only. + + @see ::svtools::ColorConfig + */ + +class ColorListener : public css::lang::XEventListener + , private ThreadHelpBase // attention! Must be the first base class to guarentee right initialize lock ... + , public SfxListener + , public ::cppu::OWeakObject + +{ + //______________________________________ + // member + + private: + + /** points to the single config item, which provides the color-change notification. */ + ::svtools::ColorConfig* m_pConfig; + + /** reference to the window, on which we must set the changed color. */ + css::uno::Reference< css::awt::XWindow > m_xWindow; + + /** we must know, if we already registered as listener or not. */ + sal_Bool m_bListen; + + //______________________________________ + // interface + + public: + + DECLARE_XINTERFACE + + ColorListener( const css::uno::Reference< css::awt::XWindow >& xWindow ); + ~ColorListener( ); + + // XEventListener + virtual void SAL_CALL disposing( const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException); + + // SfxListener + virtual void Notify( SfxBroadcaster& rBroadCaster, const SfxHint& rHint ); + + //______________________________________ + // helper + + private: + + void impl_applyColor (); + void impl_startListening(); + void impl_stopListening (); + void impl_die (); + +}; // class ColorListener + +} // namespace framework + +#endif // __FRAMEWORK_CLASSES_COLORLISTENER_HXX_ diff --git a/framework/inc/classes/converter.hxx b/framework/inc/classes/converter.hxx index e14d2a726c1e..bf28b5ad9b29 100644 --- a/framework/inc/classes/converter.hxx +++ b/framework/inc/classes/converter.hxx @@ -2,9 +2,9 @@ * * $RCSfile: converter.hxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: as $ $Date: 2002-10-11 13:41:07 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:32 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -89,6 +89,10 @@ #include <com/sun/star/beans/PropertyValue.hpp> #endif +#ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_ +#include <com/sun/star/beans/NamedValue.hpp> +#endif + #ifndef _DATETIME_HXX #include <tools/datetime.hxx> #endif @@ -110,9 +114,18 @@ namespace framework{ class Converter { public: + // Seq<Any> <=> Seq<beans.PropertyValue> static css::uno::Sequence< css::uno::Any > convert_seqProp2seqAny ( const css::uno::Sequence< css::beans::PropertyValue >& lSource ); static css::uno::Sequence< css::beans::PropertyValue > convert_seqAny2seqProp ( const css::uno::Sequence< css::uno::Any >& lSource ); + + // Seq<beans.NamedValue> <=> Seq<beans.PropertyValue> + static css::uno::Sequence< css::beans::PropertyValue > convert_seqNamedVal2seqPropVal ( const css::uno::Sequence< css::beans::NamedValue >& lSource ); + static css::uno::Sequence< css::beans::NamedValue > convert_seqPropVal2seqNamedVal ( const css::uno::Sequence< css::beans::PropertyValue >& lSource ); + + // Seq<String> => Vector<String> static OUStringList convert_seqOUString2OUStringList( const css::uno::Sequence< ::rtl::OUString >& lSource ); + + // String <=> tools.DateTime static DateTime convert_String2DateTime ( const ::rtl::OUString& sSource ); static ::rtl::OUString convert_DateTime2String ( const DateTime& aSource ); }; diff --git a/framework/inc/classes/filtercachedata.hxx b/framework/inc/classes/filtercachedata.hxx index cc4f0c62f5ea..ed1158de63ef 100644 --- a/framework/inc/classes/filtercachedata.hxx +++ b/framework/inc/classes/filtercachedata.hxx @@ -2,9 +2,9 @@ * * $RCSfile: filtercachedata.hxx,v $ * - * $Revision: 1.15 $ + * $Revision: 1.16 $ * - * last change: $Author: as $ $Date: 2002-05-02 11:38:42 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:32 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,6 +62,13 @@ #ifndef __FRAMEWORK_CLASSES_FILTERCACHEDATA_HXX_ #define __FRAMEWORK_CLASSES_FILTERCACHEDATA_HXX_ +/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble + with solaris headers ... +*/ +#include <hash_map> +#include <vector> +#include <iterator> + //_________________________________________________________________________________________________________________ // my own includes //_________________________________________________________________________________________________________________ @@ -116,18 +123,6 @@ #include <rtl/logfile.hxx> #endif -#ifndef __SGI_STL_HASH_MAP -#include <hash_map> -#endif - -#ifndef __SGI_STL_VECTOR -#include <vector> -#endif - -#ifndef __SGI_STL_ITERATOR -#include <iterator> -#endif - //_________________________________________________________________________________________________________________ // namespace //_________________________________________________________________________________________________________________ diff --git a/framework/inc/classes/framecontainer.hxx b/framework/inc/classes/framecontainer.hxx index 10b60ec32a39..0085609557c0 100644 --- a/framework/inc/classes/framecontainer.hxx +++ b/framework/inc/classes/framecontainer.hxx @@ -2,9 +2,9 @@ * * $RCSfile: framecontainer.hxx,v $ * - * $Revision: 1.15 $ + * $Revision: 1.16 $ * - * last change: $Author: as $ $Date: 2002-07-02 07:23:29 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:33 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,6 +62,13 @@ #ifndef __FRAMEWORK_CLASSES_FRAMECONTAINER_HXX_ #define __FRAMEWORK_CLASSES_FRAMECONTAINER_HXX_ +/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble + with solaris headers ... +*/ +#include <vector> +#include <stdexcept> +#include <algorithm> + //_________________________________________________________________________________________________________________ // my own includes //_________________________________________________________________________________________________________________ @@ -78,10 +85,6 @@ #include <classes/targetfinder.hxx> #endif -#ifndef __FRAMEWORK_CLASSES_ASYNCQUIT_HXX_ -#include <classes/asyncquit.hxx> -#endif - #ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ #include <macros/debug.hxx> #endif @@ -98,16 +101,20 @@ #include <com/sun/star/frame/XFrame.hpp> #endif -//_________________________________________________________________________________________________________________ -// other includes -//_________________________________________________________________________________________________________________ +#ifndef _COM_SUN_STAR_FRAME_XDESKTOP_HPP_ +#include <com/sun/star/frame/XDesktop.hpp> +#endif #ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_ #include <com/sun/star/uno/Reference.hxx> #endif -#ifndef __SGI_STL_VECTOR -#include <vector> +//_________________________________________________________________________________________________________________ +// other includes +//_________________________________________________________________________________________________________________ + +#ifndef _CPPUHELPER_WEAKREF_HXX_ +#include <cppuhelper/weakref.hxx> #endif #ifndef _VOS_REF_HXX_ @@ -118,9 +125,9 @@ #include <rtl/ustring.hxx> #endif -#include <vector> -#include <stdexcept> -#include <algorithm> +#ifndef _VCL_EVNTPOST_HXX +#include <vcl/evntpost.hxx> +#endif //_________________________________________________________________________________________________________________ // namespace @@ -166,8 +173,14 @@ class FrameContainer : private ThreadHelpBase TFrameContainer m_aContainer; /// one container item can be the current active frame. Its neccessary for Desktop or Frame implementation. css::uno::Reference< css::frame::XFrame > m_xActiveFrame; - /// if an instance of this class is used at the desktop and last frame will be removed we must terminate the desktop - ::vos::ORef< AsyncQuit > m_rQuitTimer; +/*DEPRECATEME + /// indicates using of the automatic async quit feature in case last task will be closed + sal_Bool m_bAsyncQuit; + /// used to execute the terminate request asyncronous + ::vcl::EventPoster m_aAsyncCall; + /// used for async quit feature (must be weak to prevent us against strange situations!) + css::uno::WeakReference< css::frame::XDesktop > m_xDesktop; +*/ //_______________________________________ // interface @@ -195,26 +208,16 @@ class FrameContainer : private ThreadHelpBase /// replacement for deprectaed index access css::uno::Sequence< css::uno::Reference< css::frame::XFrame > > getAllElements() const; - /// for special feature "async quit timer" of desktop only! void enableQuitTimer ( const css::uno::Reference< css::frame::XDesktop >& xDesktop ); - void disableQuitTimer( ); - + void disableQuitTimer(); +/*DEPRECATEME + DECL_LINK( implts_asyncQuit, void* ); +*/ /// special helper for Frame::findFrame() css::uno::Reference< css::frame::XFrame > searchOnAllChildrens ( const ::rtl::OUString& sName ) const; css::uno::Reference< css::frame::XFrame > searchOnDirectChildrens( const ::rtl::OUString& sName ) const; - //_______________________________________ - // debug! - - #ifdef ENABLE_ASSERTIONS - - public: - - void impldbg_checkForZombie() const; - - #endif // #ifdef ENABLE_ASSERTIONS - }; // class FrameContainer } // namespace framework diff --git a/framework/inc/classes/framelistanalyzer.hxx b/framework/inc/classes/framelistanalyzer.hxx new file mode 100644 index 000000000000..fe3165bf747f --- /dev/null +++ b/framework/inc/classes/framelistanalyzer.hxx @@ -0,0 +1,265 @@ +/************************************************************************* + * + * $RCSfile: framelistanalyzer.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:19:33 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __FRAMEWORK_CLASSES_FRAMELISTANALYZER_HXX_ +#define __FRAMEWORK_CLASSES_FRAMELISTANALYZER_HXX_ + +//_______________________________________________ +// my own includes + +#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ +#include <threadhelp/threadhelpbase.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +//_______________________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_FRAME_XFRAME_HPP_ +#include <com/sun/star/frame/XFrame.hpp> +#endif + +//_______________________________________________ +// other includes + +//_______________________________________________ +// namespace + +namespace framework{ + +//_______________________________________________ +// exported const + +//_______________________________________________ +// exported definitions + +/** analyze and split the current available frame list of a given frames supplier + into different parts. + + These analyzed informations can be used e.g. to decide if it's neccessary + to switch into the backing mode, close the current active frame only or + exit the whole application explicitly or implicitly. + */ +class FrameListAnalyzer +{ + //_______________________________________ + // types + + public: + + /** These enums can be combined as flags to enable/disable + special search algorithm during analyze phase. + see impl_analyze() for further informations. + But note: To be useable as flags, these enums + must be values of range [2^n]! */ + enum EDetect + { + E_MODEL = 1, + E_HELP = 2, + E_BACKINGCOMPONENT = 4, + E_HIDDEN = 8, + E_ALL = 15, + E_ZOMBIE = 32768 // use it for special test scenarios only!!! + }; + + //_______________________________________ + // member + + public: + + /** provides access to the frame container, which should be analyzed. */ + const css::uno::Reference< css::frame::XFramesSupplier >& m_xSupplier; + + /** hold the reference frame, which is used e.g. to detect other frames with the same model. */ + const css::uno::Reference< css::frame::XFrame >& m_xReferenceFrame; + + /** enable/disable some special analyzing steps. + see impl_analyze() for further informations. */ + sal_uInt32 m_eDetectMode; + + /** contains all frames, which uses the same model like the reference frame. + Will be filled only if m_eDetectMode has set the flag E_MODEL. + The reference frame is never part of this list! */ + css::uno::Sequence< css::uno::Reference< css::frame::XFrame > > m_lModelFrames; + + /** contains all frames, which does not contain the same model like the reference frame. + Filling of it can't be supressed by m_eDetectMode. + The reference frame is never part of this list! + All frames inside this list are visible ones. */ + css::uno::Sequence< css::uno::Reference< css::frame::XFrame > > m_lOtherVisibleFrames; + + /** contains all frames, which does not contain the same model like the reference frame. + Filling of it can't be supressed by m_eDetectMode. + The reference frame is never part of this list! + All frames inside this list are hidden ones. */ + css::uno::Sequence< css::uno::Reference< css::frame::XFrame > > m_lOtherHiddenFrames; + + /** points to the help frame. + Will be set only, if any other frame (means different from the reference frame) + contains the help component. If the reference frame itself includes the help module + it's not set ... but another member m_bIsHelp is used to safe this information. + See following example code: + + <listing> + if (m_xReferenceFrame == help) + { + m_xHelp = NULL; + m_bIsHelp = TRUE; + } + else + if (xOtherFrame == help) + { + m_xHelp = xOtherFrame; + m_bIsHelp = FALSE; + } + </listing> + + Analyzing of the help frame ignores the visible state of any frame. + But note: a hidden help frame indicates a wrong state! + */ + css::uno::Reference< css::frame::XFrame > m_xHelp; + + /** points to the frame, which contains the backing component. + Will be set only, if any other frame (means different from the reference frame) + contains the backing component. If the reference frame itself includes the + backing component it's not set ... but another member m_bIsBackingComponent + will used to safe this information. + See following example code: + + <listing> + if (m_xReferenceFrame == backing) + { + m_xBackingComponent = NULL; + m_bIsBackingComponent = TRUE; + } + else + if (xOtherFrame == backing) + { + m_xBackingComponent = xOtherFrame; + m_bIsBackingComponent = FALSE ; + } + </listing> + + Analyzing of the help frame ignores the visible state of any frame. + But note: a hidden backing mode frame indicates a wrong state! + */ + css::uno::Reference< css::frame::XFrame > m_xBackingComponent; + + /** is set to true only, if the reference frame is a hidden one. + This value is undefined if m_eDetectMode doesn't have set the flag E_HIDDEN! */ + sal_Bool m_bReferenceIsHidden; + + /** is set to true only, if the reference frame contains the help component. + In this case the member m_xHelp is set to NULL everytimes. + This value is undefined if m_eDetectMode doesn't have set the flag E_HELP! */ + sal_Bool m_bReferenceIsHelp; + + /** is set to true only, if the reference frame contains the backing component. + In this case the member m_xBackingComponent is set to NULL everytimes. + This value is undefined if m_eDetectMode doesn't have set the flag E_BACKINGCOMPONENT! */ + sal_Bool m_bReferenceIsBacking; + + //_______________________________________ + // interface + + public: + + /** starts analyze phase and fille all members with valid informations. + + @param xSupplier + Must be a valid reference to a frames supplier, which provies + access to the frame list for analyzing. + + @param xReferenceFrame + This frame must(!) exist inside the analyzed frame list and + is used for some comparing functions. Further some member states + depends from the current state of this frame. + + @param eDetectMode + It represent a flag field, which can enable/disable special + analyze steps. Note: Some member values will be undefined, if + an analyze step will be disabled. + */ + FrameListAnalyzer( const css::uno::Reference< css::frame::XFramesSupplier >& xSupplier , + const css::uno::Reference< css::frame::XFrame >& xReferenceFrame , + sal_uInt32 eDetectMode ); + virtual ~FrameListAnalyzer(); + + //_______________________________________ + // helper + + private: + + void impl_analyze(); + + +}; // class FrameListAnalyzer + +} // namespace framework + +#endif // #ifndef __FRAMEWORK_CLASSES_FRAMELISTANALYZER_HXX_ diff --git a/framework/inc/classes/menumanager.hxx b/framework/inc/classes/menumanager.hxx index 71c729ef7c58..1c56dea95cb9 100644 --- a/framework/inc/classes/menumanager.hxx +++ b/framework/inc/classes/menumanager.hxx @@ -2,9 +2,9 @@ * * $RCSfile: menumanager.hxx,v $ * - * $Revision: 1.13 $ + * $Revision: 1.14 $ * - * last change: $Author: cd $ $Date: 2002-10-11 14:17:53 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:34 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,6 +62,11 @@ #ifndef __FRAMEWORK_CLASSES_MENUMANAGER_HXX_ #define __FRAMEWORK_CLASSES_MENUMANAGER_HXX_ +/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble + with solaris headers ... +*/ +#include <vector> + //_________________________________________________________________________________________________________________ // interface includes //_________________________________________________________________________________________________________________ @@ -94,10 +99,6 @@ #include <vcl/menu.hxx> #endif -#ifndef __SGI_STL_VECTOR -#include <vector> -#endif - #ifndef _CPPUHELPER_WEAK_HXX_ #include <cppuhelper/weak.hxx> #endif @@ -125,6 +126,7 @@ namespace framework class BmkMenu; class AddonMenu; +class AddonPopupMenu; class MenuManager : public XSTATUSLISTENER , public ThreadHelpBase , public ::cppu::OWeakObject @@ -145,6 +147,11 @@ class MenuManager : public XSTATUSLISTENER , sal_Bool bDelete, sal_Bool bDeleteChildren ); + MenuManager( REFERENCE< XFRAME >& rFrame, + AddonPopupMenu* pAddonMenu, + sal_Bool bDelete, + sal_Bool bDeleteChildren ); + virtual ~MenuManager(); // XInterface diff --git a/framework/inc/classes/protocolhandlercache.hxx b/framework/inc/classes/protocolhandlercache.hxx index 01fb821ca5f6..4d84c65562b6 100644 --- a/framework/inc/classes/protocolhandlercache.hxx +++ b/framework/inc/classes/protocolhandlercache.hxx @@ -2,9 +2,9 @@ * * $RCSfile: protocolhandlercache.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: as $ $Date: 2002-05-02 11:34:36 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:34 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,6 +62,12 @@ #ifndef __FRAMEWORK_CLASSES_PROTOCOLHANDLERCACHE_HXX_ #define __FRAMEWORK_CLASSES_PROTOCOLHANDLERCACHE_HXX_ +/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble + with solaris headers ... +*/ +#include <hash_map> +#include <vector> + //_________________________________________________________________________________________________________________ // my own includes //_________________________________________________________________________________________________________________ @@ -84,8 +90,6 @@ #include <unotools/configitem.hxx> #include <rtl/ustring.hxx> -#include <hash_map> -#include <vector> //_________________________________________________________________________________________________________________ // namespace diff --git a/framework/inc/dispatch/closedispatcher.hxx b/framework/inc/dispatch/closedispatcher.hxx new file mode 100644 index 000000000000..7b9442847e85 --- /dev/null +++ b/framework/inc/dispatch/closedispatcher.hxx @@ -0,0 +1,263 @@ +/************************************************************************* + * + * $RCSfile: closedispatcher.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:19:37 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __FRAMEWORK_DISPATCH_CLOSEDISPATCHER_HXX_ +#define __FRAMEWORK_DISPATCH_CLOSEDISPATCHER_HXX_ + +//_________________________________________________________________________________________________________________ +// my own includes +//_________________________________________________________________________________________________________________ + +#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ +#include <threadhelp/threadhelpbase.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XINTERFACE_HXX_ +#include <macros/xinterface.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XTYPEPROVIDER_HXX_ +#include <macros/xtypeprovider.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_GENERIC_HXX_ +#include <macros/generic.hxx> +#endif + +#ifndef __FRAMEWORK_STDTYPES_H_ +#include <stdtypes.h> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +//_________________________________________________________________________________________________________________ +// interface includes +//_________________________________________________________________________________________________________________ + +#ifndef _COM_SUN_STAR_LANG_XTYPEPROVIDER_HPP_ +#include <com/sun/star/lang/XTypeProvider.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XFRAME_HPP_ +#include <com/sun/star/frame/XFrame.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XNOTIFYINGDISPATCH_HPP_ +#include <com/sun/star/frame/XNotifyingDispatch.hpp> +#endif + +#ifndef _COM_SUN_STAR_UTIL_URL_HPP_ +#include <com/sun/star/util/URL.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHRESULTLISTENER_HPP_ +#include <com/sun/star/frame/XDispatchResultListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_DISPATCHRESULTSTATE_HPP_ +#include <com/sun/star/frame/DispatchResultState.hpp> +#endif + +//_________________________________________________________________________________________________________________ +// other includes +//_________________________________________________________________________________________________________________ + +#ifndef _CPPUHELPER_WEAK_HXX_ +#include <cppuhelper/weak.hxx> +#endif + +#ifndef _VCL_EVNTPOST_HXX +#include <vcl/evntpost.hxx> +#endif + +//_________________________________________________________________________________________________________________ +// namespace +//_________________________________________________________________________________________________________________ + +namespace framework{ + +//_________________________________________________________________________________________________________________ +// exported const +//_________________________________________________________________________________________________________________ + +//_________________________________________________________________________________________________________________ +// exported definitions +//_________________________________________________________________________________________________________________ + +/*-************************************************************************************************************//** + @short helper to dispatch the URLs ".uno:CloseDoc" and ".uno:CloseWin" to close a targeted frame/document + @descr These URLs implements a special functionality to close a document or the whole frame ... + and handle the state, it was the last frame or document. Then we create the default backing document + which can be used to open new ones using the file open dialog or some other menu entries. + + @devstatus ready to use + @threadsafe yes +*//*-*************************************************************************************************************/ +class CloseDispatcher : public css::lang::XTypeProvider + , public css::frame::XNotifyingDispatch // => XDispatch + // baseclasses ... order is neccessary for right initialization! + , private ThreadHelpBase + , public ::cppu::OWeakObject +{ + //_____________________________________________ + // types + + private: + + enum EOperation + { + E_ESTABLISH_BACKINGMODE, + E_CLOSE_TARGET, + E_EXIT_APP + }; + + //_____________________________________________ + // member + + private: + + /** reference to the uno service manager */ + css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; + + /** reference to the target frame */ + css::uno::Reference< css::frame::XFrame > m_xTarget; + + /** used for asynchronous callbacks within the main thread, to + establish the backing mode or close the target frame. */ + ::vcl::EventPoster m_aAsyncCallback; + + /** used inside asyncronous callback to decide, which operation must be executed. */ + EOperation m_eAsyncOperation; + + /** for asynchronous operations we must hold us self alive! */ + css::uno::Reference< css::uno::XInterface > m_xSelfHold; + + /** list of registered status listener */ + ListenerHash m_lStatusListener; + + /** holded alive for internaly asynchronous operations! */ + css::uno::Reference< css::frame::XDispatchResultListener > m_xResultListener; + + //_____________________________________________ + // native interface + + public: + + CloseDispatcher( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , + const css::uno::Reference< css::frame::XFrame >& xTarget ); + virtual ~CloseDispatcher( ); + + //_____________________________________________ + // uno interface + + public: + + DECLARE_XINTERFACE + DECLARE_XTYPEPROVIDER + + // XNotifyingDispatch + virtual void SAL_CALL dispatchWithNotification( const css::util::URL& aURL , + const css::uno::Sequence< css::beans::PropertyValue >& lArguments, + const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException); + + // XDispatch + virtual void SAL_CALL dispatch ( const css::util::URL& aURL , + const css::uno::Sequence< css::beans::PropertyValue >& lArguments) throw(css::uno::RuntimeException); + virtual void SAL_CALL addStatusListener ( const css::uno::Reference< css::frame::XStatusListener >& xListener , + const css::util::URL& aURL ) throw(css::uno::RuntimeException); + virtual void SAL_CALL removeStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xListener , + const css::util::URL& aURL ) throw(css::uno::RuntimeException); + + //_____________________________________________ + // internal helper + + private: + + void impl_dispatchCloseDoc ( const css::uno::Sequence< css::beans::PropertyValue >& lArguments , + const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ); + void impl_dispatchCloseWin ( const css::uno::Sequence< css::beans::PropertyValue >& lArguments , + const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ); + void impl_dispatchCloseFrame ( const css::uno::Sequence< css::beans::PropertyValue >& lArguments , + const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ); + sal_Bool impl_closeFrame ( css::uno::Reference< css::frame::XFrame >& xFrame , + sal_Bool bCallSuspend ); + sal_Bool impl_exitApp ( css::uno::Reference< css::frame::XFrame >& xTarget ); + void impl_notifyResultListener( const css::uno::Reference< css::frame::XDispatchResultListener >& xListener , + sal_Int16 nState , + const css::uno::Any& aResult ); + sal_Bool impl_establishBackingMode( ); + DECL_LINK( impl_asyncCallback, void* ); + +}; // class CloseDispatcher + +} // namespace framework + +#endif // #ifndef __FRAMEWORK_DISPATCH_CLOSEDISPATCHER_HXX_ diff --git a/framework/inc/dispatch/dispatchprovider.hxx b/framework/inc/dispatch/dispatchprovider.hxx index a05e808f8769..91308b8e2190 100644 --- a/framework/inc/dispatch/dispatchprovider.hxx +++ b/framework/inc/dispatch/dispatchprovider.hxx @@ -2,9 +2,9 @@ * * $RCSfile: dispatchprovider.hxx,v $ * - * $Revision: 1.9 $ + * $Revision: 1.10 $ * - * last change: $Author: as $ $Date: 2002-05-23 12:50:05 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:38 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -163,6 +163,7 @@ enum EDispatchHelper E_CREATEDISPATCHER , E_BLANKDISPATCHER , E_SELFDISPATCHER , + E_CLOSEDISPATCHER , E_PLUGINDISPATCHER }; diff --git a/framework/inc/dispatch/helpagentdispatcher.hxx b/framework/inc/dispatch/helpagentdispatcher.hxx index 6ecf2f525e69..c732f0859c7a 100644 --- a/framework/inc/dispatch/helpagentdispatcher.hxx +++ b/framework/inc/dispatch/helpagentdispatcher.hxx @@ -2,9 +2,9 @@ * * $RCSfile: helpagentdispatcher.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: as $ $Date: 2001-07-02 13:23:13 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:39 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -207,19 +207,3 @@ namespace framework #endif // _FRAMEWORK_DISPATCH_HELPAGENTDISPATCHER_HXX_ -/************************************************************************* - * history: - * $Log: not supported by cvs2svn $ - * Revision 1.3 2001/06/11 10:14:25 as - * #85529# use new lock mechanism - * - * Revision 1.2 2001/05/07 15:05:17 fs - * moved the HelpAgentWindow implementation to SVTOOLS (prevent creating a new resource file here) - * - * Revision 1.1 2001/05/07 13:39:50 fs - * initial checkin - help agent dispatcher - * - * - * Revision 1.0 03.05.01 11:28:28 fs - ************************************************************************/ - diff --git a/framework/inc/dispatch/interaction.hxx b/framework/inc/dispatch/interaction.hxx index d6261bc6e203..36e19bc40702 100644 --- a/framework/inc/dispatch/interaction.hxx +++ b/framework/inc/dispatch/interaction.hxx @@ -2,9 +2,9 @@ * * $RCSfile: interaction.hxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: as $ $Date: 2001-12-19 13:18:02 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:39 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -82,6 +82,18 @@ #include <com/sun/star/task/XInteractionAbort.hpp> #endif +#ifndef _COM_SUN_STAR_TASK_XINTERACTIONAPPROVE_HPP_ +#include <com/sun/star/task/XInteractionApprove.hpp> +#endif + +#ifndef _COM_SUN_STAR_TASK_XINTERACTIONDISAPPROVE_HPP_ +#include <com/sun/star/task/XInteractionDisapprove.hpp> +#endif + +#ifndef _COM_SUN_STAR_TASK_XINTERACTIONRETRY_HPP_ +#include <com/sun/star/task/XInteractionRetry.hpp> +#endif + #ifndef _COM_SUN_STAR_DOCUMENT_XINTERACTIONFILTERSELECT_HPP_ #include <com/sun/star/document/XInteractionFilterSelect.hpp> #endif @@ -216,6 +228,9 @@ class ContinuationBase : public ::cppu::WeakImplHelper1< TContinuationType > @threadsafe no (used on once position only!) *//*-*************************************************************************************************************/ typedef ContinuationBase< ::com::sun::star::task::XInteractionAbort > ContinuationAbort; +typedef ContinuationBase< ::com::sun::star::task::XInteractionApprove > ContinuationApprove; +typedef ContinuationBase< ::com::sun::star::task::XInteractionDisapprove > ContinuationDisapprove; +typedef ContinuationBase< ::com::sun::star::task::XInteractionRetry > ContinuationRetry; /*-************************************************************************************************************//** @short declaration of special continuation for filter selection @@ -335,6 +350,51 @@ class RequestAmbigousFilter : public ::cppu::WeakImplHelper1< ::com::sun::star:: }; // class RequestFilterSelect +/*-************************************************************************************************************//** + @short special request for interaction + @descr User must decide between a preselected and another detected filter. + It capsulate communication with any interaction handler and supports an easy + access on interaction results for user of these class. + + @implements XInteractionRequest + + @base WeakImplHelper1 + + @devstatus ready to use + @threadsafe no (used on once position only!) +*//*-*************************************************************************************************************/ +class InteractionRequest : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest > +{ + // c++ interface + public: + InteractionRequest( const ::com::sun::star::uno::Any& aRequest , + const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > lContinuations ) + { + m_aRequest = aRequest ; + m_lContinuations = lContinuations; + } + + // uno interface + public: + virtual ::com::sun::star::uno::Any SAL_CALL getRequest() + throw( ::com::sun::star::uno::RuntimeException ) + { + return m_aRequest; + } + + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() + throw( ::com::sun::star::uno::RuntimeException ) + { + return m_lContinuations; + } + + // member + private: + ::com::sun::star::uno::Any m_aRequest ; + ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations; + +}; // class RequestFilterSelect + #endif // #define __FRAMEWORK_DISPATCH_INTERACTION_HXX_ } // namespace framework diff --git a/framework/inc/helper/acceleratorinfo.hxx b/framework/inc/helper/acceleratorinfo.hxx new file mode 100644 index 000000000000..b5593643fd9d --- /dev/null +++ b/framework/inc/helper/acceleratorinfo.hxx @@ -0,0 +1,84 @@ +/************************************************************************* + * + * $RCSfile: acceleratorinfo.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:19:41 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __FRAMEWORK_HELPER_ACCELERATORINFO_HXX_ +#define __FRAMEWORK_HELPER_ACCELERATORINFO_HXX_ + +#ifndef _SV_KEYCODE_HXX +#include <vcl/keycod.hxx> +#endif + +#ifndef _RTL_OUSTRING_HXX_ +#include <rtl/ustring.hxx> +#endif + +namespace framework +{ + +typedef ::rtl::OUString ( *pfunc_getCommandURLFromKeyCode)( const KeyCode& ); + +pfunc_getCommandURLFromKeyCode SAL_CALL SetCommandURLFromKeyCode( pfunc_getCommandURLFromKeyCode ); + +::rtl::OUString SAL_CALL GetCommandURLFromKeyCode( const KeyCode& aKeyCode ); + +}; + +#endif // __FRAMEWORK_HELPER_ACCELERATORINFO_HXX_ diff --git a/framework/inc/helper/oframes.hxx b/framework/inc/helper/oframes.hxx index 729522009d6e..1633514a6456 100644 --- a/framework/inc/helper/oframes.hxx +++ b/framework/inc/helper/oframes.hxx @@ -2,9 +2,9 @@ * * $RCSfile: oframes.hxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: as $ $Date: 2001-06-11 10:16:10 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:42 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -82,6 +82,10 @@ #include <macros/xinterface.hxx> #endif +#ifndef __FRAMEWORK_MACROS_XTYPEPROVIDER_HXX_ +#include <macros/xtypeprovider.hxx> +#endif + #ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ #include <macros/debug.hxx> #endif @@ -152,7 +156,8 @@ namespace framework{ @devstatus deprecated *//*-*************************************************************************************************************/ -class OFrames : public css::frame::XFrames , //=> XIndexAccess => XElementAccess +class OFrames : public css::lang::XTypeProvider , + public css::frame::XFrames , //=> XIndexAccess => XElementAccess private ThreadHelpBase , // Must be the first of baseclasses - Is neccessary for right initialization of objects! public ::cppu::OWeakObject { @@ -190,6 +195,7 @@ class OFrames : public css::frame::XFrames , //=> XIndexAccess => XElemen //--------------------------------------------------------------------------------------------------------- DECLARE_XINTERFACE + DECLARE_XTYPEPROVIDER //--------------------------------------------------------------------------------------------------------- // XFrames diff --git a/framework/inc/helper/propertysetcontainer.hxx b/framework/inc/helper/propertysetcontainer.hxx index 4cac2dbc1b2e..638349953cd6 100644 --- a/framework/inc/helper/propertysetcontainer.hxx +++ b/framework/inc/helper/propertysetcontainer.hxx @@ -2,9 +2,9 @@ * * $RCSfile: propertysetcontainer.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: cd $ $Date: 2001-12-04 07:41:59 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:42 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,6 +62,11 @@ #ifndef __FRAMEWORK_HELPER_PROPERTYSETCONTAINER_HXX_ #define __FRAMEWORK_HELPER_PROPERTYSETCONTAINER_HXX_ +/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble + with solaris headers ... +*/ +#include <vector> + #ifndef _CPPUHELPER_WEAK_HXX_ #include <cppuhelper/weak.hxx> #endif @@ -82,8 +87,6 @@ #include <threadhelp/threadhelpbase.hxx> #endif -#include <vector> - namespace framework { diff --git a/framework/inc/helper/statusindicatorfactory.hxx b/framework/inc/helper/statusindicatorfactory.hxx index 16cc8cc8db0b..40cd839eb726 100644 --- a/framework/inc/helper/statusindicatorfactory.hxx +++ b/framework/inc/helper/statusindicatorfactory.hxx @@ -2,9 +2,9 @@ * * $RCSfile: statusindicatorfactory.hxx,v $ * - * $Revision: 1.5 $ + * $Revision: 1.6 $ * - * last change: $Author: as $ $Date: 2002-04-24 09:50:03 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:43 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,6 +62,11 @@ #ifndef __FRAMEWORK_HELPER_STATUSINDICATORFACTORY_HXX_ #define __FRAMEWORK_HELPER_STATUSINDICATORFACTORY_HXX_ +/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble + with solaris headers ... +*/ +#include <vector> + //_________________________________________________________________________________________________________________ // my own includes //_________________________________________________________________________________________________________________ @@ -142,10 +147,6 @@ #include <cppuhelper/weak.hxx> #endif -#ifndef __SGI_STL_VECTOR -#include <vector> -#endif - //_________________________________________________________________________________________________________________ // namespace //_________________________________________________________________________________________________________________ @@ -252,8 +253,8 @@ class StatusIndicatorFactory : public css::task::XStatusIndicatorFactory , // constructor / destructor //--------------------------------------------------------------------------------------------------------- StatusIndicatorFactory( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory , - const css::uno::Reference< css::frame::XFrame >& xOwner , - const css::uno::Reference< css::awt::XWindow >& xParentWindow ); + const css::uno::Reference< css::awt::XWindow >& xParentWindow , + sal_Bool bShowStatusBar); //--------------------------------------------------------------------------------------------------------- // XInterface @@ -304,22 +305,7 @@ class StatusIndicatorFactory : public css::task::XStatusIndicatorFactory , void implts_recalcLayout(); void impl_reschedule(); sal_uInt32 impl_get10ThSec(); - - //------------------------------------------------------------------------------------------------------------- - // debug methods - // (should be private everyway!) - //------------------------------------------------------------------------------------------------------------- - #ifdef ENABLE_ASSERTIONS - - private: - static sal_Bool implcp_StatusIndicatorFactory( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory , - const css::uno::Reference< css::frame::XFrame >& xOwner , - const css::uno::Reference< css::awt::XWindow >& xParentWindow ); - static sal_Bool implcp_windowResized ( const css::awt::WindowEvent& aEvent ); - static sal_Bool implcp_windowMoved ( const css::awt::WindowEvent& aEvent ); - static sal_Bool implcp_disposing ( const css::lang::EventObject& aEvent ); - - #endif // #ifdef ENABLE_ASSERTIONS + void impl_createStatusBar(); //------------------------------------------------------------------------------------------------------------- // variables @@ -330,7 +316,7 @@ class StatusIndicatorFactory : public css::task::XStatusIndicatorFactory , IndicatorStack m_aStack ; /// stack with all current indicator childs StatusBar* m_pStatusBar ; /// status bar as progress bar css::uno::Reference< css::lang::XMultiServiceFactory > m_xFactory ; /// uno service manager to create new services - css::uno::Reference< css::frame::XFrame > m_xOwner ; /// Reference to our owner frame. We are listener for disposing() to die if he die! + sal_Bool m_bProgressMode ; css::uno::Reference< css::task::XStatusIndicator > m_xActiveIndicator ; /// most active indicator child, which could work with our shared indicator window only css::uno::Reference< css::awt::XWindow > m_xParentWindow ; /// we are listener on this window to resize shared statrus indicator diff --git a/framework/inc/helper/timerhelper.hxx b/framework/inc/helper/timerhelper.hxx index 50ce8e32f1aa..5135a47bea02 100644 --- a/framework/inc/helper/timerhelper.hxx +++ b/framework/inc/helper/timerhelper.hxx @@ -2,9 +2,9 @@ * * $RCSfile: timerhelper.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: as $ $Date: 2001-06-11 10:18:30 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:43 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -116,13 +116,3 @@ namespace framework #endif // _FRAMEWORK_HELPER_TIMERHELPER_HXX_ -/************************************************************************* - * history: - * $Log: not supported by cvs2svn $ - * Revision 1.1 2001/05/07 13:40:22 fs - * initial checkin - a vos-based timer using a callback on expiration - * - * - * Revision 1.0 03.05.01 16:10:30 fs - ************************************************************************/ - diff --git a/framework/inc/jobs/configaccess.hxx b/framework/inc/jobs/configaccess.hxx index b385d79ee7d7..44c7125f4d6b 100644 --- a/framework/inc/jobs/configaccess.hxx +++ b/framework/inc/jobs/configaccess.hxx @@ -2,9 +2,9 @@ * * $RCSfile: configaccess.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: as $ $Date: 2002-10-11 13:41:07 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:45 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -153,8 +153,9 @@ class ConfigAccess : public ThreadHelpBase const ::rtl::OUString& sRoot ); virtual ~ConfigAccess(); - virtual void open ( EOpenMode eMode ); - virtual void close( ); + virtual void open ( EOpenMode eMode ); + virtual void close ( ); + virtual EOpenMode getMode( ) const; virtual const css::uno::Reference< css::uno::XInterface >& cfg(); }; diff --git a/framework/inc/jobs/job.hxx b/framework/inc/jobs/job.hxx index 881ad8320e18..8f7fcd253600 100644 --- a/framework/inc/jobs/job.hxx +++ b/framework/inc/jobs/job.hxx @@ -2,9 +2,9 @@ * * $RCSfile: job.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: as $ $Date: 2002-10-11 13:41:08 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:45 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,20 +59,28 @@ * ************************************************************************/ -#ifndef __FRAMEWORK_JOBS_JOBDISPATCH_HXX_ -#define __FRAMEWORK_JOBS_JOBDISPATCH_HXX_ +#ifndef __FRAMEWORK_JOBS_JOB_HXX_ +#define __FRAMEWORK_JOBS_JOB_HXX_ //_______________________________________ // my own includes -#ifndef __FRAMEWORK_CONFIG_CONFIGACCESS_HXX_ -#include <jobs/configaccess.hxx> +#ifndef __FRAMEWORK_JOBS_JOBRESULT_HXX_ +#include <jobs/jobresult.hxx> +#endif + +#ifndef __FRAMEWORK_JOBS_JOBDATA_HXX_ +#include <jobs/jobdata.hxx> #endif #ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ #include <threadhelp/threadhelpbase.hxx> #endif +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + #ifndef __FRAMEWORK_MACROS_XINTERFACE_HXX_ #include <macros/xinterface.hxx> #endif @@ -81,10 +89,6 @@ #include <macros/xtypeprovider.hxx> #endif -#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ -#include <macros/debug.hxx> -#endif - #ifndef __FRAMEWORK_STDTYPES_H_ #include <stdtypes.h> #endif @@ -100,44 +104,32 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #endif -#ifndef _COM_SUN_STAR_FRAME_XNOTIFYINGDISPATCH_HPP_ -#include <com/sun/star/frame/XNotifyingDispatch.hpp> +#ifndef _COM_SUN_STAR_LANG_XTYPEPROVIDER_HPP_ +#include <com/sun/star/lang/XTypeProvider.hpp> #endif -#ifndef _COM_SUN_STAR_FRAME_XDISPATCH_HPP_ -#include <com/sun/star/frame/XDispatch.hpp> +#ifndef _COM_SUN_STAR_FRAME_XFRAME_HPP_ +#include <com/sun/star/frame/XFrame.hpp> #endif -#ifndef _COM_SUN_STAR_FRAME_XSTATUSLISTENER_HPP_ -#include <com/sun/star/frame/XStatusListener.hpp> +#ifndef _COM_SUN_STAR_FRAME_XDESKTOP_HPP_ +#include <com/sun/star/frame/XDesktop.hpp> #endif #ifndef _COM_SUN_STAR_FRAME_XDISPATCHRESULTLISTENER_HPP_ #include <com/sun/star/frame/XDispatchResultListener.hpp> #endif -#ifndef _COM_SUN_STAR_TASK_XJOBLISTENER_HPP_ -#include <com/sun/star/task/XJobListener.hpp> -#endif - #ifndef _COM_SUN_STAR_FRAME_XTERMINATELISTENER_HPP_ -#include <com/sun/star/frame/XTerminateListener.hpp> -#endif - -#ifndef _COM_SUN_STAR_FRAME_XDESKTOP_HPP_ -#include <com/sun/star/frame/XDesktop.hpp> -#endif - -#ifndef _COM_SUN_STAR_UNO_XINTERFACE_HPP_ -#include <com/sun/star/uno/XInterface.hpp> +#include <com/sun/star/frame/XtERMINATEListener.hpp> #endif -#ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_ -#include <com/sun/star/beans/NamedValue.hpp> +#ifndef _COM_SUN_STAR_TASK_XJOBLISTENER_HPP_ +#include <com/sun/star/task/XJobListener.hpp> #endif -#ifndef _COM_SUN_STAR_FRAME_FEATURESTATEEVENT_HPP_ -#include <com/sun/star/frame/FeatureStateEvent.hpp> +#ifndef _COM_SUN_STAR_UTIL_XCLOSELISTENER_HPP_ +#include <com/sun/star/util/XCloseListener.hpp> #endif #ifndef _COM_SUN_STAR_FRAME_DISPATCHRESULTEVENT_HPP_ @@ -147,10 +139,6 @@ //_______________________________________ // other includes -#ifndef _DATETIME_HXX -#include <tools/datetime.hxx> -#endif - #ifndef _CPPUHELPER_WEAK_HXX_ #include <cppuhelper/weak.hxx> #endif @@ -159,8 +147,6 @@ #include <rtl/ustring.hxx> #endif -#include <queue> - //_______________________________________ // namespace @@ -170,215 +156,148 @@ namespace framework{ // public const //_______________________________________ +// definitions + /** - @short implements a dispatch object for jobs - @descr Such dispatch object will be used by the JobHandler if - an URL "vnd.sun.star.job:alias=<name>" occures. - Then an instance of this class will be created and used. - This new instance will be called within his method - dispatch() or dispatchWithNotification() for executing the - real job. We do it, control the life cycle of this internal - wrapped job and inform any interested listener if it finish. - - @see JobHandler + @short it represent a job; execute it and control it's lifetime + + @descr This implemetation can be used to wrapp jobs, execute it + synchronously or asynchronous, control it's lifetime + and differe between jobs with and without configuration. */ -class JobDispatch : public css::lang::XTypeProvider - , public css::frame::XNotifyingDispatch // => XDispatch - , public css::task::XJobListener - , public css::frame::XTerminateListener - , private ThreadHelpBase - , public ::cppu::OWeakObject +class Job : public css::lang::XTypeProvider + , public css::task::XJobListener + , public css::frame::XTerminateListener + , public css::util::XCloseListener + , private ThreadHelpBase + , public ::cppu::OWeakObject { //___________________________________ - // types + // member - struct JobData - { - JobData( const ::rtl::OUString& sAlias ) - : m_sAlias( sAlias ) - {} + private: /** - the alias name of this job - Is used as entry of configuration set for job registration, to find all - neccessary properties of it.. + hold all neccessary informations about this job. + It can be used for both modes: with and without configuration. */ - ::rtl::OUString m_sAlias; + JobData m_aJobCfg; /** - the uno implementation name of this job - It's readed from the configuration. Don't set it from outside! + We need it to create own services on demand. */ - ::rtl::OUString m_sService; + css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; /** - job specific configuration items ... unknown for us! - It's readed from the configuration. Don't set it from outside! + Hold the (may asynchronous) job alive. */ - css::uno::Sequence< css::beans::NamedValue > m_lArguments; + css::uno::Reference< css::uno::XInterface > m_xJob; /** - time stamp of the admin layer for reactivation of a deactivated job - It's readed from the configuration. Don't set it from outside! + Used to wait for finishing of asynchronous started jobs. */ - DateTime m_aAdminTime; + ::osl::Condition m_aAsyncWait; /** - time stamp of the user layer to deactivate it after finishing his work - It's readed from the configuration. Don't set it from outside! + For some special cases we must know the environment, in which + this job runs. Means the frame inside which we may was triggered. + We use it too, to listen for closing events of this ressource. */ - DateTime m_aUserTime; + css::uno::Reference< css::frame::XFrame > m_xFrame; /** - if the admin time stamp is newer then the user time ... this job is ready for execute - It's set by comparing the two timetamp values m_aAdminTime & m_aUserTime. + We are registered at this instance to listen for office shutdown events. + It's neccessary supress it (if possible) or to react in the right way. */ - sal_Bool m_bActive; + css::uno::Reference< css::frame::XDesktop > m_xDesktop; /** - mark it as an asyncronoues or synchronoues job - It's readed from the configuration. Don't set it from outside! + A job can return a dispatch result event after finishing its work. + We have to transport it to any outside interested listener then. + (see m_xResultSourceFake for further informations too!) */ - sal_Bool m_bAsync; - }; - - struct ExecuteInfo - { - /** This (possible) listener is interested on the result of this executed job. */ css::uno::Reference< css::frame::XDispatchResultListener > m_xResultListener; - }; - - struct DispatchParameter - { - DispatchParameter( const css::util::URL& aURL , - const css::uno::Sequence< css::beans::PropertyValue >& lArgs , - const css::uno::Reference< css::frame::XDispatchResultListener >& xListener , - JobDispatch* pOwner ) - { - m_xOwnerHold = css::uno::Reference< css::uno::XInterface >( static_cast< ::cppu::OWeakObject* >(pOwner), css::uno::UNO_QUERY ); - m_aURL = aURL ; - m_lArgs = lArgs ; - m_xListener = xListener; - } - - DispatchParameter( const DispatchParameter& aCopy ) - { - m_xOwnerHold = aCopy.m_xOwnerHold; - m_aURL = aCopy.m_aURL ; - m_lArgs = aCopy.m_lArgs ; - m_xListener = aCopy.m_xListener ; - } - - void operator=( const DispatchParameter& aCopy ) - { - m_xOwnerHold = aCopy.m_xOwnerHold; - m_aURL = aCopy.m_aURL ; - m_lArgs = aCopy.m_lArgs ; - m_xListener = aCopy.m_xListener ; - } - - /** the dispatch URL */ - css::util::URL m_aURL; - - /** the dispatch arguments */ - css::uno::Sequence< css::beans::PropertyValue > m_lArgs; - - /** an interested listener for dispatch results */ - css::uno::Reference< css::frame::XDispatchResultListener > m_xListener; - - /** - every instance of this struct indicates an outstanding dispatch request - We have to work till all this jobs are done. So we hold the outside - JobDispatch object alive by using references. - So the JobDispatch can die be ref count ... - */ - css::uno::Reference< css::uno::XInterface > m_xOwnerHold; - }; - - //___________________________________ - // member - - private: - - /** reference to the uno service manager */ - css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; /** - knows anything about the internal wrapped job - and is filled from the configuration access. + We can't set ourself as source of a dispatch result event ... nor our job. + Because the listener (set as m_xResultListener) expect the original instance, + where it was registered. This original instance is the user of this class. + It must be set explicitly and will be used to fake the source of the event! */ - JobData m_aJobData; + css::uno::Reference< css::uno::XInterface > m_xResultSourceFake; /** - a list of all outstanding dispatch requests + Holds the state, if we are listen for frame closing events or not. + The used frame reference isn't realy enough - we use this additional + information here too. */ - ::std::queue< DispatchParameter > m_lDispatchQueue; + sal_Bool m_bCloseListening; /** - hold the currently running job service alive (important for async jobs, wich leave the scope of the start method) - Normaly they should hold itself alive ... but if some implementations don't do it - we do it. + In case we got a close request from our frame (on which we listen) ... and + the ownership was delivered there ... we have to close ourself and this frame + in case the internal wrapped and running job finish his work. */ - css::uno::Reference< css::uno::XInterface > m_xJob; + sal_Bool m_bPendingCloseFrame; /** - hold the opened configuration access alive - Because we need this instance in different methods, - we transport it as a member. + indicates a still running internal job. + We can use this information to throw any suitable veto exception + to prevent the environment against dieing. */ - ConfigAccess m_aConfig; + sal_Bool m_bRuns; //___________________________________ - // native interface methods + // native interface public: - JobDispatch( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , - const ::rtl::OUString& sAlias ); - virtual ~JobDispatch(); + Job( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , + const css::uno::Reference< css::frame::XFrame >& xFrame ); + virtual ~Job( ); + + void setDispatchResultFake( const css::uno::Reference< css::frame::XDispatchResultListener >& xListener , + const css::uno::Reference< css::uno::XInterface >& xSourceFake ); + void setJobData ( const JobData& aData ); + JobData getJobData ( ); + JobData& getJobDataRef ( ); + void execute ( const css::uno::Sequence< css::beans::NamedValue >& lDynamicArgs ); + void die ( ); + + private: + + css::uno::Sequence< css::beans::NamedValue > impl_generateJobArgs ( const css::uno::Sequence< css::beans::NamedValue >& lDynamicArgs ); + void impl_reactForJobResult( const css::uno::Any& aResult ); + void impl_startListening ( ); + void impl_stopListening ( ); //___________________________________ - // uno interface methods + // uno interface public: - // XInterface, XTypeProvider DECLARE_XINTERFACE DECLARE_XTYPEPROVIDER - // XNotifyingDispatch - virtual void SAL_CALL dispatchWithNotification( const css::util::URL& aURL , - const css::uno::Sequence< css::beans::PropertyValue >& lArgs , - const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException); - // XDispatch - virtual void SAL_CALL dispatch ( const css::util::URL& aURL , - const css::uno::Sequence< css::beans::PropertyValue >& lArgs ) throw(css::uno::RuntimeException); - virtual void SAL_CALL addStatusListener ( const css::uno::Reference< css::frame::XStatusListener >& xListener , - const css::util::URL& aURL ) throw(css::uno::RuntimeException); - virtual void SAL_CALL removeStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xListener , - const css::util::URL& aURL ) throw(css::uno::RuntimeException); // XJobListener - virtual void SAL_CALL jobFinished( const css::uno::Reference< css::task::XAsyncJob >& xJob , + virtual void SAL_CALL jobFinished( const css::uno::Reference< css::task::XAsyncJob >& xJob, const css::uno::Any& aResult ) throw(css::uno::RuntimeException); + // XTerminateListener virtual void SAL_CALL queryTermination ( const css::lang::EventObject& aEvent ) throw(css::frame::TerminationVetoException, css::uno::RuntimeException ); virtual void SAL_CALL notifyTermination( const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException ); - // XEventListener - virtual void SAL_CALL disposing( const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException); - //___________________________________ - // internal methods + // XCloseListener + virtual void SAL_CALL queryClosing ( const css::lang::EventObject& aEvent , + sal_Bool bGetsOwnership ) throw(css::util::CloseVetoException, + css::uno::RuntimeException ); + virtual void SAL_CALL notifyClosing( const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException ); - private: - - void impl_startJob ( ); - void impl_finishJob ( const css::uno::Any& aResult ); - void impl_readConfig ( ); - void impl_saveArguments ( ); - void impl_deactivateJob ( ); - void impl_sendDispatchResult( const css::frame::DispatchResultEvent& aResult ); + // XEventListener + virtual void SAL_CALL disposing( const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException); }; } // namespace framework -#endif // __FRAMEWORK_JOBS_JOBDISPATCH_HXX_ +#endif // __FRAMEWORK_JOBS_JOB_HXX_ diff --git a/framework/inc/jobs/jobdata.hxx b/framework/inc/jobs/jobdata.hxx new file mode 100644 index 000000000000..8fe4ab7f5e1f --- /dev/null +++ b/framework/inc/jobs/jobdata.hxx @@ -0,0 +1,323 @@ +/************************************************************************* + * + * $RCSfile: jobdata.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:19:45 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __FRAMEWORK_JOBS_JOBDATA_HXX_ +#define __FRAMEWORK_JOBS_JOBDATA_HXX_ + +//_______________________________________ +// my own includes + +#ifndef __FRAMEWORK_CONFIG_CONFIGACCESS_HXX_ +#include <jobs/configaccess.hxx> +#endif + +#ifndef __FRAMEWORK_JOBS_JOBRESULT_HXX_ +#include <jobs/jobresult.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ +#include <threadhelp/threadhelpbase.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +#ifndef __FRAMEWORK_STDTYPES_H_ +#include <stdtypes.h> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +//_______________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_ +#include <com/sun/star/beans/NamedValue.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_DISPATCHRESULTEVENT_HPP_ +#include <com/sun/star/frame/DispatchResultEvent.hpp> +#endif + +//_______________________________________ +// other includes + +#ifndef _DATETIME_HXX +#include <tools/datetime.hxx> +#endif + +#ifndef _RTL_USTRING_HXX_ +#include <rtl/ustring.hxx> +#endif + +//_______________________________________ +// namespace + +namespace framework{ + +//_______________________________________ +// public const + +//_______________________________________ +// definitions + +/** + @short holds all neccessary informations about a job and + handle it's configuration (if any exist!) + @descr It can be used rom different use cases as a container + (or proxy) for all config data of a registered job. + But it doesn't implement any execute functionality! + */ +class JobData : private ThreadHelpBase +{ + //___________________________________ + // const + + public: + + /// specifies the root package and key to find registered jobs + static const sal_Char* JOBCFG_ROOT ; + /// define the cfg key "AdminTime" of a job relativ to JOBCFG_ROOT + static const sal_Char* JOBCFG_PROP_ADMINTIME ; + /// define the cfg key "Arguments" of a job relativ to JOBCFG_ROOT + static const sal_Char* JOBCFG_PROP_ARGUMENTS ; + /// define the cfg key "Async" of a job relativ to JOBCFG_ROOT + static const sal_Char* JOBCFG_PROP_ASYNC ; + /// define the cfg key "Service" of a job relativ to JOBCFG_ROOT + static const sal_Char* JOBCFG_PROP_SERVICE ; + /// define the cfg key "UserTime" of a job relativ to JOBCFG_ROOT + static const sal_Char* JOBCFG_PROP_USERTIME ; + + /// specifies the root package and key to find event registrations + static const sal_Char* EVENTCFG_ROOT ; + /// define the cfg key "JobList" of an event relativ to EVENTCFG_ROOT + static const sal_Char* EVENTCFG_PROP_JOBLIST ; + + /// mark the starting point of static job data inside argument list of job execution + static const sal_Char* PROPSET_CONFIG ; + /// mark the starting point of job specific data inside argument list of job execution + static const sal_Char* PROPSET_OWNCONFIG ; + /// mark the starting point of environment data inside argument list of job execution + static const sal_Char* PROPSET_ENVIRONMENT ; + /// mark the starting point of any other dynamic generated data inside argument list of job execution (e.g. from a dispatch() request) + static const sal_Char* PROPSET_DYNAMICDATA ; + + static const sal_Char* PROP_ADMINTIME ; + static const sal_Char* PROP_ALIAS ; + static const sal_Char* PROP_ASYNC ; + static const sal_Char* PROP_EVENT ; + static const sal_Char* PROP_FRAME ; + static const sal_Char* PROP_SERVICE ; + static const sal_Char* PROP_USERTIME ; + + //___________________________________ + // structs + + public: + + /** These values can be used to differe between jobs with and jobs without + a configuration. Of course an "unknown state" should be available too, + to detect a missing initialization. + */ + enum EMode + { + /// inidcates a missing initialization + E_UNKNOWN, + /// indicates a job with configuration (They alias represent the config key name.) + E_ALIAS, + /// indicates a job without configuration (The real UNO servicename is used.) + E_SERVICE + }; + + //___________________________________ + // member + + private: + + /** + reference to the uno service manager. + We need it for creating of own uno services ... e.g. for + opening the configuration. + */ + css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; + + /** + An instance of this class can be used in two different modes: + - as a configured job + - as a job without any configuration + First mode is triggered by an alias, which points to the + configuration entries. Second mode is specified by an uno service + or implementation name. Then we does the same things (use the same interfaces) + but don't handle any configuration data. + The effect: This mode can be detected by this member. + */ + EMode m_eMode; + + /** + the alias name of this job. + Is used as entry of configuration set for job registration, to find all + neccessary properties of it.. + */ + ::rtl::OUString m_sAlias; + + /** + the uno implementation name of this job. + It's readed from the configuration. Don't set it from outside! + */ + ::rtl::OUString m_sService; + + /** + a job can be registered for an event. + It can be an empty value! But it will be set from outside any times. + Because it's not clear which job this instance should represent if an event + (instaed of an alias) comes in. Because there can be multiple registrations + for this event. We use this information only, to merge it with the job specific + arguments. A job can be called so, with a) it's onw config data and b) some dynamic + environment data. + */ + ::rtl::OUString m_sEvent; + + /** + job specific configuration items ... unknown for us! + It's readed from the configuration. Don't set it from outside! + */ + css::uno::Sequence< css::beans::NamedValue > m_lArguments; + + /** + time stamp of the admin layer for reactivation of a deactivated job + It's readed from the configuration. Don't set it from outside! + */ + DateTime m_aAdminTime; + + /** + time stamp of the user layer to deactivate it after finishing his work + It's readed from the configuration. Don't set it from outside! + */ + DateTime m_aUserTime; + + /** + mark it as an asyncronoues or synchronoues job + It's readed from the configuration. Don't set it from outside! + */ + sal_Bool m_bAsync; + + /** + if the admin time stamp is newer then the user time ... this job is ready for execute + This information is set by comparing the two timetamp values m_aAdminTime & m_aUserTime + and saved to perform any reading of it. + */ + sal_Bool m_bEnabled; + + /** + after a job was sucessfully executed (by any outside code using our + informations) it can return a result. This member make it part of this + container too. So it can be used for further things. + We use it also to actualize our internal state and the configuration + of the job. But note: only the last result will be saved here! + */ + JobResult m_aLastExecutionResult; + + //___________________________________ + // native interface + + public: + + JobData( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ); + JobData( const JobData& rCopy ); + virtual ~JobData( ); + + void operator=( const JobData& rCopy ); + + EMode getMode () const; + ::rtl::OUString getAlias () const; + ::rtl::OUString getService () const; + ::rtl::OUString getEvent () const; + css::uno::Sequence< css::beans::NamedValue > getConfig () const; + css::uno::Sequence< css::beans::NamedValue > getJobConfig () const; + JobResult getResult () const; + sal_Bool isAsync () const; + sal_Bool isEnabled () const; + + void setAlias ( const ::rtl::OUString& sAlias ); + void setService ( const ::rtl::OUString& sService ); + void setEvent ( const ::rtl::OUString& sEvent ); + void setJobConfig ( const css::uno::Sequence< css::beans::NamedValue >& lArguments ); + void setResult ( const JobResult& aResult ); + void disableJob ( ); + + //___________________________________ + // private helper + + private: + + void impl_reset(); +}; + +} // namespace framework + +#endif // __FRAMEWORK_JOBS_JOBDATA_HXX_ diff --git a/framework/inc/jobs/jobdispatch.hxx b/framework/inc/jobs/jobdispatch.hxx new file mode 100644 index 000000000000..b0a2fc9d7286 --- /dev/null +++ b/framework/inc/jobs/jobdispatch.hxx @@ -0,0 +1,266 @@ +/************************************************************************* + * + * $RCSfile: jobdispatch.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:19:46 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __FRAMEWORK_JOBS_JOBDISPATCH_HXX_ +#define __FRAMEWORK_JOBS_JOBDISPATCH_HXX_ + +//_______________________________________ +// my own includes + +#ifndef __FRAMEWORK_CONFIG_CONFIGACCESS_HXX_ +#include <jobs/configaccess.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ +#include <threadhelp/threadhelpbase.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XINTERFACE_HXX_ +#include <macros/xinterface.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XTYPEPROVIDER_HXX_ +#include <macros/xtypeprovider.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XSERVICEINFO_HXX_ +#include <macros/xserviceinfo.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +#ifndef __FRAMEWORK_STDTYPES_H_ +#include <stdtypes.h> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +//_______________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XNOTIFYINGDISPATCH_HPP_ +#include <com/sun/star/frame/XNotifyingDispatch.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XDISPATCH_HPP_ +#include <com/sun/star/frame/XDispatch.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XSTATUSLISTENER_HPP_ +#include <com/sun/star/frame/XStatusListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHRESULTLISTENER_HPP_ +#include <com/sun/star/frame/XDispatchResultListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_TASK_XJOBLISTENER_HPP_ +#include <com/sun/star/task/XJobListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XTERMINATELISTENER_HPP_ +#include <com/sun/star/frame/XTerminateListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDER_HPP_ +#include <com/sun/star/frame/XDispatchProvider.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XDESKTOP_HPP_ +#include <com/sun/star/frame/XDesktop.hpp> +#endif + +#ifndef _COM_SUN_STAR_UNO_XINTERFACE_HPP_ +#include <com/sun/star/uno/XInterface.hpp> +#endif + +#ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_ +#include <com/sun/star/beans/NamedValue.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_FEATURESTATEEVENT_HPP_ +#include <com/sun/star/frame/FeatureStateEvent.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_DISPATCHRESULTEVENT_HPP_ +#include <com/sun/star/frame/DispatchResultEvent.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_ +#include <com/sun/star/lang/XInitialization.hpp> +#endif + +//_______________________________________ +// other includes + +#ifndef UNOTOOLS_CONFIGPATHES_HXX_INCLUDED +#include <unotools/configpathes.hxx> +#endif + +#ifndef _CPPUHELPER_WEAK_HXX_ +#include <cppuhelper/weak.hxx> +#endif + +#ifndef _RTL_USTRING_HXX_ +#include <rtl/ustring.hxx> +#endif + +//_______________________________________ +// namespace + +namespace framework{ + +//_______________________________________ +// public const + +//_______________________________________ +/** + @short implements a dispatch object for jobs + @descr Such dispatch object will be used by the generic dispatch mechanism if + an URL "vnd.sun.star.job:alias=<name>" occures. + Then an instance of this class will be created and used. + This new instance will be called within his method + dispatch() or dispatchWithNotification() for executing the + real job. We do it, control the life cycle of this internal + wrapped job and inform any interested listener if it finish. + */ +class JobDispatch : public css::lang::XTypeProvider + , public css::lang::XServiceInfo + , public css::lang::XInitialization + , public css::frame::XDispatchProvider + , public css::frame::XNotifyingDispatch // => XDispatch + , private ThreadHelpBase + , public ::cppu::OWeakObject +{ + //___________________________________ + // member + + private: + + /** reference to the uno service manager */ + css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; + + /** reference to the frame, inside which this dispatch is used */ + css::uno::Reference< css::frame::XFrame > m_xFrame; + + //___________________________________ + // native interface methods + + public: + + JobDispatch( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ); + virtual ~JobDispatch( ); + + void impl_dispatchEvent ( const ::rtl::OUString& sEvent , + const css::uno::Sequence< css::beans::PropertyValue >& lArgs , + const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ); + void impl_dispatchService( const ::rtl::OUString& sService , + const css::uno::Sequence< css::beans::PropertyValue >& lArgs , + const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ); + void impl_dispatchAlias ( const ::rtl::OUString& sAlias , + const css::uno::Sequence< css::beans::PropertyValue >& lArgs , + const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ); + + //___________________________________ + // uno interface methods + + public: + + // XInterface, XTypeProvider, XServiceInfo + DECLARE_XINTERFACE + DECLARE_XTYPEPROVIDER + DECLARE_XSERVICEINFO + + // Xinitialization + virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& lArguments ) throw(css::uno::Exception , + css::uno::RuntimeException); + + // XDispatchProvider + virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch ( const css::util::URL& aURL , + const ::rtl::OUString& sTargetFrameName , + sal_Int32 nSearchFlags ) throw(css::uno::RuntimeException); + virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& lDescriptor ) throw(css::uno::RuntimeException); + + // XNotifyingDispatch + virtual void SAL_CALL dispatchWithNotification( const css::util::URL& aURL , + const css::uno::Sequence< css::beans::PropertyValue >& lArgs , + const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException); + + // XDispatch + virtual void SAL_CALL dispatch ( const css::util::URL& aURL , + const css::uno::Sequence< css::beans::PropertyValue >& lArgs ) throw(css::uno::RuntimeException); + virtual void SAL_CALL addStatusListener ( const css::uno::Reference< css::frame::XStatusListener >& xListener , + const css::util::URL& aURL ) throw(css::uno::RuntimeException); + virtual void SAL_CALL removeStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xListener , + const css::util::URL& aURL ) throw(css::uno::RuntimeException); +}; + +} // namespace framework + +#endif // __FRAMEWORK_JOBS_JOBDISPATCH_HXX_ diff --git a/framework/inc/jobs/jobexecutor.hxx b/framework/inc/jobs/jobexecutor.hxx new file mode 100644 index 000000000000..ce1508cb64b5 --- /dev/null +++ b/framework/inc/jobs/jobexecutor.hxx @@ -0,0 +1,171 @@ +/************************************************************************* + * + * $RCSfile: jobexecutor.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:19:47 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __FRAMEWORK_JOBS_JOBEXECUTOR_HXX_ +#define __FRAMEWORK_JOBS_JOBEXECUTOR_HXX_ + +//_______________________________________ +// my own includes + +#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ +#include <threadhelp/threadhelpbase.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XINTERFACE_HXX_ +#include <macros/xinterface.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XTYPEPROVIDER_HXX_ +#include <macros/xtypeprovider.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XSERVICEINFO_HXX_ +#include <macros/xserviceinfo.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +#ifndef __FRAMEWORK_STDTYPES_H_ +#include <stdtypes.h> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +//_______________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_TASK_XJOBEXECUTOR_HPP_ +#include <com/sun/star/task/XJobExecutor.hpp> +#endif + +//_______________________________________ +// other includes + +#ifndef _CPPUHELPER_WEAK_HXX_ +#include <cppuhelper/weak.hxx> +#endif + +#ifndef _RTL_USTRING_HXX_ +#include <rtl/ustring.hxx> +#endif + +//_______________________________________ +// namespace + +namespace framework{ + +//_______________________________________ +// public const + +//_______________________________________ +/** + @short implements a job executor, which can be triggered from any code + @descr It uses the given trigger event to locate any registered job service + inside the configuration and execute it. Of course it controls the + liftime of such jobs too. + */ +class JobExecutor : public css::lang::XTypeProvider + , public css::lang::XServiceInfo + , public css::task::XJobExecutor + , private ThreadHelpBase + , public ::cppu::OWeakObject +{ + //___________________________________ + // member + + private: + + /** reference to the uno service manager */ + css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; + + //___________________________________ + // native interface methods + + public: + + JobExecutor( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ); + virtual ~JobExecutor( ); + + //___________________________________ + // uno interface methods + + public: + + // XInterface, XTypeProvider, XServiceInfo + DECLARE_XINTERFACE + DECLARE_XTYPEPROVIDER + DECLARE_XSERVICEINFO + + // XJobExecutor + virtual void SAL_CALL trigger( const ::rtl::OUString& sEvent ) throw(css::uno::RuntimeException); +}; + +} // namespace framework + +#endif // __FRAMEWORK_JOBS_JOBEXECUTOR_HXX_ diff --git a/framework/inc/jobs/jobresult.hxx b/framework/inc/jobs/jobresult.hxx index 77b6eca6c5c3..bd650d4e5240 100644 --- a/framework/inc/jobs/jobresult.hxx +++ b/framework/inc/jobs/jobresult.hxx @@ -2,9 +2,9 @@ * * $RCSfile: jobresult.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: as $ $Date: 2002-10-11 13:41:08 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:48 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -84,22 +84,14 @@ //_______________________________________ // interface includes -#ifndef _COM_SUN_STAR_FRAME_FEATURESTATEEVENT_HPP_ -#include <com/sun/star/frame/FeatureStateEvent.hpp> +#ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_ +#include <com/sun/star/beans/NamedValue.hpp> #endif #ifndef _COM_SUN_STAR_FRAME_DISPATCHRESULTEVENT_HPP_ #include <com/sun/star/frame/DispatchResultEvent.hpp> #endif -#ifndef _COM_SUN_STAR_FRAME_XSTATUSLISTENER_HPP_ -#include <com/sun/star/frame/XStatusListener.hpp> -#endif - -#ifndef _COM_SUN_STAR_FRAME_XDISPATCHRESULTLISTENER_HPP_ -#include <com/sun/star/frame/XDispatchResultListener.hpp> -#endif - //_______________________________________ // other includes @@ -121,75 +113,88 @@ namespace framework{ @descr Such result instance transport all neccessarry data from the code place where the job was finished to the outside code, where e.g. listener must be notified. - - @see Job - @see com::sun::star::frame::ProtocolHandler */ class JobResult : private ThreadHelpBase { //___________________________________ // types - private: + public: - enum EEventType + /** + These enum values are used to build a flag mask of possible set + parts of an analyzed pure job execution result. + An user of this class can decide, if a member of us can be valid + or not. So it can indicate, if a job used the special part inside + his returned result protocol. + To be usable as flags - it must be values of set {0,1,2,4,8,16 ...}! + */ + enum EParts { - E_UNKNOWN , - E_FEATURESTATE , - E_DISPATCHRESULT , - E_BOTH + E_NOPART = 0, + E_ARGUMENTS = 1, + E_DEACTIVATE = 2, + E_DISPATCHRESULT = 4 }; + //___________________________________ + // member + private: - EEventType m_eEventType ; - css::frame::FeatureStateEvent m_aFeatureState ; + + /** hold the original pure result, which was given back by an + executed job + We analyze it and use it to set all our other members. + */ + css::uno::Any m_aPureResult; + + /** + an user of us must know, which (possible) parts of + a "pure result" was realy set by an executed job. + Means which other members of this class are valid. + This mask can be used to find it out. + */ + sal_uInt32 m_eParts; + + /** + a job can have persistent data + They are part of the pure result and will be used to + write it to the configuration. But that's part of any + user of us. We provide this information here only. + */ + css::uno::Sequence< css::beans::NamedValue > m_lArguments; + + /** + an executed job can force his deactivation + But we provide this information here only. + Doing so is part of any user of us. + */ + sal_Bool m_bDeactivate; + + /** + represent the part "DispatchResult" + It's a full filled event type, which was given + back by the executed job. Any user of us can send + it to his registered result listener directly. + */ css::frame::DispatchResultEvent m_aDispatchResult; + //___________________________________ + // native interface + public: - JobResult() - { - m_eEventType = E_UNKNOWN; - } - - JobResult( const css::frame::FeatureStateEvent& aState ) - { - m_eEventType = E_FEATURESTATE; - m_aFeatureState = aState; - } - - JobResult( const css::frame::DispatchResultEvent& aResult ) - { - m_eEventType = E_DISPATCHRESULT; - m_aDispatchResult = aResult; - } - - JobResult( const css::frame::FeatureStateEvent& aState , - const css::frame::DispatchResultEvent& aResult ) - { - m_eEventType = E_BOTH ; - m_aFeatureState = aState ; - m_aDispatchResult = aResult; - } - - void sendFeatureState( const ListenerHash& lListener ) const - { - /* TODO */ - LOG_WARNING("JobHandler::addStatusListener()", "not yet implemented") - } - - void sendDispatchResult( const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) const - { - if ( - (xListener.is()) && - ( - (m_eEventType==E_DISPATCHRESULT) || - (m_eEventType==E_BOTH ) - ) - ) - { - xListener->dispatchFinished(m_aDispatchResult); - } - } + + JobResult( ); + JobResult( const com::sun::star::uno::Any& aResult ); + JobResult( const JobResult& rCopy ); + virtual ~JobResult( ); + + void operator=( const JobResult& rCopy ); + + sal_Bool existPart ( sal_uInt32 eParts ) const; + css::uno::Sequence< css::beans::NamedValue > getArguments ( ) const; + sal_Bool getDeactivate ( ) const; + css::frame::DispatchResultEvent getDispatchResult( ) const; }; } // namespace framework diff --git a/framework/inc/jobs/joburl.hxx b/framework/inc/jobs/joburl.hxx index 7331b505a167..7413dbda8d28 100644 --- a/framework/inc/jobs/joburl.hxx +++ b/framework/inc/jobs/joburl.hxx @@ -2,9 +2,9 @@ * * $RCSfile: joburl.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: as $ $Date: 2002-10-11 13:41:09 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:48 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -111,7 +111,8 @@ namespace framework{ #define JOBURL_SERVICE_STR "service=" #define JOBURL_SERVICE_LEN 8 -#define JOBURL_PART_SEPERATOR ',' +#define JOBURL_PART_SEPERATOR ';' +#define JOBURL_PARTARGS_SEPERATOR ',' //_______________________________________ /** @@ -162,16 +163,39 @@ class JobURL : private ThreadHelpBase /** holds the service part of a job URL */ ::rtl::OUString m_sService; + /** holds the event arguments */ + ::rtl::OUString m_sEventArgs; + + /** holds the alias arguments */ + ::rtl::OUString m_sAliasArgs; + + /** holds the service arguments */ + ::rtl::OUString m_sServiceArgs; + //___________________________________ - // methods + // native interface public: - JobURL ( const ::rtl::OUString& sURL ); - sal_Bool isValid ( ) const; - sal_Bool getEvent ( ::rtl::OUString& sEvent ) const; - sal_Bool getAlias ( ::rtl::OUString& sAlias ) const; - sal_Bool getService( ::rtl::OUString& sService ) const; + JobURL ( const ::rtl::OUString& sURL ); + sal_Bool isValid ( ) const; + sal_Bool getEvent ( ::rtl::OUString& sEvent ) const; + sal_Bool getAlias ( ::rtl::OUString& sAlias ) const; + sal_Bool getService ( ::rtl::OUString& sService ) const; + sal_Bool getEventArgs ( ::rtl::OUString& sEventArgs ) const; + sal_Bool getAliasArgs ( ::rtl::OUString& sAliasArgs ) const; + sal_Bool getServiceArgs( ::rtl::OUString& sServiceArgs ) const; + + //___________________________________ + // private helper + + private: + + static sal_Bool implst_split( const ::rtl::OUString& sPart , + const sal_Char* pPartIdentifier , + sal_Int32 nPartLength , + ::rtl::OUString& rPartValue , + ::rtl::OUString& rPartArguments ); //___________________________________ // debug methods! @@ -182,11 +206,14 @@ class JobURL : private ThreadHelpBase static void impldbg_checkIt(); private: - static void impldbg_checkURL( const sal_Char* pURL , - sal_uInt32 eExpectedPart , - const sal_Char* pExpectedEvent , - const sal_Char* pExpectedAlias , - const sal_Char* pExpectedService ); + static void impldbg_checkURL( const sal_Char* pURL , + sal_uInt32 eExpectedPart , + const sal_Char* pExpectedEvent , + const sal_Char* pExpectedAlias , + const sal_Char* pExpectedService , + const sal_Char* pExpectedEventArgs , + const sal_Char* pExpectedAliasArgs , + const sal_Char* pExpectedServiceArgs ); ::rtl::OUString impldbg_toString() const; #endif // ENABLE_COMPONENT_SELF_CHECK diff --git a/framework/inc/properties.h b/framework/inc/properties.h new file mode 100644 index 000000000000..a21037d845fe --- /dev/null +++ b/framework/inc/properties.h @@ -0,0 +1,269 @@ +/************************************************************************* + * + * $RCSfile: properties.h,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:19:28 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __FRAMEWORK_PROPERTIES_H_ +#define __FRAMEWORK_PROPERTIES_H_ + +//_______________________________________________ +// includes + +#ifndef __FRAMEWORK_MACROS_GENERIC_HXX_ +#include <macros/generic.hxx> +#endif + +//_______________________________________________ +// namespace + +namespace framework{ + +//_______________________________________________ +/** properties for "Frame" class */ + +#define FRAME_PROPNAME_ASCII_DISPATCHRECORDERSUPPLIER "DispatchRecorderSupplier" +#define FRAME_PROPNAME_ASCII_ISBACKINGMODE "IsBackingMode" +#define FRAME_PROPNAME_ASCII_ISHIDDEN "IsHidden" +#define FRAME_PROPNAME_ASCII_TITLE "Title" + +#define FRAME_PROPNAME_DISPATCHRECORDERSUPPLIER DECLARE_ASCII(FRAME_PROPNAME_ASCII_DISPATCHRECORDERSUPPLIER) +#define FRAME_PROPNAME_ISBACKINGMODE DECLARE_ASCII(FRAME_PROPNAME_ASCII_ISBACKINGMODE ) +#define FRAME_PROPNAME_ISHIDDEN DECLARE_ASCII(FRAME_PROPNAME_ASCII_ISHIDDEN ) +#define FRAME_PROPNAME_TITLE DECLARE_ASCII(FRAME_PROPNAME_ASCII_TITLE ) + +// Please add new entries alphabetical sorted and correct all other handles! +// Start counting with 0, so it can be used as direct index into an array too. +// Don't forget updating of define FRAME_PROPCOUNT below!!! +#define FRAME_PROPHANDLE_DISPATCHRECORDERSUPPLIER 0 +#define FRAME_PROPHANDLE_ISBACKINGMODE 1 +#define FRAME_PROPHANDLE_ISHIDDEN 2 +#define FRAME_PROPHANDLE_TITLE 3 + +#define FRAME_PROPCOUNT 4 + +//_______________________________________________ +/** properties for "Desktop" class */ + +#define DESKTOP_PROPNAME_ASCII_ACTIVEFRAME "ActiveFrame" +#define DESKTOP_PROPNAME_ASCII_DISPATCHRECORDERSUPPLIER "DispatchRecorderSupplier" +#define DESKTOP_PROPNAME_ASCII_ISPLUGGED "IsPlugged" +#define DESKTOP_PROPNAME_ASCII_SUSPENDQUICKSTARTVETO "SuspendQuickstartVeto" +#define DESKTOP_PROPNAME_ASCII_TITLE "Title" + +#define DESKTOP_PROPNAME_ACTIVEFRAME DECLARE_ASCII(DESKTOP_PROPNAME_ASCII_ACTIVEFRAME ) +#define DESKTOP_PROPNAME_DISPATCHRECORDERSUPPLIER DECLARE_ASCII(DESKTOP_PROPNAME_ASCII_DISPATCHRECORDERSUPPLIER) +#define DESKTOP_PROPNAME_ISPLUGGED DECLARE_ASCII(DESKTOP_PROPNAME_ASCII_ISPLUGGED ) +#define DESKTOP_PROPNAME_SUSPENDQUICKSTARTVETO DECLARE_ASCII(DESKTOP_PROPNAME_ASCII_SUSPENDQUICKSTARTVETO ) +#define DESKTOP_PROPNAME_TITLE DECLARE_ASCII(DESKTOP_PROPNAME_ASCII_TITLE ) + +// Please add new entries alphabetical sorted and correct all other handles! +// Start counting with 0, so it can be used as direct index into an array too. +// Don't forget updating of define DESKTOP_PROPCOUNT below!!! +#define DESKTOP_PROPHANDLE_ACTIVEFRAME 0 +#define DESKTOP_PROPHANDLE_DISPATCHRECORDERSUPPLIER 1 +#define DESKTOP_PROPHANDLE_ISPLUGGED 2 +#define DESKTOP_PROPHANDLE_SUSPENDQUICKSTARTVETO 3 +#define DESKTOP_PROPHANDLE_TITLE 4 + +#define DESKTOP_PROPCOUNT 5 + +//_______________________________________________ +/** properties for "PathSettings" class */ + +#define PATHSETTINGS_PROPNAME_ASCII_ADDIN "Addin" +#define PATHSETTINGS_PROPNAME_ASCII_AUTOCORRECT "AutoCorrect" +#define PATHSETTINGS_PROPNAME_ASCII_AUTOTEXT "AutoText" +#define PATHSETTINGS_PROPNAME_ASCII_BACKUP "Backup" +#define PATHSETTINGS_PROPNAME_ASCII_BASIC "Basic" +#define PATHSETTINGS_PROPNAME_ASCII_BITMAP "Bitmap" +#define PATHSETTINGS_PROPNAME_ASCII_CONFIG "Config" +#define PATHSETTINGS_PROPNAME_ASCII_DICTIONARY "Dictionary" +#define PATHSETTINGS_PROPNAME_ASCII_FAVORITE "Favorite" +#define PATHSETTINGS_PROPNAME_ASCII_FILTER "Filter" +#define PATHSETTINGS_PROPNAME_ASCII_GALLERY "Gallery" +#define PATHSETTINGS_PROPNAME_ASCII_GRAPHIC "Graphic" +#define PATHSETTINGS_PROPNAME_ASCII_HELP "Help" +#define PATHSETTINGS_PROPNAME_ASCII_LINGUISTIC "Linguistic" +#define PATHSETTINGS_PROPNAME_ASCII_MODULE "Module" +#define PATHSETTINGS_PROPNAME_ASCII_PALETTE "Palette" +#define PATHSETTINGS_PROPNAME_ASCII_PLUGIN "Plugin" +#define PATHSETTINGS_PROPNAME_ASCII_STORAGE "Storage" +#define PATHSETTINGS_PROPNAME_ASCII_TEMP "Temp" +#define PATHSETTINGS_PROPNAME_ASCII_TEMPLATE "Template" +#define PATHSETTINGS_PROPNAME_ASCII_UICONFIG "UIConfig" +#define PATHSETTINGS_PROPNAME_ASCII_USERCONFIG "UserConfig" +#define PATHSETTINGS_PROPNAME_ASCII_USERDICTIONARY "UserDictionary" +#define PATHSETTINGS_PROPNAME_ASCII_WORK "Work" + +#define PATHSETTINGS_PROPNAME_ADDIN ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_ADDIN ) +#define PATHSETTINGS_PROPNAME_AUTOCORRECT ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_AUTOCORRECT ) +#define PATHSETTINGS_PROPNAME_AUTOTEXT ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_AUTOTEXT ) +#define PATHSETTINGS_PROPNAME_BACKUP ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_BACKUP ) +#define PATHSETTINGS_PROPNAME_BASIC ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_BASIC ) +#define PATHSETTINGS_PROPNAME_BITMAP ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_BITMAP ) +#define PATHSETTINGS_PROPNAME_CONFIG ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_CONFIG ) +#define PATHSETTINGS_PROPNAME_DICTIONARY ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_DICTIONARY ) +#define PATHSETTINGS_PROPNAME_FAVORITE ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_FAVORITE ) +#define PATHSETTINGS_PROPNAME_FILTER ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_FILTER ) +#define PATHSETTINGS_PROPNAME_GALLERY ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_GALLERY ) +#define PATHSETTINGS_PROPNAME_GRAPHIC ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_GRAPHIC ) +#define PATHSETTINGS_PROPNAME_HELP ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_HELP ) +#define PATHSETTINGS_PROPNAME_LINGUISTIC ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_LINGUISTIC ) +#define PATHSETTINGS_PROPNAME_MODULE ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_MODULE ) +#define PATHSETTINGS_PROPNAME_PALETTE ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_PALETTE ) +#define PATHSETTINGS_PROPNAME_PLUGIN ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_PLUGIN ) +#define PATHSETTINGS_PROPNAME_STORAGE ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_STORAGE ) +#define PATHSETTINGS_PROPNAME_TEMP ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_TEMP ) +#define PATHSETTINGS_PROPNAME_TEMPLATE ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_TEMPLATE ) +#define PATHSETTINGS_PROPNAME_UICONFIG ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_UICONFIG ) +#define PATHSETTINGS_PROPNAME_USERCONFIG ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_USERCONFIG ) +#define PATHSETTINGS_PROPNAME_USERDICTIONARY ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_USERDICTIONARY) +#define PATHSETTINGS_PROPNAME_WORK ::rtl::OUString::createFromAscii(PATHSETTINGS_PROPNAME_ASCII_WORK ) + +// Please add new entries alphabetical sorted and correct all other handles! +// Start counting with 0, so it can be used as direct index into an array too. +// Don't forget updating of define PATHSETTINGS_PROPCOUNT below!!! +#define PATHSETTINGS_PROPHANDLE_ADDIN 0 +#define PATHSETTINGS_PROPHANDLE_AUTOCORRECT 1 +#define PATHSETTINGS_PROPHANDLE_AUTOTEXT 2 +#define PATHSETTINGS_PROPHANDLE_BACKUP 3 +#define PATHSETTINGS_PROPHANDLE_BASIC 4 +#define PATHSETTINGS_PROPHANDLE_BITMAP 5 +#define PATHSETTINGS_PROPHANDLE_CONFIG 6 +#define PATHSETTINGS_PROPHANDLE_DICTIONARY 7 +#define PATHSETTINGS_PROPHANDLE_FAVORITE 8 +#define PATHSETTINGS_PROPHANDLE_FILTER 9 +#define PATHSETTINGS_PROPHANDLE_GALLERY 10 +#define PATHSETTINGS_PROPHANDLE_GRAPHIC 11 +#define PATHSETTINGS_PROPHANDLE_HELP 12 +#define PATHSETTINGS_PROPHANDLE_LINGUISTIC 13 +#define PATHSETTINGS_PROPHANDLE_MODULE 14 +#define PATHSETTINGS_PROPHANDLE_PALETTE 15 +#define PATHSETTINGS_PROPHANDLE_PLUGIN 16 +#define PATHSETTINGS_PROPHANDLE_STORAGE 17 +#define PATHSETTINGS_PROPHANDLE_TEMP 18 +#define PATHSETTINGS_PROPHANDLE_TEMPLATE 19 +#define PATHSETTINGS_PROPHANDLE_UICONFIG 20 +#define PATHSETTINGS_PROPHANDLE_USERCONFIG 21 +#define PATHSETTINGS_PROPHANDLE_USERDICTIONARY 22 +#define PATHSETTINGS_PROPHANDLE_WORK 23 + +#define PATHSETTINGS_PROPCOUNT 24 + +//_______________________________________________ +/** provides some helper methods to implement property sets. */ + +class PropHelper +{ + public: + + //___________________________________________ + + /** checks if given property will be changed by this settings. + * We compare the content of the given any values. If they are different we return TRUE - FALSE otherwhise. + * + * @param aCurrentValue contains the current value for this property + * @param aNewValue contains the new value for this property + * @param aOldValue returns the current value, in case somthing will be changed + * @param aChangedValue returns the new value, in case somthing will be changed + * + * @return <True/> if value of this property will be changed; <False/> otherwhise. + */ + + static sal_Bool willPropertyBeChanged( const css::uno::Any& aCurrentValue , + const css::uno::Any& aNewValue , + css::uno::Any& aOldValue , + css::uno::Any& aChangedValue ) + { + sal_Bool bChanged = sal_False; + + // clear return parameter to be shure, to put out only valid values ... + aOldValue.clear(); + aChangedValue.clear(); + + // if value change ... + bChanged = !(aCurrentValue==aNewValue); + if (bChanged) + { + // ... set information of change. + aOldValue = aCurrentValue; + aChangedValue = aNewValue ; + } + + return bChanged; + } + + //___________________________________________ + + /** calculates the count of items inside the given ascii array. + * + * @param pArray must point to an array of items from type sal_Char + * + * @return The count of items inside this array, calculated by knowing the size of sal_Char. + */ + + static sal_Int32 calculatePropArrayCount( const sal_Char* pArray[] ) + { + return (sal_Int32)(sizeof(pArray)/sizeof(sal_Char*)); + } +}; + +} // namespace framework + +#endif // #ifndef __FRAMEWORK_PROPERTIES_H_ diff --git a/framework/inc/recording/dispatchrecorder.hxx b/framework/inc/recording/dispatchrecorder.hxx index 0dd4c94d7b2b..3c526eaac894 100644 --- a/framework/inc/recording/dispatchrecorder.hxx +++ b/framework/inc/recording/dispatchrecorder.hxx @@ -2,6 +2,11 @@ #ifndef __FRAMEWORK_RECORDING_DISPATCHRECORDER_HXX_ #define __FRAMEWORK_RECORDING_DISPATCHRECORDER_HXX_ +/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble + with solaris headers ... +*/ +#include <vector> + // own includes #ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ #include <threadhelp/threadhelpbase.hxx> @@ -79,8 +84,6 @@ #include <cppuhelper/weak.hxx> #endif -#include <vector> - namespace framework{ typedef ::std::vector < com::sun::star::frame::DispatchStatement > DispatchStatementList; diff --git a/framework/inc/services.h b/framework/inc/services.h index fde83e129832..269d1caf1047 100644 --- a/framework/inc/services.h +++ b/framework/inc/services.h @@ -2,9 +2,9 @@ * * $RCSfile: services.h,v $ * - * $Revision: 1.15 $ + * $Revision: 1.16 $ * - * last change: $Author: as $ $Date: 2002-10-11 13:41:06 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:28 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -103,7 +103,7 @@ namespace framework{ #define SERVICENAME_ADMINPROVIDER DECLARE_ASCII("com.sun.star.configuration.AdministrationProvider" ) // describe cfg-provider service for sun webtop #define SERVICENAME_CFGUPDATEACCESS DECLARE_ASCII("com.sun.star.configuration.ConfigurationUpdateAccess") // provides read/write access to the configuration #define SERVICENAME_CFGREADACCESS DECLARE_ASCII("com.sun.star.configuration.ConfigurationAccess" ) // provides readonly access to the configuration -#define SERVICENAME_SOUNDHANDLER DECLARE_ASCII("com.sun.star.frame.ContentHandler" ) +#define SERVICENAME_CONTENTHANDLER DECLARE_ASCII("com.sun.star.frame.ContentHandler" ) #define SERVICENAME_CONTENTHANDLERFACTORY DECLARE_ASCII("com.sun.star.frame.ContentHandlerFactory" ) #define SERVICENAME_APPDISPATCHPROVIDER DECLARE_ASCII("com.sun.star.comp.sfx2.AppDispatchProvider" ) #define SERVICENAME_UCBCONTENTBROKER DECLARE_ASCII("com.sun.star.ucb.UniversalContentBroker" ) @@ -116,6 +116,7 @@ namespace framework{ #define SERVICENAME_PROTOCOLHANDLER DECLARE_ASCII("com.sun.star.frame.ProtocolHandler" ) #define SERVICENAME_SUBSTITUTEPATHVARIABLES DECLARE_ASCII("com.sun.star.util.PathSubstitution" ) #define SERVICENAME_PATHSETTINGS DECLARE_ASCII("com.sun.star.util.PathSettings" ) +#define SERVICENAME_DISPATCHHELPER DECLARE_ASCII("com.sun.star.frame.DispatchHelper" ) //_________________________________________________________________________________________________________________ // used implementationnames by framework @@ -145,7 +146,8 @@ namespace framework{ #define IMPLEMENTATIONNAME_UIINTERACTIONHANDLER DECLARE_ASCII("com.sun.star.comp.uui.UUIInteractionHandler" ) #define IMPLEMENTATIONNAME_SUBSTITUTEPATHVARIABLES DECLARE_ASCII("com.sun.star.comp.framework.PathSubstitution" ) #define IMPLEMENTATIONNAME_PATHSETTINGS DECLARE_ASCII("com.sun.star.comp.framework.PathSettings" ) -#define IMPLEMENTATIONNAME_JOBHANDLER DECLARE_ASCII("com.sun.star.comp.framework.JobHandler" ) +#define IMPLEMENTATIONNAME_JOBDISPATCH DECLARE_ASCII("com.sun.star.comp.framework.jobs.JobDispatch" ) +#define IMPLEMENTATIONNAME_DISPATCHHELPER DECLARE_ASCII("com.sun.star.comp.framework.services.DispatchHelper" ) } // namespace framework diff --git a/framework/inc/services/backingcomp.hxx b/framework/inc/services/backingcomp.hxx new file mode 100644 index 000000000000..43b3781127d2 --- /dev/null +++ b/framework/inc/services/backingcomp.hxx @@ -0,0 +1,278 @@ +/************************************************************************* + * + * $RCSfile: backingcomp.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:19:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __FRAMEWORK_SERVICES_BACKINGCOMP_HXX_ +#define __FRAMEWORK_SERVICES_BACKINGCOMP_HXX_ + +//__________________________________________ +// own includes + +#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ +#include <threadhelp/threadhelpbase.hxx> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +#ifndef __FRAMEWORK_STDTYPES_H_ +#include <stdtypes.h> +#endif + +//__________________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_LANG_XTYPEPROVIDER_HPP_ +#include <com/sun/star/lang/XTypeProvider.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_ +#include <com/sun/star/lang/XInitialization.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XSingleServiceFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_ +#include <com/sun/star/awt/XWindow.hpp> +#endif + +#ifndef _COM_SUN_STAR_AWT_XKEYLISTENER_HPP_ +#include <com/sun/star/awt/XKeyListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_FAME_XFRAME_HPP_ +#include <com/sun/star/frame/XFrame.hpp> +#endif + +#ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATORSUPPLIER_HPP_ +#include <com/sun/star/task/XStatusIndicatorSupplier.hpp> +#endif + +#ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATORFACTORY_HPP_ +#include <com/sun/star/task/XStatusIndicatorFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_DATATRANSFER_DND_XDROPTARGETELISTENER_HPP_ +#include <com/sun/star/datatransfer/dnd/XDropTargetListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XEVENTLISTENER_HPP_ +#include <com/sun/star/lang/XEventListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_ +#include <com/sun/star/lang/XComponent.hpp> +#endif + +//__________________________________________ +// other includes + +#ifndef _CPPUHELPER_WEAK_HXX_ +#include <cppuhelper/weak.hxx> +#endif + +#ifndef SVTOOLS_ASYNCLINK_HXX +#include <svtools/asynclink.hxx> +#endif + +//__________________________________________ +// definition + +namespace framework +{ + +//__________________________________________ +/** + implements the backing component. + + This component is a special one, which doesn't provide a controller + nor a model. It supports the following features: + - Drag & Drop + - Key Accelerators + - Simple Menu + - Progress Bar + - Background + */ +class BackingComp : public css::lang::XTypeProvider + , public css::lang::XServiceInfo + , public css::lang::XInitialization + , public css::task::XStatusIndicatorSupplier + , public css::frame::XController // => XComponent + , public css::awt::XKeyListener // => XEventListener + // attention! Must be the first base class to guarentee right initialize lock ... + , private ThreadHelpBase + , public ::cppu::OWeakObject +{ + //______________________________________ + // const + + /** static implementation name for instances of this class. */ + static const sal_Char* IMPLEMENTATIONNAME; + + /** static uno service name for instances of this class. */ + static const sal_Char* SERVICENAME; + + //______________________________________ + // member + + private: + + /** the global uno service manager. + Must be used to create own needed services. */ + css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; + + /** reference to the component window. */ + css::uno::Reference< css::awt::XWindow > m_xWindow; + + /** the owner frame of this component. */ + css::uno::Reference< css::frame::XFrame > m_xFrame; + + /** used to show a progress for loading documents. */ + css::uno::Reference< css::task::XStatusIndicatorFactory > m_xStatus; + + /** helper for drag&drop. */ + css::uno::Reference< css::datatransfer::dnd::XDropTargetListener > m_xDropTargetListener; + + /** used for asynchronous callbacks within the main thread, to + unbind e.g. key event or other broadcaster from destroying of the window. :-( */ + ::svtools::AsynchronLink m_aAsyncCallback; + + /** queue of outstanding asynchronous URLs for dispatch. */ + OUStringQueue m_lAsyncQueue; + + //______________________________________ + // interface + + public: + + BackingComp( const css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR ); + virtual ~BackingComp( ); + + // XInterface + virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) throw(css::uno::RuntimeException); + virtual void SAL_CALL acquire ( ) throw( ); + virtual void SAL_CALL release ( ) throw( ); + + // XTypeProvide + virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes () throw(css::uno::RuntimeException); + virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(css::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName ( ) throw(css::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService ( const ::rtl::OUString& sServiceName ) throw(css::uno::RuntimeException); + virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(css::uno::RuntimeException); + + // XInitialization + virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& lArgs ) throw(css::uno::Exception, css::uno::RuntimeException); + + // XStatusIndicatorSupplier + virtual css::uno::Reference< css::task::XStatusIndicator > SAL_CALL getStatusIndicator() throw(css::uno::RuntimeException); + + // XController + virtual void SAL_CALL attachFrame ( const css::uno::Reference< css::frame::XFrame >& xFrame ) throw(css::uno::RuntimeException); + virtual sal_Bool SAL_CALL attachModel ( const css::uno::Reference< css::frame::XModel >& xModel ) throw(css::uno::RuntimeException); + virtual sal_Bool SAL_CALL suspend ( sal_Bool bSuspend ) throw(css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getViewData ( ) throw(css::uno::RuntimeException); + virtual void SAL_CALL restoreViewData( const css::uno::Any& aData ) throw(css::uno::RuntimeException); + virtual css::uno::Reference< css::frame::XModel > SAL_CALL getModel ( ) throw(css::uno::RuntimeException); + virtual css::uno::Reference< css::frame::XFrame > SAL_CALL getFrame ( ) throw(css::uno::RuntimeException); + + // XKeyListener + virtual void SAL_CALL keyPressed ( const css::awt::KeyEvent& aEvent ) throw(css::uno::RuntimeException); + virtual void SAL_CALL keyReleased( const css::awt::KeyEvent& aEvent ) throw(css::uno::RuntimeException); + + // XEventListener + virtual void SAL_CALL disposing( const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException); + + // XComponent + virtual void SAL_CALL dispose ( ) throw(css::uno::RuntimeException); + virtual void SAL_CALL addEventListener ( const css::uno::Reference< css::lang::XEventListener >& xListener ) throw(css::uno::RuntimeException); + virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) throw(css::uno::RuntimeException); + + //______________________________________ + // helper + + public: + + static css::uno::Sequence< ::rtl::OUString > SAL_CALL impl_getStaticSupportedServiceNames( ); + static ::rtl::OUString SAL_CALL impl_getStaticImplementationName ( ); + static css::uno::Reference< css::uno::XInterface > SAL_CALL impl_createInstance ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ) throw( css::uno::Exception ); + static css::uno::Reference< css::lang::XSingleServiceFactory > SAL_CALL impl_createFactory ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ); + + private: + + void impl_resizeStatusBar(); + DECL_LINK( impl_asyncCallback, void* ); +}; + +} // namespace framework + +#endif // __FRAMEWORK_SERVICES_BACKINGCOMP_HXX_ diff --git a/framework/inc/services/desktop.hxx b/framework/inc/services/desktop.hxx index 5c4d1b72767c..6213bd44f7cc 100644 --- a/framework/inc/services/desktop.hxx +++ b/framework/inc/services/desktop.hxx @@ -2,9 +2,9 @@ * * $RCSfile: desktop.hxx,v $ * - * $Revision: 1.17 $ + * $Revision: 1.18 $ * - * last change: $Author: as $ $Date: 2002-05-23 12:50:29 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:51 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -194,6 +194,10 @@ #include <com/sun/star/task/XInteractionHandler.hpp> #endif +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHRECORDERSUPPLIER_HPP_ +#include <com/sun/star/frame/XDispatchRecorderSupplier.hpp> +#endif + //_________________________________________________________________________________________________________________ // other includes //_________________________________________________________________________________________________________________ @@ -388,10 +392,6 @@ class Desktop : // interfaces private: css::uno::Reference< css::lang::XComponent > impl_getFrameComponent ( const css::uno::Reference< css::frame::XFrame >& xFrame ) const; - sal_Bool impl_tryToChangeProperty ( sal_Bool bProperty , - const css::uno::Any& aNewValue , - css::uno::Any& aOldValue , - css::uno::Any& aConvertedValue ) throw( css::lang::IllegalArgumentException ); static const css::uno::Sequence< css::beans::Property > impl_getStaticPropertyDescriptor( ); void impl_sendQueryTerminationEvent ( ) throw( css::frame::TerminationVetoException ); void impl_sendNotifyTerminationEvent ( ); @@ -437,6 +437,8 @@ class Desktop : // interfaces sal_Bool m_bSuspendQuickstartVeto ; /// don't ask quickstart for a veto SvtCommandOptions m_aCommandOptions ; /// ref counted class to support disabling commands defined by configuration file ::rtl::OUString m_sName ; + ::rtl::OUString m_sTitle ; + css::uno::Reference< css::frame::XDispatchRecorderSupplier > m_xDispatchRecorderSupplier ; }; // class Desktop diff --git a/framework/inc/services/dispatchhelper.hxx b/framework/inc/services/dispatchhelper.hxx new file mode 100644 index 000000000000..9656e7912d43 --- /dev/null +++ b/framework/inc/services/dispatchhelper.hxx @@ -0,0 +1,213 @@ +/************************************************************************* + * + * $RCSfile: dispatchhelper.hxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:19:51 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef __FRAMEWORK_SERVICES_DISPATCHHELPER_HXX_ +#define __FRAMEWORK_SERVICES_DISPATCHHELPER_HXX_ + +//_______________________________________________ +// my own includes + +#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ +#include <threadhelp/threadhelpbase.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_GENERIC_HXX_ +#include <macros/generic.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XINTERFACE_HXX_ +#include <macros/xinterface.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XTYPEPROVIDER_HXX_ +#include <macros/xtypeprovider.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_XSERVICEINFO_HXX_ +#include <macros/xserviceinfo.hxx> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +//_______________________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHHELPER_HPP_ +#include <com/sun/star/frame/XDispatchHelper.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHRESULTLISTENER_HPP_ +#include <com/sun/star/frame/XDispatchResultListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_DISPATCHRESULTEVENT_HPP_ +#include <com/sun/star/frame/DispatchResultEvent.hpp> +#endif + +//_______________________________________________ +// other includes + +#ifndef _CPPUHELPER_WEAK_HXX_ +#include <cppuhelper/weak.hxx> +#endif + +#ifndef _OSL_CONDITN_HXX_ +#include <osl/conditn.hxx> +#endif + +//_______________________________________________ +// namespace + +namespace framework{ + +//_______________________________________________ +// exported const + +//_______________________________________________ +// exported definitions + +/** + @short implements an easy way for dispatches + @descr Dispatches are splitted into different parts: + - parsing of the URL + - searching for a dispatcgh object + - dispatching of the URL + All these steps are done inside one method call here. +*/ + +class DispatchHelper : public css::lang::XTypeProvider + , public css::lang::XServiceInfo + , public css::frame::XDispatchHelper + , public css::frame::XDispatchResultListener // => XEventListener + , public ThreadHelpBase // must be the first base class! + , public ::cppu::OWeakObject // => XInterface, XWeak +{ + + //------------------------------------------- + // member + + private: + + /** global uno service manager. + Can be used to create own needed services. */ + css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; + + /** used to wait for asynchronous listener callbacks. */ + ::osl::Condition m_aBlock; + + css::uno::Any m_aResult; + + css::uno::Reference< css::uno::XInterface > m_xBroadcaster; + + //------------------------------------------- + // interface + + public: + + //--------------------------------------- + // ctor/dtor + + DispatchHelper( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ); + virtual ~DispatchHelper( ); + + //--------------------------------------- + // XInterface, XTypeProvider, XServiceInfo + + DECLARE_XINTERFACE + DECLARE_XTYPEPROVIDER + DECLARE_XSERVICEINFO + + //--------------------------------------- + // XDispatchHelper + virtual css::uno::Any SAL_CALL executeDispatch( + const css::uno::Reference< css::frame::XDispatchProvider >& xDispatchProvider , + const ::rtl::OUString& sURL , + const ::rtl::OUString& sTargetFrameName , + sal_Int32 nSearchFlags , + const css::uno::Sequence< css::beans::PropertyValue >& lArguments ) + throw(css::uno::RuntimeException); + + //--------------------------------------- + // XDispatchResultListener + virtual void SAL_CALL dispatchFinished( + const css::frame::DispatchResultEvent& aResult ) + throw(css::uno::RuntimeException); + + //--------------------------------------- + // XEventListener + virtual void SAL_CALL disposing( + const css::lang::EventObject& aEvent ) + throw(css::uno::RuntimeException); +}; + +} + +#endif diff --git a/framework/inc/services/frame.hxx b/framework/inc/services/frame.hxx index 65d06439fd90..9863d37d2d81 100644 --- a/framework/inc/services/frame.hxx +++ b/framework/inc/services/frame.hxx @@ -2,9 +2,9 @@ * * $RCSfile: frame.hxx,v $ * - * $Revision: 1.26 $ + * $Revision: 1.27 $ * - * last change: $Author: mba $ $Date: 2002-10-07 10:19:26 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:51 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -138,10 +138,6 @@ #include <com/sun/star/frame/XDispatchRecorderSupplier.hpp> #endif -#ifndef _DRAFTS_COM_SUN_STAR_FRAME_XDISPATCHINFORMATIONPROVIDER_HPP_ -#include <drafts/com/sun/star/frame/XDispatchInformationProvider.hpp> -#endif - #ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDERINTERCEPTION_HPP_ #include <com/sun/star/frame/XDispatchProviderInterception.hpp> #endif @@ -298,7 +294,6 @@ class Frame : // interfaces public css::lang::XServiceInfo , public css::frame::XFramesSupplier , // => XFrame => XComponent public css::frame::XDispatchProvider , - public dcss::frame::XDispatchInformationProvider , public css::frame::XDispatchProviderInterception , public css::task::XStatusIndicatorFactory , public css::awt::XWindowListener , // => XEventListener @@ -409,7 +404,7 @@ class Frame : // interfaces virtual void SAL_CALL windowResized ( const css::awt::WindowEvent& aEvent ) throw( css::uno::RuntimeException ); virtual void SAL_CALL windowMoved ( const css::awt::WindowEvent& aEvent ) throw( css::uno::RuntimeException ) {}; virtual void SAL_CALL windowShown ( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException ); - virtual void SAL_CALL windowHidden ( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException ) {}; + virtual void SAL_CALL windowHidden ( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException ); //--------------------------------------------------------------------------------------------------------- // XFocusListener @@ -436,14 +431,6 @@ class Frame : // interfaces virtual void SAL_CALL disposing ( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException ); //--------------------------------------------------------------------------------------------------------- - // XDispatchInformationProvider - //--------------------------------------------------------------------------------------------------------- - virtual ::rtl::OUString SAL_CALL queryDescription ( const ::rtl::OUString& sURL ) throw( css::uno::RuntimeException ); - virtual void SAL_CALL queryDescriptions ( const css::uno::Sequence< ::rtl::OUString >& lURLs , - css::uno::Sequence< ::rtl::OUString >& lDescriptions ) throw( css::uno::RuntimeException ); - virtual css::uno::Sequence< dcss::frame::DispatchInformation > SAL_CALL getConfigurableDispatchInformation( ) throw( css::uno::RuntimeException ); - - //--------------------------------------------------------------------------------------------------------- // XActionLockable //--------------------------------------------------------------------------------------------------------- virtual sal_Bool SAL_CALL isActionLocked ( ) throw( css::uno::RuntimeException ); @@ -510,18 +497,11 @@ class Frame : // interfaces DECL_LINK( implts_windowClosing, void* ); // non threadsafe - void CheckMenuCloser_Impl(); + void impl_checkMenuCloser ( ); + void impl_setCloser ( const css::uno::Reference< css::frame::XFrame >& xFrame , + sal_Bool bState ); void impl_disposeContainerWindow ( css::uno::Reference< css::awt::XWindow >& xWindow ); - sal_Bool impl_tryToChangeProperty ( const ::rtl::OUString& sProperty , - const css::uno::Any& aValue , - css::uno::Any& aOldValue , - css::uno::Any& aConvertedValue ) throw( css::lang::IllegalArgumentException ); - sal_Bool impl_tryToChangeProperty ( const css::uno::Reference< css::frame::XDispatchRecorderSupplier >& xProperty , - const css::uno::Any& aValue , - css::uno::Any& aOldValue , - css::uno::Any& aConvertedValue ) throw( css::lang::IllegalArgumentException ); static const css::uno::Sequence< css::beans::Property > impl_getStaticPropertyDescriptor( ); - static void impl_filterSpecialTargets ( ::rtl::OUString& sTarget ); //------------------------------------------------------------------------------------------------------------- // debug methods @@ -596,6 +576,9 @@ class Frame : // interfaces SvtCommandOptions m_aCommandOptions ; /// ref counted class to support disabling commands defined by configuration file sal_Bool m_bSelfClose ; /// in case of CloseVetoException on method close() wqs thrown by ourself - we must close ourself later if no internal processes are running ::vcl::EventPoster m_aPoster ; + sal_Bool m_bIsHidden ; /// indicates, if this frame is used in hidden mode or not + static css::uno::WeakReference< css::frame::XFrame > m_xCloserFrame ; /// holds the only frame, which must show the special closer menu item (can be NULL!) + sal_Bool m_bIsBackingMode ; /// indicates, that the current component must be the backing component (will be set from outside and reseted inside setComponent() hardly!) protected: diff --git a/framework/inc/services/pathsettings.hxx b/framework/inc/services/pathsettings.hxx index e565e9c349c8..aea3b8438c48 100644 --- a/framework/inc/services/pathsettings.hxx +++ b/framework/inc/services/pathsettings.hxx @@ -2,9 +2,9 @@ * * $RCSfile: pathsettings.hxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: cd $ $Date: 2002-08-20 10:10:29 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -90,6 +90,14 @@ #include <stdtypes.h> #endif +#ifndef __FRAMEWORK_PROPERTIES_H_ +#include <properties.h> +#endif + +#ifndef __FRAMEWORK_STDTYPES_H_ +#include <stdtypes.h> +#endif + //_________________________________________________________________________________________________________________ // interface includes //_________________________________________________________________________________________________________________ @@ -126,191 +134,204 @@ #include <unotools/configitem.hxx> #endif -#ifndef _LINK_HXX -#include <tools/link.hxx> -#endif - - namespace framework { -struct PathSettingsNotify +struct PathInfo { - com::sun::star::uno::Sequence< rtl::OUString > aPathSettingsChanged; + ::rtl::OUString sPath ; + ::rtl::OUString sValue ; + sal_Bool bReadOnly ; + sal_Bool bMultiPath ; }; -struct PathSettingsData +/** implements the data container for the path settings service. + It can be used to read/write the right config items; (re-)substitute + her path values; check her readonly states and to provide an easy and fast + access by using an ID instead of a name. */ +class PathSettingsCfg : protected ThreadHelpBase + , public utl::ConfigItem { - // ID's for the supported pathes. Must be sorted by name!! - enum PathSettingsId - { - PS_ADDINPATH, - PS_AUTOCORRECTPATH, - PS_AUTOTEXTPATH, - PS_BACKUPPATH, - PS_BASICPATH, - PS_BITMAPPATH, - PS_CONFIGPATH, - PS_DICTIONARYPATH, - PS_FAVORITESPATH, - PS_FILTERPATH, - PS_GALLERYPATH, - PS_GRAPHICPATH, - PS_HELPPATH, - PS_LINGUISTICPATH, - PS_MODULEPATH, - PS_PALETTEPATH, - PS_PLUGINPATH, - PS_STORAGEPATH, - PS_TEMPPATH, - PS_TEMPLATEPATH, - PS_UICONFIGPATH, - PS_USERCONFIGPATH, - PS_USERDICTIONARYPATH, - PS_WORKPATH, - PS_COUNT - }; - - void SetValue( PathSettingsId nId, rtl::OUString& aValue ); - const rtl::OUString& GetValue( PathSettingsId nId ) const; - - // Strings for all supported pathes - ::rtl::OUString m_aAddinPath; - ::rtl::OUString m_aAutoCorrectPath; - ::rtl::OUString m_aAutoTextPath; - ::rtl::OUString m_aBackupPath; - ::rtl::OUString m_aBasicPath; - ::rtl::OUString m_aBitmapPath; - ::rtl::OUString m_aConfigPath; - ::rtl::OUString m_aDictionaryPath; - ::rtl::OUString m_aFavoritesPath; - ::rtl::OUString m_aFilterPath; - ::rtl::OUString m_aGalleryPath; - ::rtl::OUString m_aGraphicPath; - ::rtl::OUString m_aHelpPath; - ::rtl::OUString m_aLinguisticPath; - ::rtl::OUString m_aModulePath; - ::rtl::OUString m_aPalettePath; - ::rtl::OUString m_aPluginPath; - ::rtl::OUString m_aStoragePath; - ::rtl::OUString m_aTempPath; - ::rtl::OUString m_aTemplatePath; - ::rtl::OUString m_aUIConfigPath; - ::rtl::OUString m_aUserConfigPath; - ::rtl::OUString m_aUserDictionaryPath; - ::rtl::OUString m_aWorkPath; - - ::rtl::OUString m_aEmptyStr; -}; + // ______________________________________ + // const -class PathSettings; -class PathSettings_Impl : public utl::ConfigItem -{ - friend class PathSettings; + protected: + + enum EPropHandle + { + E_ADDIN = PATHSETTINGS_PROPHANDLE_ADDIN , + E_AUTOCORRECT = PATHSETTINGS_PROPHANDLE_AUTOCORRECT , + E_AUTOTEXT = PATHSETTINGS_PROPHANDLE_AUTOTEXT , + E_BACKUP = PATHSETTINGS_PROPHANDLE_BACKUP , + E_BASIC = PATHSETTINGS_PROPHANDLE_BASIC , + E_BITMAP = PATHSETTINGS_PROPHANDLE_BITMAP , + E_CONFIG = PATHSETTINGS_PROPHANDLE_CONFIG , + E_DICTIONARY = PATHSETTINGS_PROPHANDLE_DICTIONARY , + E_FAVORITE = PATHSETTINGS_PROPHANDLE_FAVORITE , + E_FILTER = PATHSETTINGS_PROPHANDLE_FILTER , + E_GALLERY = PATHSETTINGS_PROPHANDLE_GALLERY , + E_GRAPHIC = PATHSETTINGS_PROPHANDLE_GRAPHIC , + E_HELP = PATHSETTINGS_PROPHANDLE_HELP , + E_LINGUISTIC = PATHSETTINGS_PROPHANDLE_LINGUISTIC , + E_MODULE = PATHSETTINGS_PROPHANDLE_MODULE , + E_PALETTE = PATHSETTINGS_PROPHANDLE_PALETTE , + E_PLUGIN = PATHSETTINGS_PROPHANDLE_PLUGIN , + E_STORAGE = PATHSETTINGS_PROPHANDLE_STORAGE , + E_TEMP = PATHSETTINGS_PROPHANDLE_TEMP , + E_TEMPLATE = PATHSETTINGS_PROPHANDLE_TEMPLATE , + E_UICONFIG = PATHSETTINGS_PROPHANDLE_UICONFIG , + E_USERCONFIG = PATHSETTINGS_PROPHANDLE_USERCONFIG , + E_USERDICTIONARY= PATHSETTINGS_PROPHANDLE_USERDICTIONARY, + E_WORK = PATHSETTINGS_PROPHANDLE_WORK + }; + + static const ::rtl::OUString PropNames[]; + static const css::beans::Property Properties[]; + + // ______________________________________ + // member + + private: + + /** list of all supported path variables. + Correspond to the defined lists of names/handles of static class PathSettingsPropHelp. + see file "properties.h" for further informations. */ + PathInfo m_lPathes[PATHSETTINGS_PROPCOUNT]; + + /** is used to map path names faster to her corresponding ID. */ + NameToHandleHash m_lIDMap; + + /** helper needed to (re-)substitute all internal save path values. */ + css::uno::Reference< css::util::XStringSubstitution > m_xSubstitution; + + // ______________________________________ + // interface public: - PathSettings_Impl( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& xSMgr, const Link& aNotifyLink ); - virtual ~PathSettings_Impl(); - /** is called from the ConfigManager before application ends or from the - PropertyChangeListener if the sub tree broadcasts changes. */ - virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); + /** initialize this instance and read all needed config values immediatly. + The given uno manager is used to create own needed helper services. */ + PathSettingsCfg( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ); - sal_Bool ReadConfigurationData( PathSettingsData& rSettingsData, const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); - sal_Bool WriteConfigurationData( const PathSettingsData& rSettingsData, const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); - sal_Bool CheckAndReplaceNewPathValue( PathSettingsData::PathSettingsId nId, rtl::OUString& aNewPathValue ); + /** destroy this instance and free all used memory. + Further it write all changed items back to the configguration, if it was not already done. */ + virtual ~PathSettingsCfg(); - int GetHandleFromPropertyName( const rtl::OUString& aPropertyName ); + /** is called from the ConfigManager before application ends or from the + PropertyChangeListener if the sub tree broadcasts changes. + We have to update the specified config items and actualize our cache. */ + virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& lPropertyNames ); + + /** returns the path value for the given path handle. + It returns an empty string for invalid calls. */ + ::rtl::OUString getPath( EPropHandle nID ) const; + + /** set the new path value for the given path handle. + Invalid calls will be ignored and do nothing. */ + void setPath( EPropHandle nID , + const ::rtl::OUString& sValue ); + + /** returns the readonly state for theiven path handle. + It returns false as default and answer for invalid calls! */ + sal_Bool isReadOnly( EPropHandle nID ) const; + + /** some of our pathes are multi pathes. + They contain a list of values instead of one string only. + This method returns true, if the given handle match to a + multi path (they are well known and fix!); false if not. */ + sal_Bool isMultiPath( EPropHandle nID ) const; + + /** returns a descriptor for all path properties. + It contains against some fix informations some dynamic ones too (e.g. readonly states). + But note: This method can return valid results only, if all neccessary data was readed + before from the configuration! */ + const css::uno::Sequence< css::beans::Property > getPropertyDescriptor() const; + + /** map given path name to it's corresponding ID. + But the out parameter is set to a valid enum value only in case + mapping was successfully. If method returns false - rID will be undefined! + Using of such "invalid" ID can produce crashes ... */ + sal_Bool mapName2Handle( const ::rtl::OUString& sName , + EPropHandle& rID ) const; + + /** it checks, if the given path value seams to be a valid URL or system path. + To do it right it must be called with an information about the path type (single/multi path)! */ + sal_Bool isValidValue( const ::rtl::OUString& sValue , + sal_Bool bMultiPath ) const; + + /** it prepares the given path for saving. + Doing so the path value must be checked and substituted. + Further this method must know the path type (single/multi path) */ + sal_Bool checkAndSubstituteValue( ::rtl::OUString& sValue , + sal_Bool bMultiPath ) const; + + // ______________________________________ + // helper private: - sal_Bool CheckPath( PathSettingsData::PathSettingsId nId, const rtl::OUString& aNewPathValue ); - - class PropToHandleHashMap : public ::std::hash_map< ::rtl::OUString, - PathSettingsData::PathSettingsId, - OUStringHashCode, - ::std::equal_to< ::rtl::OUString > > - { - public: - inline void free() - { - PropToHandleHashMap().swap( *this ); - } - }; - Link m_aListenerNotify ; - PropToHandleHashMap m_aPropNameToHandleMap ; - com::sun::star::uno::Reference< com::sun::star::util::XStringSubstitution > m_xPathVariableSubstitution ; - com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > m_xFactory ; + /** read the given list of path entries from the configuration and update + all internal structures. And additional parameter "bSearchID" can be used + to optimize this method and disable mapping of path names to her corresponding ID. + If it's set to "FALSE" ... the method require that the array position of a path name + entry inside "lNames" is equal to it's property handle! */ + void impl_read( const css::uno::Sequence< ::rtl::OUString >& lNames , + sal_Bool bSearchID ); }; - -class PathSettings : // interfaces - public css::lang::XTypeProvider , - public css::lang::XServiceInfo , - // base classes - // Order is neccessary for right initialization! - private ThreadHelpBase , - public ::cppu::OBroadcastHelper , - public ::cppu::OPropertySetHelper , - public ::cppu::OWeakObject +class PathSettings : public css::lang::XTypeProvider , + public css::lang::XServiceInfo , + // base classes + // Order is neccessary for right initialization! + private PathSettingsCfg , + public ::cppu::OBroadcastHelper , + public ::cppu::OPropertySetHelper , // => XPropertySet / XFastPropertySet / XMultiPropertySet + public ::cppu::OWeakObject // => XWeak, XInterface { - friend class PathSettings_Impl; + // ___________________________________________ + // member + + private: + + /** reference to factory, which has create this instance. */ + css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; + + // ___________________________________________ + // interface - //------------------------------------------------------------------------------------------------------------- - // public methods - //------------------------------------------------------------------------------------------------------------- public: - PathSettings( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory ); - virtual ~PathSettings( ); - // XInterface, XTypeProvider, XServiceInfo + /** initialize a new instance of this class. + Attention: It's neccessary for right function of this class, that the order of base + classes is the right one. Because we transfer information from one base to another + during this ctor runs! */ + PathSettings( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ); + + /** free all used ressources ... if it was not already done. */ + virtual ~PathSettings(); + + /** declaration of XInterface, XTypeProvider, XServiceInfo */ DECLARE_XINTERFACE DECLARE_XTYPEPROVIDER DECLARE_XSERVICEINFO + // ___________________________________________ + // helper - //------------------------------------------------------------------------------------------------------------- - // protected methods - //------------------------------------------------------------------------------------------------------------- - protected: + private: // OPropertySetHelper virtual sal_Bool SAL_CALL convertFastPropertyValue ( css::uno::Any& aConvertedValue , css::uno::Any& aOldValue , sal_Int32 nHandle , - const css::uno::Any& aValue ) - throw( css::lang::IllegalArgumentException ); - + const css::uno::Any& aValue ) throw(css::lang::IllegalArgumentException); virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle , - const css::uno::Any& aValue ) - throw( css::uno::Exception ); - + const css::uno::Any& aValue ) throw(css::uno::Exception); virtual void SAL_CALL getFastPropertyValue ( css::uno::Any& aValue , sal_Int32 nHandle ) const; virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper ( ); + virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo ( ) throw(::com::sun::star::uno::RuntimeException); - virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() - throw (::com::sun::star::uno::RuntimeException); - - DECL_LINK( implts_ConfigurationNotify, PathSettingsNotify* ); - - - //------------------------------------------------------------------------------------------------------------- - // private methods - //------------------------------------------------------------------------------------------------------------- - private: - sal_Bool impl_tryToChangeProperty ( rtl::OUString sCurrentValue , - const css::uno::Any& aNewValue , - css::uno::Any& aOldValue , - css::uno::Any& aConvertedValue ) - throw( css::lang::IllegalArgumentException ); - - static const css::uno::Sequence< css::beans::Property > impl_getStaticPropertyDescriptor(); - - // Members - css::uno::Reference< css::lang::XMultiServiceFactory > m_xFactory ; /// reference to factory, which has create this instance - PathSettings_Impl m_aImpl ; - PathSettingsData m_aPathSettingsData ; }; } // namespace framework diff --git a/framework/inc/services/substitutepathvars.hxx b/framework/inc/services/substitutepathvars.hxx index 1d9b797a861e..d55f04785d47 100644 --- a/framework/inc/services/substitutepathvars.hxx +++ b/framework/inc/services/substitutepathvars.hxx @@ -2,9 +2,9 @@ * * $RCSfile: substitutepathvars.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: hr $ $Date: 2002-09-04 16:58:39 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:54 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,6 +62,13 @@ #ifndef __FRAMEWORK_SERVICES_SUBSTPATHVARS_HXX_ #define __FRAMEWORK_SERVICES_SUBSTPATHVARS_HXX_ +/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble + with solaris headers ... +*/ +#include <vector> +#include <list> +#include <hash_map> + //_________________________________________________________________________________________________________________ // my own includes //_________________________________________________________________________________________________________________ @@ -138,11 +145,6 @@ #include <tools/lang.hxx> #endif -#include <vector> -#include <list> -#include <hash_map> - - namespace framework { @@ -285,7 +287,7 @@ struct ReSubstFixedVarOrder sal_Int32 nVarValueLength; PreDefVariable eVariable; - bool operator< ( const ReSubstFixedVarOrder& aFixedVarOrder ) const + bool ReSubstFixedVarOrder::operator< ( const ReSubstFixedVarOrder& aFixedVarOrder ) const { // Reverse operator< to have high to low ordering return ( nVarValueLength > aFixedVarOrder.nVarValueLength ); @@ -297,7 +299,7 @@ struct ReSubstUserVarOrder sal_Int32 nVarValueLength; rtl::OUString aVarName; - bool operator< ( const ReSubstUserVarOrder& aUserVarOrder ) const + bool ReSubstUserVarOrder::operator< ( const ReSubstUserVarOrder& aUserVarOrder ) const { // Reverse operator< to have high to low ordering return ( nVarValueLength > aUserVarOrder.nVarValueLength ); diff --git a/framework/inc/stdtypes.h b/framework/inc/stdtypes.h index 0766d2f7a2bd..a6927a2e582d 100644 --- a/framework/inc/stdtypes.h +++ b/framework/inc/stdtypes.h @@ -2,9 +2,9 @@ * * $RCSfile: stdtypes.h,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: as $ $Date: 2002-05-02 11:37:22 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:28 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,6 +62,9 @@ #ifndef __FRAMEWORK_STDTYPES_H_ #define __FRAMEWORK_STDTYPES_H_ +#include <vector> +#include <queue> + //_________________________________________________________________________________________________________________ // own includes //_________________________________________________________________________________________________________________ @@ -130,6 +133,15 @@ class OUStringList : public ::std::vector< ::rtl::OUString > //_________________________________________________________________________________________________________________ /** + Basic string queue based on a std::queue() + It implements some additional funtionality which can be usefull but + is missing at the normal std implementation. +*/ +typedef ::std::queue< ::rtl::OUString > OUStringQueue; + +//_________________________________________________________________________________________________________________ + +/** Basic hash based on a std::hash_map() which provides key=[OUString] and value=[template type] pairs It implements some additional funtionality which can be usefull but is missing at the normal hash implementation. @@ -152,6 +164,15 @@ class BaseHash : public ::std::hash_map< ::rtl::OUString , //_________________________________________________________________________________________________________________ /** + It can be used to map names (e.g. of properties) to her corresponding handles. + Our helper class OPropertySetHelper works optimized with handles but sometimes we have only a property name. + Mapping between these two parts of a property should be done in the fastest way :-) +*/ +typedef BaseHash< sal_Int32 > NameToHandleHash; + +//_________________________________________________________________________________________________________________ + +/** Sometimes we need this template to implement listener container ... and we need it at different positions ... So it's better to declare it one times only! diff --git a/framework/inc/targets.h b/framework/inc/targets.h index cc6be39e4ec9..bdde35e821b7 100644 --- a/framework/inc/targets.h +++ b/framework/inc/targets.h @@ -2,9 +2,9 @@ * * $RCSfile: targets.h,v $ * - * $Revision: 1.6 $ + * $Revision: 1.7 $ * - * last change: $Author: as $ $Date: 2002-08-13 12:21:51 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:19:28 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -80,14 +80,25 @@ namespace framework{ // Values for special frame search ... sTargetFrameName of findFrame() or queryDispatch() or loadComponentFromURL() //_________________________________________________________________________________________________________________ -#define SPECIALTARGET_SELF DECLARE_ASCII("_self" ) // The frame himself is searched. -#define SPECIALTARGET_PARENT DECLARE_ASCII("_parent" ) // The direct parent frame is searched. -#define SPECIALTARGET_TOP DECLARE_ASCII("_top" ) // Search at ouer parents for the first task (if any exist) or a frame without a parent. -#define SPECIALTARGET_BLANK DECLARE_ASCII("_blank" ) // Create a new task. -#define SPECIALTARGET_DEFAULT DECLARE_ASCII("_default" ) // Create a new task or recycle an existing one -#define SPECIALTARGET_BEAMER DECLARE_ASCII("_beamer" ) // special frame in hierarchy -#define SPECIALTARGET_MENUBAR DECLARE_ASCII("_menubar" ) // special target for menubars -#define SPECIALTARGET_HELPAGENT DECLARE_ASCII("_helpagent" ) // special target for the help agent window +#define SPECIALTARGET_ASCII_SELF "_self" // The frame himself is searched. +#define SPECIALTARGET_ASCII_PARENT "_parent" // The direct parent frame is searched. +#define SPECIALTARGET_ASCII_TOP "_top" // Search at ouer parents for the first task (if any exist) or a frame without a parent. +#define SPECIALTARGET_ASCII_BLANK "_blank" // Create a new task. +#define SPECIALTARGET_ASCII_DEFAULT "_default" // Create a new task or recycle an existing one +#define SPECIALTARGET_ASCII_BEAMER "_beamer" // special frame in hierarchy +#define SPECIALTARGET_ASCII_MENUBAR "_menubar" // special target for menubars +#define SPECIALTARGET_ASCII_HELPAGENT "_helpagent" // special target for the help agent window +#define SPECIALTARGET_ASCII_HELPTASK "OFFICE_HELP_TASK" // special name for our help task + +#define SPECIALTARGET_SELF DECLARE_ASCII(SPECIALTARGET_ASCII_SELF ) +#define SPECIALTARGET_PARENT DECLARE_ASCII(SPECIALTARGET_ASCII_PARENT ) +#define SPECIALTARGET_TOP DECLARE_ASCII(SPECIALTARGET_ASCII_TOP ) +#define SPECIALTARGET_BLANK DECLARE_ASCII(SPECIALTARGET_ASCII_BLANK ) +#define SPECIALTARGET_DEFAULT DECLARE_ASCII(SPECIALTARGET_ASCII_DEFAULT ) +#define SPECIALTARGET_BEAMER DECLARE_ASCII(SPECIALTARGET_ASCII_BEAMER ) +#define SPECIALTARGET_MENUBAR DECLARE_ASCII(SPECIALTARGET_ASCII_MENUBAR ) +#define SPECIALTARGET_HELPAGENT DECLARE_ASCII(SPECIALTARGET_ASCII_HELPAGENT ) +#define SPECIALTARGET_HELPTASK DECLARE_ASCII(SPECIALTARGET_ASCII_HELPTASK ) class TargetCheck { @@ -95,21 +106,72 @@ class TargetCheck //_______________________________________________________________________ /** - it checks, if the given target name is a well known special one. - The it returns <TRUE/> - otherwhise <FALSE/>. + it checks the given unknown target name, if it's the expected special one. + + @param sCheckTarget + must be the unknwon target name, which should be checked + + @param sSpecialTarget + represent the expected target name + + @return It returns <TRUE/> if <var>sCheckTarget</var> represent the expected + <var>sSpecialTarget</var> value; <FALSE/> otherwhise. + Compare will be done by ignoring case. + */ + static sal_Bool matchSpecialTarget( /*IN*/ const ::rtl::OUString& sCheckTarget , + /*IN*/ const ::rtl::OUString& sSpecialTarget ) + { + return sCheckTarget.equalsIgnoreAsciiCase(sSpecialTarget); + } + + //_______________________________________________________________________ + /** + reject not allowed target names for frames. + + Some special targets are allowed for searching only ... + Some other ones must be set as a frame name realy to locate it. + This method filter such target names. + + @param sName + the target name, which the outside code will set as a frame name. + + @return It returns <TRUE/> if <var>sName</var> is allowed as frame name; <FALSE/> otherwhise. + Compare will be done by ignoring case. + */ + static sal_Bool isValidFrameName( /*IN*/ const ::rtl::OUString& sName ) + { + return ( + !TargetCheck::matchSpecialTarget(sName,SPECIALTARGET_SELF ) || + !TargetCheck::matchSpecialTarget(sName,SPECIALTARGET_PARENT ) || + !TargetCheck::matchSpecialTarget(sName,SPECIALTARGET_TOP ) || + !TargetCheck::matchSpecialTarget(sName,SPECIALTARGET_BLANK ) || + !TargetCheck::matchSpecialTarget(sName,SPECIALTARGET_DEFAULT) + ); + } + + //_______________________________________________________________________ + /** + it checks, if the given target name is a well known special one anyway. Special targets are defined above ... + + @param sTarget + must be the unknwon target name, which should be checked + + @return It returns <TRUE/> if <var>sTarget</var> represent a special one; + <FALSE/> otherwhise. */ - static sal_Bool isSpecialTarget( const ::rtl::OUString& sTarget ) + static sal_Bool isSpecialTarget( /*IN*/ const ::rtl::OUString& sTarget ) { return ( - sTarget == SPECIALTARGET_SELF || - sTarget == SPECIALTARGET_PARENT || - sTarget == SPECIALTARGET_TOP || - sTarget == SPECIALTARGET_BLANK || - sTarget == SPECIALTARGET_DEFAULT || - sTarget == SPECIALTARGET_BEAMER || - sTarget == SPECIALTARGET_MENUBAR || - sTarget == SPECIALTARGET_HELPAGENT + TargetCheck::matchSpecialTarget(sTarget,SPECIALTARGET_SELF ) || + TargetCheck::matchSpecialTarget(sTarget,SPECIALTARGET_PARENT ) || + TargetCheck::matchSpecialTarget(sTarget,SPECIALTARGET_TOP ) || + TargetCheck::matchSpecialTarget(sTarget,SPECIALTARGET_BLANK ) || + TargetCheck::matchSpecialTarget(sTarget,SPECIALTARGET_DEFAULT ) || + TargetCheck::matchSpecialTarget(sTarget,SPECIALTARGET_BEAMER ) || + TargetCheck::matchSpecialTarget(sTarget,SPECIALTARGET_MENUBAR ) || + TargetCheck::matchSpecialTarget(sTarget,SPECIALTARGET_HELPAGENT) || + TargetCheck::matchSpecialTarget(sTarget,SPECIALTARGET_HELPTASK ) ); } @@ -121,7 +183,7 @@ class TargetCheck and the value doesn't represent such special target. We reserve this letter for our own purposes. */ - static sal_Bool isValidTarget( const ::rtl::OUString& sTarget ) + static sal_Bool isValidTarget( /*IN*/ const ::rtl::OUString& sTarget ) { sal_Int32 nPosOf_ = sTarget.indexOf('_'); sal_Bool bSpecial = TargetCheck::isSpecialTarget(sTarget); diff --git a/framework/prj/d.lst b/framework/prj/d.lst index 4bb78156a156..0eaea632cbf1 100644 --- a/framework/prj/d.lst +++ b/framework/prj/d.lst @@ -5,7 +5,6 @@ mkdir: %_DEST%\inc%_EXT%\framework ..\%__SRC%\bin\*.exe %_DEST%\bin%_EXT%\* ..\%__SRC%\bin\login %_DEST%\bin%_EXT%\login.bin ..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\* -..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib ..\dtd\menubar.dtd %_DEST%\bin%_EXT%\menubar.dtd ..\dtd\toolbar.dtd %_DEST%\bin%_EXT%\toolbar.dtd @@ -16,14 +15,24 @@ mkdir: %_DEST%\inc%_EXT%\framework ..\%__SRC%\lib\ifwe.lib %_DEST%\lib%_EXT%\ifwe.lib hedabu: ..\inc\helper\imageproducer.hxx %_DEST%\inc%_EXT%\framework\imageproducer.hxx +hedabu: ..\inc\helper\acceleratorinfo.hxx %_DEST%\inc%_EXT%\framework\acceleratorinfo.hxx +hedabu: ..\inc\helper\actiontriggerhelper.hxx %_DEST%\inc%_EXT%\framework\actiontriggerhelper.hxx hedabu: ..\inc\classes\menuconfiguration.hxx %_DEST%\inc%_EXT%\framework\menuconfiguration.hxx hedabu: ..\inc\classes\bmkmenu.hxx %_DEST%\inc%_EXT%\framework\bmkmenu.hxx hedabu: ..\inc\classes\toolboxconfiguration.hxx %_DEST%\inc%_EXT%\framework\toolboxconfiguration.hxx hedabu: ..\inc\classes\statusbarconfiguration.hxx %_DEST%\inc%_EXT%\framework\statusbarconfiguration.hxx hedabu: ..\inc\classes\eventsconfiguration.hxx %_DEST%\inc%_EXT%\framework\eventsconfiguration.hxx hedabu: ..\inc\classes\imagesconfiguration.hxx %_DEST%\inc%_EXT%\framework\imagesconfiguration.hxx -hedabu: ..\inc\helper\actiontriggerhelper.hxx %_DEST%\inc%_EXT%\framework\actiontriggerhelper.hxx +hedabu: ..\inc\classes\addonsoptions.hxx %_DEST%\inc%_EXT%\framework\addonsoptions.hxx hedabu: ..\inc\dispatch\interaction.hxx %_DEST%\inc%_EXT%\framework\interaction.hxx hedabu: ..\inc\classes\addonsoptions.hxx %_DEST%\inc%_EXT%\framework\addonsoptions.hxx +hedabu: ..\inc\classes\addonmenu.hxx %_DEST%\inc%_EXT%\framework\addonmenu.hxx + +..\%__SRC%\lib\lib*static*.dylib %_DEST%\lib%_EXT%\lib*static*.dylib +..\%__SRC%\misc\*staticdatamembers.cxx %_DEST%\inc%_EXT%\*staticdatamembers.cxx +..\%__SRC%\misc\*staticdatamembers.h* %_DEST%\inc%_EXT%\*staticdatamembers.h* ..\source\unotypes\fw?.xml %_DEST%\xml\*.xml + +dos: sh -c "if test %OS% = MACOSX; then create-bundle %_DEST%\lib%_EXT%\*.dylib; fi" +dos: sh -c "if test %OS% = MACOSX; then create-libstatic-link %_DEST%\lib%_EXT%; fi" diff --git a/framework/source/classes/addonmenu.cxx b/framework/source/classes/addonmenu.cxx index 860a7fd08167..5ce362035e61 100644 --- a/framework/source/classes/addonmenu.cxx +++ b/framework/source/classes/addonmenu.cxx @@ -2,9 +2,9 @@ * * $RCSfile: addonmenu.cxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: cd $ $Date: 2002-10-11 14:22:14 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:26 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -105,7 +105,9 @@ #ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_ #include <com/sun/star/util/XURLTransformer.hpp> #endif - +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif #ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #endif @@ -133,12 +135,6 @@ using namespace ::com::sun::star::util; using namespace ::com::sun::star::frame; using namespace ::com::sun::star::beans; -/* -extern "C" -{ - int bla(); -} -*/ namespace framework { @@ -148,6 +144,7 @@ static void GetMenuEntry( ::rtl::OUString& rURL, ::rtl::OUString& rTarget, ::rtl::OUString& rImageId, + ::rtl::OUString& rContext, Sequence< Sequence< PropertyValue > >& rAddonSubMenu ); @@ -246,6 +243,7 @@ void AddonMenu::Initialize() ::rtl::OUString aURL; ::rtl::OUString aTarget; ::rtl::OUString aImageId; + ::rtl::OUString aContext; const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings(); BOOL bIsHiContrastMode = rSettings.GetMenuColor().IsDark(); @@ -254,7 +252,7 @@ void AddonMenu::Initialize() UINT32 i, nCount = rAddonMenuEntries.getLength(); for ( i = 0; i < nCount; ++i ) { - GetMenuEntry( rAddonMenuEntries[i], aTitle, aURL, aTarget, aImageId, aAddonSubMenu ); + GetMenuEntry( rAddonMenuEntries[i], aTitle, aURL, aTarget, aImageId, aContext, aAddonSubMenu ); if ( !aTitle.getLength() && !aURL.getLength() ) continue; @@ -322,10 +320,11 @@ PopupMenu* AddonMenu::BuildSubMenu( Sequence< Sequence< PropertyValue > > aAddon ::rtl::OUString aURL; ::rtl::OUString aTarget; ::rtl::OUString aImageId; + ::rtl::OUString aContext; for ( i = 0; i < nCount; ++i ) { - GetMenuEntry( aAddonSubMenuDefinition[i], aTitle, aURL, aTarget, aImageId, aAddonSubMenu ); + GetMenuEntry( aAddonSubMenuDefinition[i], aTitle, aURL, aTarget, aImageId, aContext, aAddonSubMenu ); if ( !aTitle.getLength() && !aURL.getLength() ) continue; @@ -386,6 +385,294 @@ USHORT AddonMenu::CreateMenuId() return AddonMenu_Impl::GetMID(); } +// ------------------------------------------------------------------------ + +AddonPopupMenu::AddonPopupMenu( Reference< XFrame >& xFrame ) : + m_xFrame( xFrame ) +{ + _pImp = new AddonMenu_Impl(); +} + +// ------------------------------------------------------------------------ + +AddonPopupMenu::~AddonPopupMenu() +{ + delete _pImp; + + for ( int i = 0; i < GetItemCount(); i++ ) + { + if ( GetItemType( i ) != MENUITEM_SEPARATOR ) + { + // delete user attributes created with new! + USHORT nId = GetItemId( i ); + MenuConfiguration::Attributes* pUserAttributes = (MenuConfiguration::Attributes*)GetUserValue( nId ); + delete pUserAttributes; + } + } +} + +// ------------------------------------------------------------------------ + +USHORT AddonPopupMenu::CreateMenuId() +{ + return AddonMenu_Impl::GetMID(); +} + +// ------------------------------------------------------------------------ + +sal_Bool AddonPopupMenu::IsCorrectContext( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rModel ) const +{ + if ( rModel.is() ) + { + Reference< com::sun::star::lang::XServiceInfo > xServiceInfo( rModel, UNO_QUERY ); + if ( xServiceInfo.is() ) + { + sal_Int32 nIndex = 0; + do + { + OUString aToken = m_aContext.getToken( 0, ',', nIndex ); + + if ( xServiceInfo->supportsService( aToken )) + return sal_True; + } + while ( nIndex >= 0 ); + } + } + + return sal_False; +} + +// ------------------------------------------------------------------------ +// Get the top-level popup menus for addons. The menubar is used as a container. Every popup menu is from type AddonPopupMenu! +void AddonPopupMenu::GetAddonPopupMenus( Reference< XFrame >& rFrame, MenuBar* pContainer ) +{ + if ( pContainer ) + { + AddonsOptions aAddonsOptions; + + const Sequence< Sequence< PropertyValue > >& rAddonMenuEntries = aAddonsOptions.GetAddonsMenuBarPart(); + for ( sal_Int32 i = 0; i < rAddonMenuEntries.getLength(); i++ ) + { + AddonPopupMenu* pAddonPopupMenu = new AddonPopupMenu( rFrame ); + const Sequence< PropertyValue > aAddonPopupMenu = rAddonMenuEntries[i]; + pAddonPopupMenu->Initialize( aAddonPopupMenu ); + + // A valid top-level addon popup menu must have an ID, title and URL + if ( pAddonPopupMenu->GetId() && + pAddonPopupMenu->GetTitle().getLength() && + pAddonPopupMenu->GetCommandURL().getLength() ) + { + pContainer->InsertItem( pAddonPopupMenu->GetId(), pAddonPopupMenu->GetTitle() ); + pContainer->SetPopupMenu( pAddonPopupMenu->GetId(), pAddonPopupMenu ); + } + else + delete pAddonPopupMenu; + } + } +} + +// ------------------------------------------------------------------------ + +void AddonPopupMenu::MergeAddonPopupMenus( + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rFrame, + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rModel, + USHORT nMergeAtPos, + MenuBar* pMergeMenuBar ) +{ + if ( pMergeMenuBar ) + { + AddonsOptions aAddonsOptions; + USHORT nInsertPos = nMergeAtPos; + + const Sequence< Sequence< PropertyValue > >& rAddonMenuEntries = aAddonsOptions.GetAddonsMenuBarPart(); + for ( sal_Int32 i = 0; i < rAddonMenuEntries.getLength(); i++ ) + { + AddonPopupMenu* pAddonPopupMenu = new AddonPopupMenu( rFrame ); + const Sequence< PropertyValue > aAddonPopupMenu = rAddonMenuEntries[i]; + pAddonPopupMenu->Initialize( aAddonPopupMenu ); + + // A valid top-level addon popup menu must have an ID, title and URL + if ( pAddonPopupMenu->GetId() && + pAddonPopupMenu->GetTitle().getLength() && + pAddonPopupMenu->GetCommandURL().getLength() && + pAddonPopupMenu->IsCorrectContext( rModel )) + { + pMergeMenuBar->InsertItem( pAddonPopupMenu->GetId(), pAddonPopupMenu->GetTitle(), 0, nInsertPos++ ); + pMergeMenuBar->SetPopupMenu( pAddonPopupMenu->GetId(), pAddonPopupMenu ); + } + else + delete pAddonPopupMenu; + } + } +} + +// ------------------------------------------------------------------------ + +void AddonPopupMenu::Initialize( const Sequence< PropertyValue >& rAddonPopupMenuDefinition ) +{ + if( _pImp->m_bInitialized ) + return; + + _pImp->m_bInitialized = TRUE; + + ::rtl::OUString aTitle; + ::rtl::OUString aURL; + ::rtl::OUString aTarget; + ::rtl::OUString aImageId; + ::rtl::OUString aContext; + AddonsOptions aAddonsOptions; + Sequence< Sequence< PropertyValue > > aAddonSubMenu; + + GetMenuEntry( rAddonPopupMenuDefinition, aTitle, aURL, aTarget, aImageId, aContext, aAddonSubMenu ); + if ( aTitle.getLength() && aURL.getLength() ) + { + // Set id, title and command URL of this popup menu + m_nId = CreateMenuId(); + m_aCommandURL = aURL; + m_aTitle = aTitle; + m_aContext = aContext; + + const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings(); + BOOL bIsHiContrastMode = rSettings.GetMenuColor().IsDark(); + BOOL bShowMenuImages = SvtMenuOptions().IsMenuIconsEnabled(); + + UINT32 i, nCount = aAddonSubMenu.getLength(); + for ( i = 0; i < nCount; ++i ) + { + Sequence< Sequence< PropertyValue > > aNextAddonSubMenu; + GetMenuEntry( aAddonSubMenu[i], aTitle, aURL, aTarget, aImageId, aContext, aNextAddonSubMenu ); + + if ( !aTitle.getLength() && !aURL.getLength() ) + continue; + + if ( aURL == ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "private:separator" ))) + InsertSeparator(); + else + { + sal_Bool bImageSet = sal_False; + USHORT nId = CreateMenuId(); + + if ( bShowMenuImages ) + { + if ( aImageId.getLength() > 0 ) + { + Image aImage = GetImageFromURL( m_xFrame, aImageId, FALSE, bIsHiContrastMode ); + if ( !!aImage ) + { + bImageSet = sal_True; + InsertItem( nId, aTitle, aImage ); + } + } + + if ( !bImageSet ) + { + Image aImage = GetImageFromURL( m_xFrame, aURL, FALSE, bIsHiContrastMode ); + if ( !aImage ) + aImage = aAddonsOptions.GetImageFromURL( aURL, FALSE, bIsHiContrastMode ); + + if ( !aImage ) + InsertItem( nId, aTitle ); + else + InsertItem( nId, aTitle, aImage ); + } + } + else + InsertItem( nId, aTitle ); + + // Store values from configuration to the New and Wizard menu entries to enable + // sfx2 based code to support high contrast mode correctly! + MenuConfiguration::Attributes* pUserAttributes = new MenuConfiguration::Attributes; + pUserAttributes->aTargetFrame = aTarget; + pUserAttributes->aImageId = aImageId; + SetUserValue( nId, (ULONG)pUserAttributes ); + + SetItemCommand( nId, aURL ); + + if ( aNextAddonSubMenu.getLength() > 0 ) + SetPopupMenu( nId, BuildSubMenu( aNextAddonSubMenu )); + } + } + } +} + +// ------------------------------------------------------------------------ + +PopupMenu* AddonPopupMenu::BuildSubMenu( Sequence< Sequence< PropertyValue > > aAddonSubMenuDefinition ) +{ + Sequence< Sequence< PropertyValue > > aAddonSubMenu; + const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings(); + BOOL bIsHiContrastMode = rSettings.GetMenuColor().IsDark(); + BOOL bShowMenuImages = SvtMenuOptions().IsMenuIconsEnabled(); + UINT32 i, nCount = aAddonSubMenuDefinition.getLength(); + PopupMenu* pPopupMenu = new PopupMenu; + AddonsOptions aAddonsOptions; + + ::rtl::OUString aTitle; + ::rtl::OUString aURL; + ::rtl::OUString aTarget; + ::rtl::OUString aImageId; + ::rtl::OUString aContext; + + for ( i = 0; i < nCount; ++i ) + { + GetMenuEntry( aAddonSubMenuDefinition[i], aTitle, aURL, aTarget, aImageId, aContext, aAddonSubMenu ); + + if ( !aTitle.getLength() && !aURL.getLength() ) + continue; + + if ( aURL == ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "private:separator" ))) + pPopupMenu->InsertSeparator(); + else + { + sal_Bool bImageSet = sal_False; + USHORT nId = CreateMenuId(); + + if ( bShowMenuImages ) + { + if ( aImageId.getLength() > 0 ) + { + Image aImage = GetImageFromURL( m_xFrame, aImageId, FALSE, bIsHiContrastMode ); + if ( !!aImage ) + { + bImageSet = sal_True; + pPopupMenu->InsertItem( nId, aTitle, aImage ); + } + } + + if ( !bImageSet ) + { + Image aImage = GetImageFromURL( m_xFrame, aURL, FALSE, bIsHiContrastMode ); + if ( !aImage ) + aImage = aAddonsOptions.GetImageFromURL( aURL, FALSE, bIsHiContrastMode ); + + if ( !aImage ) + pPopupMenu->InsertItem( nId, aTitle ); + else + pPopupMenu->InsertItem( nId, aTitle, aImage ); + } + } + else + pPopupMenu->InsertItem( nId, aTitle ); + + // Store values from configuration to the New and Wizard menu entries to enable + // sfx2 based code to support high contrast mode correctly! + MenuConfiguration::Attributes* pUserAttributes = new MenuConfiguration::Attributes; + pUserAttributes->aTargetFrame = aTarget; + pUserAttributes->aImageId = aImageId; + pPopupMenu->SetUserValue( nId, (ULONG)pUserAttributes ); + + pPopupMenu->SetItemCommand( nId, aURL ); + + if ( aAddonSubMenu.getLength() > 0 ) + pPopupMenu->SetPopupMenu( nId, BuildSubMenu( aAddonSubMenu )); + } + } + + return pPopupMenu; +} + +// ------------------------------------------------------------------------ + void GetMenuEntry ( const Sequence< PropertyValue >& rAddonMenuEntry, @@ -393,6 +680,7 @@ void GetMenuEntry ::rtl::OUString& rURL, ::rtl::OUString& rTarget, ::rtl::OUString& rImageId, + ::rtl::OUString& rContext, Sequence< Sequence< PropertyValue > >& rAddonSubMenu ) { @@ -401,16 +689,19 @@ void GetMenuEntry for ( int i = 0; i < rAddonMenuEntry.getLength(); i++ ) { - if ( rAddonMenuEntry[i].Name == ADDONSMENUITEM_PROPERTYNAME_URL ) + OUString aMenuEntryPropName = rAddonMenuEntry[i].Name; + if ( aMenuEntryPropName == ADDONSMENUITEM_PROPERTYNAME_URL ) rAddonMenuEntry[i].Value >>= rURL; - else if ( rAddonMenuEntry[i].Name == ADDONSMENUITEM_PROPERTYNAME_TITLE ) + else if ( aMenuEntryPropName == ADDONSMENUITEM_PROPERTYNAME_TITLE ) rAddonMenuEntry[i].Value >>= rTitle; - else if ( rAddonMenuEntry[i].Name == ADDONSMENUITEM_PROPERTYNAME_TARGET ) + else if ( aMenuEntryPropName == ADDONSMENUITEM_PROPERTYNAME_TARGET ) rAddonMenuEntry[i].Value >>= rTarget; - else if ( rAddonMenuEntry[i].Name == ADDONSMENUITEM_PROPERTYNAME_IMAGEIDENTIFIER ) + else if ( aMenuEntryPropName == ADDONSMENUITEM_PROPERTYNAME_IMAGEIDENTIFIER ) rAddonMenuEntry[i].Value >>= rImageId; - else if ( rAddonMenuEntry[i].Name == ADDONSMENUITEM_PROPERTYNAME_SUBMENU ) + else if ( aMenuEntryPropName == ADDONSMENUITEM_PROPERTYNAME_SUBMENU ) rAddonMenuEntry[i].Value >>= rAddonSubMenu; + else if ( aMenuEntryPropName == ADDONSMENUITEM_PROPERTYNAME_CONTEXT ) + rAddonMenuEntry[i].Value >>= rContext; } } diff --git a/framework/source/classes/addonsoptions.cxx b/framework/source/classes/addonsoptions.cxx index 7f29506279d0..470f31416cd4 100644 --- a/framework/source/classes/addonsoptions.cxx +++ b/framework/source/classes/addonsoptions.cxx @@ -2,9 +2,8 @@ * * $RCSfile: addonsoptions.cxx,v $ * - * $Revision: 1.1 $ - * - * last change: $Author: cd $ $Date: 2002-10-11 14:22:13 $ + * $Revision: 1.2 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:26 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -130,6 +129,7 @@ using namespace ::com::sun::star::beans ; #define PROPERTYNAME_SUBMENU ADDONSMENUITEM_PROPERTYNAME_SUBMENU #define PROPERTYNAME_COMPONENTID ADDONSMENUITEM_PROPERTYNAME_COMPONENTID +#define PROPERTYNAME_CONTEXT ADDONSMENUITEM_PROPERTYNAME_CONTEXT #define PROPERTYNAME_IMAGESMALL OUString(RTL_CONSTASCII_USTRINGPARAM("ImageSmall" )) #define PROPERTYNAME_IMAGEBIG OUString(RTL_CONSTASCII_USTRINGPARAM("ImageBig" )) @@ -139,6 +139,7 @@ using namespace ::com::sun::star::beans ; #define IMAGES_NODENAME OUString(RTL_CONSTASCII_USTRINGPARAM("Images" )) #define PROPERTYCOUNT_ROOT 6 // Used for C++ interface +#define PROPERTYCOUNT_UI_ROOT 7 #define PROPERTYCOUNT 5 #define CFG_PROPERTYCOUNT 4 #define PROPERTYIMAGES_COUNT 4 @@ -150,6 +151,15 @@ using namespace ::com::sun::star::beans ; #define OFFSET_SUBMENU 4 #define OFFSET_COMPONENTID 5 +#define CFG_UITYPE_PROPERTYCOUNT 5 +#define OFFSET_UITYPE_TITLE 0 +#define OFFSET_UITYPE_TARGET 1 +#define OFFSET_UITYPE_IMAGEIDENTIFIER 2 +#define OFFSET_UITYPE_CONTEXT 3 +#define OFFSET_UITYPE_SUBMENU 4 +#define OFFSET_UITYPE_COMPONENTID 5 +#define OFFSET_UITYPE_URL 6 + #define OFFSET_IMAGESMALL 0 #define OFFSET_IMAGEBIG 1 #define OFFSET_IMAGESMALLHC 2 @@ -180,7 +190,7 @@ struct AddonMenuEntry const OUString& sNewTitle , const OUString& sNewImageIdentifier , const OUString& sNewTarget , - const AddonSubMenu& aNewSubMenu ) : + const AddonSubMenu& aNewSubMenu ) : sURL( sNewURL ), sTitle( sNewTitle ), sImageIdentifier( sNewImageIdentifier ), @@ -213,12 +223,14 @@ struct AddonMenuRootEntry const OUString& sNewTitle , const OUString& sNewTarget , const OUString& sNewImageIdentifier , - const AddonSubMenu& aNewSubMenu ) : + const OUString& sNewContext , + const AddonSubMenu& aNewSubMenu ) : sName( sNewComponentID ), sURL( sNewURL ), sTitle( sNewTitle ), sImageIdentifier( sNewImageIdentifier ), sTarget( sNewTarget ), + sContext( sNewContext ), aSubMenu( aNewSubMenu ) { } @@ -229,6 +241,7 @@ struct AddonMenuRootEntry OUString sTitle ; OUString sTarget ; OUString sImageIdentifier ; + OUString sContext ; AddonSubMenu aSubMenu ; }; @@ -304,6 +317,16 @@ class SvAddonMenu // special strings "sEmpty" and "sSeperator" to perform too ... Sequence< Sequence< PropertyValue > > GetSubMenuList( const AddonSubMenu& rSubMenu ) const; + //--------------------------------------------------------------------------------------------------------- + // convert internal menu bar list to external format + // for using it on right menus realy + // Notice: We build a property list with 4 entries and set it on result list then. + // The while-loop starts with pointer on internal member list lSetupEntries, change to + // lUserEntries then and stop after that with NULL! + // Separator entries will be packed in another way then normal entries! We define + // special strings "sEmpty" and "sSeperator" to perform too ... + Sequence< Sequence< PropertyValue > > SvAddonMenu::GetMenuBarList() const; + private: //--------------------------------------------------------------------------------------------------------- // search for an entry named "ux" with x=[0..i] inside our menu @@ -330,17 +353,17 @@ class SvAddonMenu Sequence< Sequence< PropertyValue > > SvAddonMenu::GetList() const { - sal_Int32 nCount = (sal_Int32)aAddonsMenuList.size(); + sal_Int32 nCount = (sal_Int32)aAddonsMenuList.size(); sal_Int32 nStep = 0; Sequence< PropertyValue > lRootProperties ( PROPERTYCOUNT_ROOT ); Sequence< Sequence< PropertyValue > > lResult ( nCount ); - const vector< AddonMenuRootEntry >* pList = &aAddonsMenuList; + const vector< AddonMenuRootEntry >* pList = &aAddonsMenuList; // Root menu item properites lRootProperties[OFFSET_URL ].Name = PROPERTYNAME_URL ; lRootProperties[OFFSET_TITLE ].Name = PROPERTYNAME_TITLE ; lRootProperties[OFFSET_IMAGEIDENTIFIER ].Name = PROPERTYNAME_IMAGEIDENTIFIER ; - lRootProperties[OFFSET_IMAGEIDENTIFIER ].Name = PROPERTYNAME_TARGET ; + lRootProperties[OFFSET_TARGET ].Name = PROPERTYNAME_TARGET ; lRootProperties[OFFSET_SUBMENU ].Name = PROPERTYNAME_SUBMENU ; lRootProperties[OFFSET_COMPONENTID ].Name = PROPERTYNAME_COMPONENTID ; @@ -366,6 +389,46 @@ Sequence< Sequence< PropertyValue > > SvAddonMenu::GetList() const return lResult; } +Sequence< Sequence< PropertyValue > > SvAddonMenu::GetMenuBarList() const +{ + sal_Int32 nCount = (sal_Int32)aAddonsMenuList.size(); + sal_Int32 nStep = 0; + Sequence< PropertyValue > lRootProperties ( PROPERTYCOUNT_UI_ROOT ); + Sequence< Sequence< PropertyValue > > lResult ( nCount ); + const vector< AddonMenuRootEntry >* pList = &aAddonsMenuList; + + // Root menu bar item properites + lRootProperties[OFFSET_UITYPE_URL ].Name = PROPERTYNAME_URL ; + lRootProperties[OFFSET_UITYPE_TITLE ].Name = PROPERTYNAME_TITLE ; + lRootProperties[OFFSET_UITYPE_IMAGEIDENTIFIER ].Name = PROPERTYNAME_IMAGEIDENTIFIER ; + lRootProperties[OFFSET_UITYPE_IMAGEIDENTIFIER ].Name = PROPERTYNAME_TARGET ; + lRootProperties[OFFSET_UITYPE_SUBMENU ].Name = PROPERTYNAME_SUBMENU ; + lRootProperties[OFFSET_UITYPE_COMPONENTID ].Name = PROPERTYNAME_COMPONENTID ; + lRootProperties[OFFSET_UITYPE_CONTEXT ].Name = PROPERTYNAME_CONTEXT ; + + for( vector< AddonMenuRootEntry >::const_iterator pItem =pList->begin(); + pItem!=pList->end() ; + ++pItem ) + { + lRootProperties[OFFSET_UITYPE_URL ].Value <<= pItem->sURL ; + lRootProperties[OFFSET_UITYPE_TITLE ].Value <<= pItem->sTitle ; + lRootProperties[OFFSET_UITYPE_TARGET ].Value <<= pItem->sTarget ; + lRootProperties[OFFSET_UITYPE_IMAGEIDENTIFIER ].Value <<= pItem->sImageIdentifier ; + lRootProperties[OFFSET_UITYPE_CONTEXT ].Value <<= pItem->sContext ; + + sal_Int32 nSubMenuCount = pItem->aSubMenu.size(); + if ( nSubMenuCount > 0 ) + lRootProperties[OFFSET_UITYPE_SUBMENU].Value <<= GetSubMenuList( pItem->aSubMenu ); + else + lRootProperties[OFFSET_SUBMENU].Value <<= Sequence< Sequence< PropertyValue > >(); + lRootProperties[OFFSET_UITYPE_COMPONENTID ].Value <<= pItem->sName ; + + lResult[nStep++] = lRootProperties; + } + + return lResult; +} + Sequence< Sequence< PropertyValue > > SvAddonMenu::GetSubMenuList( const AddonSubMenu& rSubMenu ) const { @@ -398,7 +461,7 @@ Sequence< Sequence< PropertyValue > > SvAddonMenu::GetSubMenuList( const AddonSu { lProperties[OFFSET_URL ].Value <<= pItem->sURL ; lProperties[OFFSET_TITLE ].Value <<= pItem->sTitle ; - lProperties[OFFSET_TARGET ].Value <<= sEmpty ; + lProperties[OFFSET_TARGET ].Value <<= pItem->sTarget ; lProperties[OFFSET_IMAGEIDENTIFIER ].Value <<= pItem->sImageIdentifier ; sal_Int32 nSubMenuCount = pItem->aSubMenu.size(); @@ -483,6 +546,8 @@ class AddonsOptions_Impl : public ConfigItem sal_Bool HasAddonsMenu () const ; const Sequence< Sequence< PropertyValue > >& GetAddonsMenu () const ; + const Sequence< Sequence< PropertyValue > >& GetAddonsMenuBarPart() const; + const Sequence< Sequence< PropertyValue > >& GetAddonsToolBarPart() const; Sequence< PropertyValue > GetAddonsComponentMenu( const ::rtl::OUString aComponentID ) const; Image GetImageFromURL( const rtl::OUString& aURL, sal_Bool bBig, sal_Bool bHiContrast ) const; @@ -506,9 +571,12 @@ class AddonsOptions_Impl : public ConfigItem *//*-*****************************************************************************************************/ sal_Bool ReadRootMenuEntry( const OUString& aRootMenuNodeName, AddonMenuRootEntry& rRootMenuEntry ); + sal_Bool ReadRootMenuBarEntry( const OUString& aRootMenuBarNodeName, AddonMenuRootEntry& rRootMenuBarEntry ); + sal_Bool ReadSubMenuEntries( const Sequence< OUString >& aSubMenuNodeNames, AddonSubMenu& rSubMenuContainer ); sal_Bool ReadSubMenuEntry( const OUString& aMenuEntryNodeName, AddonSubMenu& rSubMenuContainer ); Sequence< OUString > GetPropertyNames( const OUString& aPropertyRootNode ) const; + Sequence< OUString > GetUITypePropertyNames( const OUString& aPropertyRootNode ) const; Sequence< OUString > GetImagesPropertyNames( const OUString& aPropertyRootNode ) const; sal_Bool CreateImageFromSequence( Image& rImage, sal_Bool bBig, Sequence< sal_Int8 >& rBitmapDataSeq ) const; @@ -538,13 +606,20 @@ class AddonsOptions_Impl : public ConfigItem typedef std::hash_map< OUString, ImageEntry, OUStringHashCode, ::std::equal_to< OUString > > ImageManager; + sal_Int32 m_nRootAddonPopupMenuId; OUString m_aPropNames[PROPERTYCOUNT_ROOT]; + OUString m_aPropUINames[PROPERTYCOUNT_UI_ROOT]; OUString m_aPropImagesNames[PROPERTYIMAGES_COUNT]; OUString m_aEmpty; OUString m_aPathDelimiter; OUString m_aSeparator; + OUString m_aRootAddonPopupMenuURLPrexfix; SvAddonMenu m_aAddonMenu; + SvAddonMenu m_aAddonMenuBarPart; + SvAddonMenu m_aAddonToolBarPart; Sequence< Sequence< PropertyValue > > m_aCachedMenuProperties; + Sequence< Sequence< PropertyValue > > m_aCachedMenuBarPartProperties; + Sequence< Sequence< PropertyValue > > m_aCachedToolBarPartProperties; ImageManager m_aImageManager; }; @@ -559,7 +634,9 @@ AddonsOptions_Impl::AddonsOptions_Impl() // Init baseclasses first : ConfigItem( ROOTNODE_ADDONMENU ), m_aPathDelimiter( PATHDELIMITER ), - m_aSeparator( SEPARATOR_URL ) + m_aSeparator( SEPARATOR_URL ), + m_nRootAddonPopupMenuId( 0 ), + m_aRootAddonPopupMenuURLPrexfix( ADDONSPOPUPMENU_URL_PREFIX ) { // initialize array with fixed property names m_aPropNames[ OFFSET_URL ] = PROPERTYNAME_URL; @@ -569,6 +646,15 @@ AddonsOptions_Impl::AddonsOptions_Impl() m_aPropNames[ OFFSET_SUBMENU ] = PROPERTYNAME_SUBMENU; // Submenu set! m_aPropNames[ OFFSET_COMPONENTID ] = PROPERTYNAME_COMPONENTID; // External property + // initialize array with fixed property names + m_aPropUINames[ OFFSET_UITYPE_URL ] = PROPERTYNAME_URL; + m_aPropUINames[ OFFSET_UITYPE_TITLE ] = PROPERTYNAME_TITLE; + m_aPropUINames[ OFFSET_UITYPE_TARGET ] = PROPERTYNAME_TARGET; + m_aPropUINames[ OFFSET_UITYPE_IMAGEIDENTIFIER ] = PROPERTYNAME_IMAGEIDENTIFIER; + m_aPropUINames[ OFFSET_UITYPE_CONTEXT ] = PROPERTYNAME_CONTEXT; // Context + m_aPropUINames[ OFFSET_UITYPE_SUBMENU ] = PROPERTYNAME_SUBMENU; // Submenu set! + m_aPropUINames[ OFFSET_UITYPE_COMPONENTID ] = PROPERTYNAME_COMPONENTID; // External property + // initialize array with fixed images property names m_aPropImagesNames[ OFFSET_IMAGESMALL ] = PROPERTYNAME_IMAGESMALL; m_aPropImagesNames[ OFFSET_IMAGEBIG ] = PROPERTYNAME_IMAGEBIG; @@ -594,6 +680,25 @@ AddonsOptions_Impl::AddonsOptions_Impl() // Currently this is possible as there is no way to register components during Office runtime! m_aCachedMenuProperties = m_aAddonMenu.GetList(); + // Read the extended OfficeMenuBar definition that allows external component to integrate their + // popup-menu into the Office menu bar! + OUString aAddonMenuBarNodeName( RTL_CONSTASCII_USTRINGPARAM( "AddonUI/OfficeMenuBar" )); + Sequence< OUString > aAddonRootMenuBarNodeSeq = GetNodeNames( aAddonMenuBarNodeName ); + OUString aAddonMenuBarTreeNode( aAddonMenuBarNodeName + m_aPathDelimiter ); + + nCount = aAddonRootMenuBarNodeSeq.getLength(); + for ( n = 0; n < nCount; n++ ) + { + AddonMenuRootEntry aItem; + OUString aRootMenuNode( aAddonMenuBarTreeNode + aAddonRootMenuBarNodeSeq[n] ); + if ( ReadRootMenuBarEntry( aRootMenuNode, aItem ) ) + m_aAddonMenuBarPart.AppendRootMenuEntry( aItem ); + } + + // Save values to the external representation structure to save memory and time. + // Currently this is possible as there is no way to register components during Office runtime! + m_aCachedMenuBarPartProperties = m_aAddonMenuBarPart.GetMenuBarList(); + /*TODO: Not used in the moment! see Notify() ... // Enable notification mechanism of ouer baseclass. // We need it to get information about changes outside these class on ouer used configuration keys! @@ -684,6 +789,22 @@ Sequence< PropertyValue > AddonsOptions_Impl::GetAddonsComponentMenu( const ::rt //***************************************************************************************************************** // public method //***************************************************************************************************************** +const Sequence< Sequence< PropertyValue > >& AddonsOptions_Impl::GetAddonsMenuBarPart() const +{ + return m_aCachedMenuBarPartProperties; +} + +//***************************************************************************************************************** +// public method +//***************************************************************************************************************** +const Sequence< Sequence< PropertyValue > >& AddonsOptions_Impl::GetAddonsToolBarPart() const +{ + return m_aCachedToolBarPartProperties; +} + +//***************************************************************************************************************** +// public method +//***************************************************************************************************************** Image AddonsOptions_Impl::GetImageFromURL( const rtl::OUString& aURL, sal_Bool bBig, sal_Bool bHiContrast ) const { @@ -723,7 +844,7 @@ sal_Bool AddonsOptions_Impl::ReadRootMenuEntry( const OUString& aRootMenuNodeNam for ( sal_uInt32 n = 0; n < (sal_uInt32)aRootSubMenuNodeNames.getLength(); n++ ) aRootSubMenuNodeNames[n] = OUString( aSubMenuRootNodeName + aRootSubMenuNodeNames[n] ); ReadSubMenuEntries( aRootSubMenuNodeNames, rRootMenuEntry.aSubMenu ); - rRootMenuEntry.sName = aRootMenuNodeName.copy( aRootMenuNodeName.lastIndexOf( '/' )); + rRootMenuEntry.sName = aRootMenuNodeName.copy( aRootMenuNodeName.lastIndexOf( '/' )+1); bResult = sal_True; } else @@ -735,7 +856,7 @@ sal_Bool AddonsOptions_Impl::ReadRootMenuEntry( const OUString& aRootMenuNodeNam aRootMenuNodePropValues[ OFFSET_IMAGEIDENTIFIER ] >>= rRootMenuEntry.sImageIdentifier; // Set the name/component id of the root menu - rRootMenuEntry.sName = aRootMenuNodeName.copy( aRootMenuNodeName.lastIndexOf( '/' )); + rRootMenuEntry.sName = aRootMenuNodeName.copy( aRootMenuNodeName.lastIndexOf( '/' )+1); // Store bitmap data defined for this menu item into the internal image manager ImageEntry* pImageEntry = ReadOptionalImageData( aRootMenuNodeName ); @@ -753,6 +874,48 @@ sal_Bool AddonsOptions_Impl::ReadRootMenuEntry( const OUString& aRootMenuNodeNam //***************************************************************************************************************** // private method //***************************************************************************************************************** +sal_Bool AddonsOptions_Impl::ReadRootMenuBarEntry( const OUString& aRootMenuBarNodeName, AddonMenuRootEntry& rRootMenuBarEntry ) +{ + sal_Bool bResult = sal_False; + OUString aAddonRootMenuBarTreeNode( aRootMenuBarNodeName + m_aPathDelimiter ); + Sequence< Any > aRootMenuBarNodePropValues; + + aRootMenuBarNodePropValues = GetProperties( GetUITypePropertyNames( aAddonRootMenuBarTreeNode ) ); + if ( aRootMenuBarNodePropValues[ OFFSET_UITYPE_TITLE ] >>= rRootMenuBarEntry.sTitle ) + { + // A top-level popup menu needs a title and prefixed url + OUStringBuffer aBuf( m_aRootAddonPopupMenuURLPrexfix.getLength() + 3 ); + aBuf.append( m_aRootAddonPopupMenuURLPrexfix ); + aBuf.append( OUString::valueOf( ++m_nRootAddonPopupMenuId )); + rRootMenuBarEntry.sURL = aBuf.makeStringAndClear(); + + OUString aRootSubMenuName( aAddonRootMenuBarTreeNode + m_aPropUINames[ OFFSET_UITYPE_SUBMENU ] ); + Sequence< OUString > aRootSubMenuNodeNames = GetNodeNames( aRootSubMenuName ); + if ( aRootSubMenuNodeNames.getLength() > 0 ) + { + // Read optional context information and continue to read sub menu nodes + aRootMenuBarNodePropValues[ OFFSET_UITYPE_CONTEXT ] >>= rRootMenuBarEntry.sContext; + + OUString aSubMenuRootNodeName( aRootSubMenuName + m_aPathDelimiter ); + for ( sal_uInt32 n = 0; n < (sal_uInt32)aRootSubMenuNodeNames.getLength(); n++ ) + aRootSubMenuNodeNames[n] = OUString( aSubMenuRootNodeName + aRootSubMenuNodeNames[n] ); + ReadSubMenuEntries( aRootSubMenuNodeNames, rRootMenuBarEntry.aSubMenu ); + rRootMenuBarEntry.sName = aRootMenuBarNodeName.copy( aRootMenuBarNodeName.lastIndexOf( '/' )+1); + bResult = sal_True; + } + else + { + // Not allowed to have a single menu item on a top-level menu bar! + return sal_False; + } + } + + return bResult; +} + +//***************************************************************************************************************** +// private method +//***************************************************************************************************************** sal_Bool AddonsOptions_Impl::ReadSubMenuEntries( const Sequence< OUString >& aSubMenuNodeNames, AddonSubMenu& rSubMenuContainer ) { sal_uInt32 nCount = aSubMenuNodeNames.getLength(); @@ -916,6 +1079,23 @@ Sequence< OUString > AddonsOptions_Impl::GetPropertyNames( const OUString& aProp //***************************************************************************************************************** // private method //***************************************************************************************************************** +Sequence< OUString > AddonsOptions_Impl::GetUITypePropertyNames( const OUString& aPropertyRootNode ) const +{ + Sequence< OUString > lResult( CFG_UITYPE_PROPERTYCOUNT ); + + // Create property names dependent from the root node name + lResult[0] = OUString( aPropertyRootNode + m_aPropUINames[ OFFSET_UITYPE_TITLE ] ); + lResult[1] = OUString( aPropertyRootNode + m_aPropUINames[ OFFSET_UITYPE_TARGET ] ); + lResult[2] = OUString( aPropertyRootNode + m_aPropUINames[ OFFSET_UITYPE_IMAGEIDENTIFIER ] ); + lResult[3] = OUString( aPropertyRootNode + m_aPropUINames[ OFFSET_UITYPE_CONTEXT ] ); + lResult[4] = OUString( aPropertyRootNode + m_aPropUINames[ OFFSET_UITYPE_SUBMENU ] ); + + return lResult; +} + +//***************************************************************************************************************** +// private method +//***************************************************************************************************************** Sequence< OUString > AddonsOptions_Impl::GetImagesPropertyNames( const OUString& aPropertyRootNode ) const { Sequence< OUString > lResult( PROPERTYIMAGES_COUNT ); @@ -1001,6 +1181,24 @@ Sequence< PropertyValue > AddonsOptions::GetAddonsComponentMenu( const ::rtl::OU //***************************************************************************************************************** // public method //***************************************************************************************************************** +const Sequence< Sequence< PropertyValue > >& AddonsOptions::GetAddonsMenuBarPart() const +{ + MutexGuard aGuard( GetOwnStaticMutex() ); + return m_pDataContainer->GetAddonsMenuBarPart(); +} + +//***************************************************************************************************************** +// public method +//***************************************************************************************************************** +const Sequence< Sequence< PropertyValue > >& AddonsOptions::GetAddonsToolBarPart() const +{ + MutexGuard aGuard( GetOwnStaticMutex() ); + return m_pDataContainer->GetAddonsToolBarPart(); +} + +//***************************************************************************************************************** +// public method +//***************************************************************************************************************** Image AddonsOptions::GetImageFromURL( const rtl::OUString& aURL, sal_Bool bBig, sal_Bool bHiContrast ) const { MutexGuard aGuard( GetOwnStaticMutex() ); @@ -1032,4 +1230,4 @@ Mutex& AddonsOptions::GetOwnStaticMutex() return *pMutex; } -}
\ No newline at end of file +} diff --git a/framework/source/classes/bmkmenu.cxx b/framework/source/classes/bmkmenu.cxx index 129f64e13873..7755bc858dad 100644 --- a/framework/source/classes/bmkmenu.cxx +++ b/framework/source/classes/bmkmenu.cxx @@ -2,9 +2,9 @@ * * $RCSfile: bmkmenu.cxx,v $ * - * $Revision: 1.8 $ + * $Revision: 1.9 $ * - * last change: $Author: cd $ $Date: 2002-04-11 11:45:40 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:28 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -117,6 +117,9 @@ #include <vcl/config.hxx> #include <vcl/svapp.hxx> #include <svtools/dynamicmenuoptions.hxx> +#ifndef INCLUDED_SVTOOLS_MENUOPTIONS_HXX +#include <svtools/menuoptions.hxx> +#endif //_________________________________________________________________________________________________________________ // namespace @@ -227,6 +230,7 @@ void BmkMenu::Initialize() aDynamicMenuEntries = SvtDynamicMenuOptions().GetMenu( E_NEWMENU ); else if ( m_nType == BmkMenu::BMK_WIZARDMENU ) aDynamicMenuEntries = SvtDynamicMenuOptions().GetMenu( E_WIZARDMENU ); + BOOL bShowMenuImages = SvtMenuOptions().IsMenuIconsEnabled(); ::rtl::OUString aTitle; ::rtl::OUString aURL; @@ -251,24 +255,29 @@ void BmkMenu::Initialize() sal_Bool bImageSet = sal_False; USHORT nId = CreateMenuId(); - if ( aImageId.getLength() > 0 ) + if ( bShowMenuImages ) { - Image aImage = GetImageFromURL( m_xFrame, aImageId, FALSE, bIsHiContrastMode ); - if ( !!aImage ) + if ( aImageId.getLength() > 0 ) { - bImageSet = sal_True; - InsertItem( nId, aTitle, aImage ); + Image aImage = GetImageFromURL( m_xFrame, aImageId, FALSE, bIsHiContrastMode ); + if ( !!aImage ) + { + bImageSet = sal_True; + InsertItem( nId, aTitle, aImage ); + } } - } - if ( !bImageSet ) - { - Image aImage = GetImageFromURL( m_xFrame, aURL, FALSE, bIsHiContrastMode ); - if ( !aImage ) - InsertItem( nId, aTitle ); - else - InsertItem( nId, aTitle, aImage ); + if ( !bImageSet ) + { + Image aImage = GetImageFromURL( m_xFrame, aURL, FALSE, bIsHiContrastMode ); + if ( !aImage ) + InsertItem( nId, aTitle ); + else + InsertItem( nId, aTitle, aImage ); + } } + else + InsertItem( nId, aTitle ); // Store values from configuration to the New and Wizard menu entries to enable // sfx2 based code to support high contrast mode correctly! diff --git a/framework/source/classes/colorlistener.cxx b/framework/source/classes/colorlistener.cxx new file mode 100644 index 000000000000..36ec9c3c21f2 --- /dev/null +++ b/framework/source/classes/colorlistener.cxx @@ -0,0 +1,295 @@ +/************************************************************************* + * + * $RCSfile: colorlistener.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:21:28 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#include "classes/colorlistener.hxx" + +//__________________________________________ +// own includes + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +//__________________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_AWT_XWINDOWPEER_HPP_ +#include <com/sun/star/awt/XWindowPeer.hpp> +#endif + +#ifndef _COM_SUN_STAR_AWT_INVALIDATESTYLE_HPP_ +#include <com/sun/star/awt/InvalidateStyle.hpp> +#endif + +//__________________________________________ +// other includes + +#ifndef _RTL_USTRING_H_ +#include <rtl/ustring.h> +#endif + +#ifndef _SFXSMPLHINT_HXX +#include <svtools/smplhint.hxx> +#endif + +#ifndef _SV_SVAPP_HXX +#include <vcl/svapp.hxx> +#endif + +//__________________________________________ +// definition + +namespace framework +{ + +DEFINE_XINTERFACE_1( ColorListener , + OWeakObject , + DIRECT_INTERFACE(css::lang::XEventListener)) + +//__________________________________________ + +/** initialize new instance of this class. + + It set the window, on which we must apply our detecte color changes. + We start listening for changes and(!) window disposing here too. + + @attention Some ressources will be created on demand! + + @param xWindow + reference to the window + */ + +ColorListener::ColorListener( const css::uno::Reference< css::awt::XWindow >& xWindow ) + : ThreadHelpBase(&Application::GetSolarMutex()) + , SfxListener ( ) + , m_xWindow (xWindow ) + , m_bListen (sal_False ) + , m_pConfig (NULL ) +{ + impl_startListening(); + impl_applyColor(); +} + +//__________________________________________ + +/** deinitialize new instance of this class. + + Because it's done at different places ... we use an impl method! + + see impl_die() + */ + +ColorListener::~ColorListener() +{ + impl_die(); +} + +//__________________________________________ + +/** callback for color changes. + + @param rBroadcaster + should be our referenced config item (or any helper of it!) + + @param rHint + transport an ID, which identify the broadcasted message + */ + +void ColorListener::Notify( SfxBroadcaster& rBroadCaster, const SfxHint& rHint ) +{ + if (((SfxSimpleHint&)rHint).GetId()==SFX_HINT_COLORS_CHANGED) + impl_applyColor(); +} + +void ColorListener::impl_applyColor() +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + if (m_pConfig) + { + css::uno::Reference< css::awt::XWindowPeer > xPeer(m_xWindow, css::uno::UNO_QUERY); + ::svtools::ColorConfigValue aBackgroundColor = m_pConfig->GetColorValue( ::svtools::APPBACKGROUND ); + if (xPeer.is()) + { + xPeer->setBackground(aBackgroundColor.nColor); + xPeer->invalidate( + css::awt::InvalidateStyle::UPDATE | css::awt::InvalidateStyle::CHILDREN | css::awt::InvalidateStyle::NOTRANSPARENT ); + } + } + + aReadLock.unlock(); + /* } SAFE */ +} + +//__________________________________________ + +/** callback for window destroy. + + We must react here automaticly and forget our window reference. + We can die immediatly too. Because there is nothing to do any longer. + + @param aEvent + must referr to our window. + + @throw ::com::sun::star::uno::RuntimeException + if event source doesn't points to our internal saved window. + */ +void SAL_CALL ColorListener::disposing( const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException) +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + if (aEvent.Source!=m_xWindow) + throw css::uno::RuntimeException( + DECLARE_ASCII(""), + css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY) ); + + impl_die(); + + aReadLock.unlock(); + /* } SAFE */ +} + +//__________________________________________ + +/** starts listening for color changes and window destroy. + + We create the needed config singleton on demand here. + */ + +void ColorListener::impl_startListening() +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + if (!m_bListen) + { + if (!m_pConfig) + m_pConfig = new ::svtools::ColorConfig(); + + StartListening(*(SfxBroadcaster*)m_pConfig); + + css::uno::Reference< css::lang::XComponent > xDispose(m_xWindow, css::uno::UNO_QUERY); + if (xDispose.is()) + xDispose->addEventListener( css::uno::Reference< css::lang::XEventListener >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY) ); + + m_bListen = sal_True; + } + + aWriteLock.unlock(); + /* } SAFE */ +} + +//__________________________________________ + +/** stops listening for color changes and window destroy. + */ +void ColorListener::impl_stopListening() +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + if (m_bListen) + { + EndListeningAll(); + + delete m_pConfig; + m_pConfig = NULL; + + css::uno::Reference< css::lang::XComponent > xDispose(m_xWindow, css::uno::UNO_QUERY); + if (xDispose.is()) + xDispose->removeEventListener( css::uno::Reference< css::lang::XEventListener >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY) ); + + m_bListen = sal_False; + } + + aWriteLock.unlock(); + /* } SAFE */ +} + +//__________________________________________ + +/** release all used references. + + Free all used memory and release any used references. + Of course cancel all existing listener connections, to be + shure never be called again. + */ +void ColorListener::impl_die() +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + // Attention: Deleting of our broadcaster will may force a Notify() call. + // To supress that, we have to disable our listener connection first. + impl_stopListening(); + m_xWindow = css::uno::Reference< css::awt::XWindow >(); + + aReadLock.unlock(); + /* } SAFE */ +} + +} // namespace framework diff --git a/framework/source/classes/converter.cxx b/framework/source/classes/converter.cxx index 3883f0d0161a..225beaa245d7 100644 --- a/framework/source/classes/converter.cxx +++ b/framework/source/classes/converter.cxx @@ -2,9 +2,9 @@ * * $RCSfile: converter.cxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: as $ $Date: 2002-10-11 13:41:12 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:29 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -121,6 +121,38 @@ css::uno::Sequence< css::beans::PropertyValue > Converter::convert_seqAny2seqPro //----------------------------------------------------------------------------- /** + * converts a sequence of NamedValue to a sequence of PropertyValue. + */ +css::uno::Sequence< css::beans::PropertyValue > Converter::convert_seqNamedVal2seqPropVal( const css::uno::Sequence< css::beans::NamedValue >& lSource ) +{ + sal_Int32 nCount = lSource.getLength(); + css::uno::Sequence< css::beans::PropertyValue > lDestination(nCount); + for (sal_Int32 nItem=0; nItem<nCount; ++nItem) + { + lDestination[nItem].Name = lSource[nItem].Name ; + lDestination[nItem].Value = lSource[nItem].Value; + } + return lDestination; +} + +//----------------------------------------------------------------------------- +/** + * converts a sequence of PropertyValue to a sequence of NamedValue. + */ +css::uno::Sequence< css::beans::NamedValue > Converter::convert_seqPropVal2seqNamedVal( const css::uno::Sequence< css::beans::PropertyValue >& lSource ) +{ + sal_Int32 nCount = lSource.getLength(); + css::uno::Sequence< css::beans::NamedValue > lDestination(nCount); + for (sal_Int32 nItem=0; nItem<nCount; ++nItem) + { + lDestination[nItem].Name = lSource[nItem].Name ; + lDestination[nItem].Value = lSource[nItem].Value; + } + return lDestination; +} + +//----------------------------------------------------------------------------- +/** * converts a sequence of unicode strings into a vector of such items */ OUStringList Converter::convert_seqOUString2OUStringList( const css::uno::Sequence< ::rtl::OUString >& lSource ) diff --git a/framework/source/classes/droptargetlistener.cxx b/framework/source/classes/droptargetlistener.cxx index 57cb941ab28b..aadf17dd5c00 100644 --- a/framework/source/classes/droptargetlistener.cxx +++ b/framework/source/classes/droptargetlistener.cxx @@ -2,9 +2,9 @@ * * $RCSfile: droptargetlistener.cxx,v $ * - * $Revision: 1.6 $ + * $Revision: 1.7 $ * - * last change: $Author: as $ $Date: 2002-07-05 08:00:39 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:29 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -253,28 +253,12 @@ void SAL_CALL DropTargetListener::dropActionChanged( const css::datatransfer::dn void DropTargetListener::implts_BeginDrag( const css::uno::Sequence< css::datatransfer::DataFlavor >& rSupportedDataFlavors ) { - DataFlavorEx aFlavorEx; - const css::datatransfer::DataFlavor* pFlavor = rSupportedDataFlavors.getConstArray(); - /* SAFE { */ WriteGuard aWriteLock(m_aLock); m_pFormats->clear(); + TransferableDataHelper::FillDataFlavorExVector(rSupportedDataFlavors,*m_pFormats); aWriteLock.unlock(); /* } SAFE */ - - for( sal_uInt32 i = 0, nCount = rSupportedDataFlavors.getLength(); i < nCount; i++, pFlavor++ ) - { - aFlavorEx.MimeType = pFlavor->MimeType; - aFlavorEx.HumanPresentableName = pFlavor->HumanPresentableName; - aFlavorEx.DataType = pFlavor->DataType; - aFlavorEx.mnSotId = SotExchange::RegisterFormat( *pFlavor ); - - /* SAFE { */ - aWriteLock.lock(); - m_pFormats->push_back( aFlavorEx ); - aWriteLock.unlock(); - /* } SAFE */ - } } void DropTargetListener::implts_EndDrag() diff --git a/framework/source/classes/framecontainer.cxx b/framework/source/classes/framecontainer.cxx index ce3badcf0d17..70a34ebd50d4 100644 --- a/framework/source/classes/framecontainer.cxx +++ b/framework/source/classes/framecontainer.cxx @@ -2,9 +2,9 @@ * * $RCSfile: framecontainer.cxx,v $ * - * $Revision: 1.17 $ + * $Revision: 1.18 $ * - * last change: $Author: as $ $Date: 2002-07-02 07:25:01 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:30 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -115,7 +115,7 @@ namespace framework{ /**-*************************************************************************************************************** @short initialize an empty container - @descr The container will be empty then - special features (e.g. the async quit timer) are disabled. + @descr The container will be empty then - special features (e.g. the async quit mechanism) are disabled. @threadsafe not neccessary - its not a singleton @modified 01.07.2002 14:42,as96863 @@ -123,7 +123,11 @@ namespace framework{ FrameContainer::FrameContainer() // initialize base classes first. // Order is neccessary for right initilization of his and OUR member ... m_aLock - : ThreadHelpBase ( &Application::GetSolarMutex() ) + : ThreadHelpBase ( &Application::GetSolarMutex() ) +/*DEPRECATEME + , m_bAsyncQuit ( sal_False ) // default must be "disabled"! + , m_aAsyncCall ( LINK( this, FrameContainer, implts_asyncQuit ) ) +*/ { } @@ -136,9 +140,6 @@ FrameContainer::FrameContainer() *****************************************************************************************************************/ FrameContainer::~FrameContainer() { - // Disable possible active quit timer! - // He can be active for owner=desktop only. - disableQuitTimer(); // Don't forget to free memory! clear(); } @@ -168,7 +169,7 @@ void FrameContainer::append( const css::uno::Reference< css::frame::XFrame >& xF /**-*************************************************************************************************************** @short remove a frame from the container - @descr In case we remove the last frame and our internal special feature (the async quit timer) + @descr In case we remove the last frame and our internal special feature (the async quit mechanism) was enabled by the desktop instance, we start it. @param xFrame @@ -196,15 +197,16 @@ void FrameContainer::remove( const css::uno::Reference< css::frame::XFrame >& xF // We don't need the write lock any longer ... // downgrade to read access. aWriteLock.downgrade(); - - // If last frame was removed and special quit timer is enabled by the desktop - // we must terminate the desktop by using this timer! - if (m_aContainer.size()<1 && m_rQuitTimer.isValid()) - m_rQuitTimer->start(); +/*DEPRECATEME + // If last frame was removed and special quit mode is enabled by the desktop + // we must terminate the application by using this asynchronous callback! + if (m_aContainer.size()<1 && m_bAsyncQuit) + m_aAsyncCall.Post(0); +*/ } aWriteLock.unlock(); - /* } SAFE */ + // } SAFE } /**-*************************************************************************************************************** @@ -237,7 +239,7 @@ sal_Bool FrameContainer::exist( const css::uno::Reference< css::frame::XFrame >& *****************************************************************************************************************/ void FrameContainer::clear() { - /* SAFE { */ + // SAFE { WriteGuard aWriteLock( m_aLock ); // Clear the container ... @@ -246,13 +248,15 @@ void FrameContainer::clear() // Its an reference to a valid container-item. // But no container item => no active frame! m_xActiveFrame = css::uno::Reference< css::frame::XFrame >(); - // If special quit timer is used - we must terminate the desktop. +/*DEPRECATEME + // If special quit mode is used - we must terminate the desktop. // He is the owner of this container and can't work without any visible tasks/frames! - if (m_rQuitTimer.isValid()) - m_rQuitTimer->start(); + if (m_bAsyncQuit) + m_aAsyncCall.Post(0); +*/ aWriteLock.unlock(); - /* } SAFE */ + // } SAFE } /**-*************************************************************************************************************** @@ -398,73 +402,88 @@ css::uno::Reference< css::frame::XFrame > FrameContainer::getActive() const } /**-*************************************************************************************************************** - @short enables the async quit timer, which terminates the office if last task will be closed - @descr If the last visible task will gone, nobody shows any UI then. But without any UI the user + @short enables the async quit mode, which terminates the office if last task will be closed + @descr If the last visible task will gone, nobody show any UI then. But without any UI the user has no chance to quit the application realy. So we must shutdown by ourself. - We do that by an async quit timer, which will be initialized and check after hi times out, - if any new task was opened. In case it wasn't ... it calls Desktop::terminate(). + We do that by an async quit call. - But note: It's not neccessary to start this timer if using the office doesn't require it. + But note: It's not neccessary to use this mechanism, if using the office doesn't require it. e.g. the command line parameters "-invisible", -headless" starts the office in a server mode. In this case the outside user controls the lifetime of it and must terminate it manually. @param xDesktop - only the child frame container of the desktop instance can use this special quit timer - Because only top level frames are used for cehcking. + only the child frame container of the desktop instance can use this special quit mode. + Because only top level frames are used for checking. @threadsafe yes - @modified 01.07.2002 14:30,as96863 + @modified 30.01.2003 11:26,as96863 *****************************************************************************************************************/ void FrameContainer::enableQuitTimer( const css::uno::Reference< css::frame::XDesktop >& xDesktop ) { - /* SAFE { */ +/*DEPRECATEME + // SAFE { WriteGuard aWriteLock( m_aLock ); - - // If no current timer exist - create a new one. - if( m_rQuitTimer.isEmpty() == sal_True ) - { - // How can we distinguish between the different office modes? - // a) Office is plugged if command argument "-plugin" could be detected. => timeout = 2 min - // b) Office runs in special "server" mode if "-headless", "-invisible" or "-server" could be detected. => timout disabled! - // c) Otherwise office runs in normal mode. => timeout = 5 sec - - // Parse command line for right parameter. - if( c_existCommand( COMMAND_PLUGIN ) == sal_True ) - { - m_rQuitTimer.bind( new AsyncQuit( xDesktop, E_PLUGIN ) ); - } - else - if( - ! c_existCommand( COMMAND_HEADLESS ) && - ! c_existCommand( COMMAND_INVISIBLE ) && - ! c_existCommand( COMMAND_SERVER ) - ) - { - m_rQuitTimer.bind( new AsyncQuit( xDesktop, E_FATOFFICE ) ); - } - } - /* } SAFE */ + m_xDesktop = xDesktop; + m_bAsyncQuit = xDesktop.is(); + aWriteLock.unlock(); + // } SAFE +*/ } /**-*************************************************************************************************************** - @short disable the async quit timer again - @descr Delete current quit timer. - If user wish to create it again he must do it with "enableQuitTimer()". + @short disable the async quit mechanism again + @descr Set the right state internaly and forget the desktop reference. + It's not neccessary to save this information any longer. + If user wish to establish this mode again he must do it with "enableQuitTimer()". @threadsafe yes - @modified 01.07.2002 14:37,as96863 + @modified 30.01.2003 11:23,as96863 *****************************************************************************************************************/ void FrameContainer::disableQuitTimer() { - /* SAFE { */ +/*DEPRECATEME + // SAFE { WriteGuard aWriteLock( m_aLock ); - - if (m_rQuitTimer.isValid()) - m_rQuitTimer.unbind(); - /* } SAFE */ + m_bAsyncQuit = sal_False; + m_xDesktop = css::uno::WeakReference< css::frame::XDesktop >(); + aWriteLock.unlock(); + // } SAFE +*/ } /**-*************************************************************************************************************** + @short asyncronous callback for our special quit feature + @descr In case the last frame was removed from this container and our owner is the desktop itself, + we have to terminate the whole application. + But we have to check, between starting this mechanism and now no new frame was opened. + + @threadsafe yes + @modified 30.01.2003 11:24,as96863 + *****************************************************************************************************************/ +/*DEPRECATEME +IMPL_LINK( FrameContainer, implts_asyncQuit, void*, pVoid ) +{ + // SAFE { + ReadGuard aReadLock(m_aLock); + css::uno::Reference< css::frame::XDesktop > xDesktop ( m_xDesktop.get(), css::uno::UNO_QUERY ); + aReadLock.unlock(); + // } SAFE + + css::uno::Reference< css::frame::XFramesSupplier > xSupplier( xDesktop, css::uno::UNO_QUERY ); + if (xSupplier.is()) + { + css::uno::Reference< css::container::XElementAccess > xFrames( xSupplier->getFrames(), css::uno::UNO_QUERY ); + if (!xFrames.is() || !xFrames->hasElements() ) + { + LOG_WARNING("FrameContainer::implts_asyncQuit()", "force terminate ...\nPlease check if it's realy neccessary!") + xDesktop->terminate(); + } + } + + return 0; +} +*/ +/**-*************************************************************************************************************** @short implements a simple search based on current container items @descr It can be used for findFrame() and implements a deep down search. @@ -534,33 +553,4 @@ css::uno::Reference< css::frame::XFrame > FrameContainer::searchOnDirectChildren return xSearchedFrame; } - -/**-*************************************************************************************************************** - @short special debug mode! - @descr Sometimes frames will be inserted in this container which hold no component inside! - Or they will be empty after inserting. ALLOWED FOR DEBUG ONLY! - We show assertion then. - - @threadsafe yes - @modified 01.07.2002 15:39,as96863 - *****************************************************************************************************************/ - -#ifdef ENABLE_ASSERTIONS -void FrameContainer::impldbg_checkForZombie() const -{ - /* SAFE { */ - ReadGuard aReadLock(m_aLock); - for (TConstFrameIterator pItem=m_aContainer.begin(); pItem!=m_aContainer.end(); ++pItem) - { - if ((*pItem)->getComponentWindow().is()) - { - LOG_WARNING("FrameContainer::impldbg_checkForZombie()", "Zombie found! Please check your frame tree ...") - break; - } - } - aReadLock.unlock(); - /* } SAFE */ -} -#endif // #ifdef ENABLE_ASSERTIONS - } // namespace framework diff --git a/framework/source/classes/framelistanalyzer.cxx b/framework/source/classes/framelistanalyzer.cxx new file mode 100644 index 000000000000..46e3fc926c95 --- /dev/null +++ b/framework/source/classes/framelistanalyzer.cxx @@ -0,0 +1,341 @@ +/************************************************************************* + * + * $RCSfile: framelistanalyzer.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:21:30 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#include "classes/framelistanalyzer.hxx" + +//_______________________________________________ +// my own includes + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_TARGETS_H_ +#include <targets.h> +#endif + +#ifndef __FRAMEWORK_PROPERTIES_H_ +#include <properties.h> +#endif + +//_______________________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif + +//_______________________________________________ +// includes of other projects + +#ifndef _SV_SVAPP_HXX +#include <vcl/svapp.hxx> +#endif + +//_______________________________________________ +// namespace + +namespace framework{ + +//_______________________________________________ +// non exported const + +//_______________________________________________ +// non exported definitions + +//_______________________________________________ +// declarations + +//_______________________________________________ + +/** + */ + +FrameListAnalyzer::FrameListAnalyzer( const css::uno::Reference< css::frame::XFramesSupplier >& xSupplier , + const css::uno::Reference< css::frame::XFrame >& xReferenceFrame , + sal_uInt32 eDetectMode ) + : m_xSupplier (xSupplier ) + , m_xReferenceFrame(xReferenceFrame) + , m_eDetectMode (eDetectMode ) +{ + impl_analyze(); +} + +//_______________________________________________ + +/** + */ + +FrameListAnalyzer::~FrameListAnalyzer() +{ +} + +//_______________________________________________ + +/** returns an analyzed list of all currently opened (top!) frames inside the desktop tree. + + We try to get a snapshot of all opened frames, which are part of the desktop frame container. + Of course we can't access frames, which stands outside of this tree. + But it's neccessary to collect top frames here only. Otherwhise we interpret closing of last + frame wrong. Further we analyze this list and split into different parts. + E.g. for "CloseDoc" we must know, which frames of the given list referr to the same model. + These frames must be closed then. But all other frames must be untouched. + In case the request was "CloseWin" these splitted lists can be used too, to decide if the last window + or document was closed. Then we have to initialize the backing window ... + Last but not least we must know something about our special help frame. It must be handled + seperatly. And last but not least - the backing component frame must be detected too. +*/ + +void FrameListAnalyzer::impl_analyze() +{ + // reset all members to get a consistent state + m_bReferenceIsHidden = sal_False; + m_bReferenceIsHelp = sal_False; + m_bReferenceIsBacking = sal_False; + m_xHelp = css::uno::Reference< css::frame::XFrame >(); + m_xBackingComponent = css::uno::Reference< css::frame::XFrame >(); + + // try to get the task container by using the given supplier + css::uno::Reference< css::container::XIndexAccess > xFrameContainer(m_xSupplier->getFrames(), css::uno::UNO_QUERY); + + // All return list get an initial size to include all possible frames. + // They will be packed at the end of this method ... using the actual step positions then. + sal_Int32 nVisibleStep = 0; + sal_Int32 nHiddenStep = 0; + sal_Int32 nModelStep = 0; + sal_Int32 nCount = xFrameContainer->getCount(); + + m_lOtherVisibleFrames.realloc(nCount); + m_lOtherHiddenFrames.realloc(nCount); + m_lModelFrames.realloc(nCount); + + // ask for the model of the given reference frame. + // It must be compared with the model of every frame of the container + // to sort it into the list of frames with the same model. + // Supress this step, if right detect mode isn't set. + css::uno::Reference< css::frame::XModel > xReferenceModel; + if ((m_eDetectMode & E_MODEL) == E_MODEL ) + { + css::uno::Reference< css::frame::XController > xReferenceController = m_xReferenceFrame->getController(); + if (xReferenceController.is()) + xReferenceModel = xReferenceController->getModel(); + } + + // check, if the reference frame is in hidden mode. + // But look, if this analyze step is realy needed. + css::uno::Reference< css::beans::XPropertySet > xSet(m_xReferenceFrame, css::uno::UNO_QUERY); + if ( + ((m_eDetectMode & E_HIDDEN) == E_HIDDEN) && + (xSet.is() ) + ) + { + css::uno::Any aValue = xSet->getPropertyValue(FRAME_PROPNAME_ISHIDDEN); + aValue >>= m_bReferenceIsHidden; + } + + // check, if the reference frame includes the backing component. + // But look, if this analyze step is realy needed. + if ( + ((m_eDetectMode & E_BACKINGCOMPONENT) == E_BACKINGCOMPONENT) && + (xSet.is() ) + ) + { + css::uno::Any aValue = xSet->getPropertyValue(FRAME_PROPNAME_ISBACKINGMODE); + aValue >>= m_bReferenceIsBacking; + } + + // check, if the reference frame includes the help module. + // But look, if this analyze step is realy needed. + if ( + ((m_eDetectMode & E_HELP) == E_HELP ) && + (m_xReferenceFrame->getName() == SPECIALTARGET_HELPTASK) + ) + { + m_bReferenceIsHelp = sal_True; + } + + try + { + // Step over all frames of the desktop frame container and analyze it. + for (sal_Int32 i=0; i<nCount; ++i) + { + // Ignore invalid items ... and of course the reference frame. + // It will be a member of the given frame list too - but it was already + // analyzed before! + css::uno::Reference< css::frame::XFrame > xFrame; + if ( + !(xFrameContainer->getByIndex(i) >>= xFrame) || + !(xFrame.is() ) || + (xFrame==m_xReferenceFrame ) + ) + continue; + + #ifdef ENABLE_WARNINGS + if ( + ((m_eDetectMode & E_ZOMBIE) == E_ZOMBIE) && + ( + (!xFrame->getContainerWindow().is()) || + (!xFrame->getComponentWindow().is()) + ) + ) + { + LOG_WARNING("FrameListAnalyzer::impl_analyze()", "ZOMBIE!") + } + #endif + + // ------------------------------------------------- + // a) Is it the special help task? + // Return it seperated from any return list. + if ( + ((m_eDetectMode & E_HELP) == E_HELP ) && + (xFrame->getName()==SPECIALTARGET_HELPTASK) + ) + { + m_xHelp = xFrame; + continue; + } + + // ------------------------------------------------- + // b) Or is includes this task the special backing component? + // Return it seperated from any return list. + // But check if the reference task itself is the backing frame. + // Our user mst know it to decide right. + if ((m_eDetectMode & E_BACKINGCOMPONENT) == E_BACKINGCOMPONENT) + { + xSet = css::uno::Reference< css::beans::XPropertySet >(xFrame, css::uno::UNO_QUERY); + sal_Bool bIsBacking; + + if ( + (xSet.is() ) && + (xSet->getPropertyValue(FRAME_PROPNAME_ISBACKINGMODE)>>=bIsBacking) && + (bIsBacking ) + ) + { + m_xBackingComponent = xFrame; + continue; + } + } + + // ------------------------------------------------- + // c) Or is it the a task, which uses the specified model? + // Add it to the list of "model frames". + if ((m_eDetectMode & E_MODEL) == E_MODEL) + { + css::uno::Reference< css::frame::XController > xController = xFrame->getController(); + css::uno::Reference< css::frame::XModel > xModel ; + if (xController.is()) + xModel = xController->getModel(); + if (xModel==xReferenceModel) + { + m_lModelFrames[nModelStep] = xFrame; + ++nModelStep; + continue; + } + } + + // ------------------------------------------------- + // d) Or is it the a task, which use another or no model at all? + // Add it to the list of "other frames". But look for it's + // visible state ... if it's allowed to do so. + // ------------------------------------------------- + sal_Bool bHidden = sal_False; + if ((m_eDetectMode & E_HIDDEN) == E_HIDDEN ) + { + xSet = css::uno::Reference< css::beans::XPropertySet >(xFrame, css::uno::UNO_QUERY); + if (xSet.is()) + { + css::uno::Any aValue = xSet->getPropertyValue(FRAME_PROPNAME_ISHIDDEN); + aValue >>= bHidden; + } + } + + if (bHidden) + { + m_lOtherHiddenFrames[nHiddenStep] = xFrame; + ++nHiddenStep; + } + else + { + m_lOtherVisibleFrames[nVisibleStep] = xFrame; + ++nVisibleStep; + } + } + } + catch(css::lang::IndexOutOfBoundsException) + { + // stop copying if index seams to be wrong. + // This interface can't realy guarantee its count for multithreaded + // environments. So it can occure! + } + + // Pack both lists by using the actual step positions. + // All empty or ignorable items should exist at the end of these lists + // behind the position pointers. So they will be removed by a reallocation. + m_lOtherVisibleFrames.realloc(nVisibleStep); + m_lOtherHiddenFrames.realloc(nHiddenStep); + m_lModelFrames.realloc(nModelStep); +} + +} // namespace framework diff --git a/framework/source/classes/makefile.mk b/framework/source/classes/makefile.mk index 9aa93b989a2e..e2cbea0977cb 100644 --- a/framework/source/classes/makefile.mk +++ b/framework/source/classes/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.25 $ +# $Revision: 1.26 $ # -# last change: $Author: cd $ $Date: 2002-10-11 14:32:34 $ +# last change: $Author: hr $ $Date: 2003-03-25 18:21:31 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -80,7 +80,6 @@ SLOFILES= $(SLO)$/servicemanager.obj \ $(SLO)$/wildcard.obj \ $(SLO)$/framecontainer.obj \ $(SLO)$/taskcreator.obj \ - $(SLO)$/asyncquit.obj \ $(SLO)$/targetfinder.obj \ $(SLO)$/argumentanalyzer.obj \ $(SLO)$/menumanager.obj \ @@ -106,11 +105,13 @@ SLOFILES= $(SLO)$/servicemanager.obj \ $(SLO)$/protocolhandlercache.obj \ $(SLO)$/addonmenu.obj \ $(SLO)$/addonsoptions.obj \ - $(SLO)$/fwkresid.obj + $(SLO)$/fwkresid.obj \ + $(SLO)$/colorlistener.obj \ + $(SLO)$/framelistanalyzer.obj SRCFILES =\ resource.src - + RESLIB1NAME= fwe RESLIB1SRSFILES= $(SRS)$/$(TARGET).srs RESLIB1DEPN= resource.src \ diff --git a/framework/source/classes/menumanager.cxx b/framework/source/classes/menumanager.cxx index fbfb3472b4e3..22defcc85d81 100644 --- a/framework/source/classes/menumanager.cxx +++ b/framework/source/classes/menumanager.cxx @@ -2,9 +2,9 @@ * * $RCSfile: menumanager.cxx,v $ * - * $Revision: 1.30 $ + * $Revision: 1.31 $ * - * last change: $Author: cd $ $Date: 2002-10-11 14:35:27 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:31 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -257,6 +257,7 @@ MenuManager::MenuManager( REFERENCE< XFRAME >& rFrame, Menu* pMenu, sal_Bool bDe m_bWasHiContrast = rSettings.GetMenuColor().IsDark(); m_bShowMenuImages = SvtMenuOptions().IsMenuIconsEnabled(); + sal_Int32 nAddonsURLPrefixLength = ADDONSPOPUPMENU_URL_PREFIX.getLength(); ::std::vector< USHORT > aQueryLabelItemIdVector; int nItemCount = pMenu->GetItemCount(); @@ -275,60 +276,79 @@ MenuManager::MenuManager( REFERENCE< XFRAME >& rFrame, Menu* pMenu, sal_Bool bDe PopupMenu* pPopupMenu = pMenu->GetPopupMenu( nItemId ); if ( pPopupMenu ) { - MenuManager* pSubMenuManager = new MenuManager( rFrame, pPopupMenu, bDeleteChildren, bDeleteChildren ); - - // store menu item command as we later have to know which menu is active (see Activate handler) - pSubMenuManager->m_aMenuItemCommand = aItemCommand; - - REFERENCE< XDISPATCH > aXDispatchRef; - MenuItemHandler* pMenuItemHandler = new MenuItemHandler( - nItemId, - pSubMenuManager, - aXDispatchRef ); - m_aMenuItemHandlerVector.push_back( pMenuItemHandler ); + if (( aItemCommand.getLength() > nAddonsURLPrefixLength ) && + ( aItemCommand.indexOf( ADDONSPOPUPMENU_URL_PREFIX ) == 0 )) + { + // A special addon popup menu, must be created with a different ctor + MenuManager* pSubMenuManager = new MenuManager( rFrame, (AddonPopupMenu *)pPopupMenu, bDeleteChildren, bDeleteChildren ); - if ( pMenu->GetItemText( nItemId ).Len() == 0 ) - aQueryLabelItemIdVector.push_back( nItemId ); + // store menu item command as we later have to know which menu is active (see Activate handler) + pSubMenuManager->m_aMenuItemCommand = aItemCommand; - // Create addon popup menu if there exists elements and this is the tools popup menu - if (( nItemId == SID_ADDONLIST || - aItemCommand == aSlotSpecialToolsMenu ) && - AddonMenu::HasElements() ) + REFERENCE< XDISPATCH > aXDispatchRef; + MenuItemHandler* pMenuItemHandler = new MenuItemHandler( + nItemId, + pSubMenuManager, + aXDispatchRef ); + m_aMenuItemHandlerVector.push_back( pMenuItemHandler ); + } + else { - AddonMenu* pSubMenu = new AddonMenu( rFrame ); - USHORT nCount = pPopupMenu->GetItemCount(); - if ( nCount > 0 ) - { - if ( pPopupMenu->GetItemType( nCount-1 ) != MENUITEM_SEPARATOR ) - pPopupMenu->InsertSeparator(); - } + MenuManager* pSubMenuManager = new MenuManager( rFrame, pPopupMenu, bDeleteChildren, bDeleteChildren ); - // Use resource to load popup menu title - String aAddonsStrRes = String( FwkResId( STR_MENU_ADDONS )); - pPopupMenu->InsertItem( ITEMID_ADDONLIST, aAddonsStrRes ); - pPopupMenu->SetPopupMenu( ITEMID_ADDONLIST, pSubMenu ); + // store menu item command as we later have to know which menu is active (see Activate handler) + pSubMenuManager->m_aMenuItemCommand = aItemCommand; - // Set item command for popup menu to enable it for GetImageFromURL - aItemCommand = aSlotString; - aItemCommand += ::rtl::OUString::valueOf( (sal_Int32)ITEMID_ADDONLIST ); - pPopupMenu->SetItemCommand( ITEMID_ADDONLIST, aItemCommand ); - - MenuManager* pSubMenuManager = new MenuManager( rFrame, pSubMenu, sal_True, sal_False ); REFERENCE< XDISPATCH > aXDispatchRef; MenuItemHandler* pMenuItemHandler = new MenuItemHandler( nItemId, pSubMenuManager, aXDispatchRef ); + m_aMenuItemHandlerVector.push_back( pMenuItemHandler ); + if ( pMenu->GetItemText( nItemId ).Len() == 0 ) aQueryLabelItemIdVector.push_back( nItemId ); - m_aMenuItemHandlerVector.push_back( pMenuItemHandler ); - // Set image for the addon popup menu item - if ( m_bShowMenuImages && !pPopupMenu->GetItemImage( ITEMID_ADDONLIST )) + // Create addon popup menu if there exists elements and this is the tools popup menu + if (( nItemId == SID_ADDONLIST || + aItemCommand == aSlotSpecialToolsMenu ) && + AddonMenu::HasElements() ) { - Image aImage = GetImageFromURL( rFrame, aItemCommand, FALSE, m_bWasHiContrast ); - if ( !!aImage ) - pPopupMenu->SetItemImage( ITEMID_ADDONLIST, aImage ); + AddonMenu* pSubMenu = new AddonMenu( rFrame ); + USHORT nCount = pPopupMenu->GetItemCount(); + if ( nCount > 0 ) + { + if ( pPopupMenu->GetItemType( nCount-1 ) != MENUITEM_SEPARATOR ) + pPopupMenu->InsertSeparator(); + } + + // Use resource to load popup menu title + String aAddonsStrRes = String( FwkResId( STR_MENU_ADDONS )); + pPopupMenu->InsertItem( ITEMID_ADDONLIST, aAddonsStrRes ); + pPopupMenu->SetPopupMenu( ITEMID_ADDONLIST, pSubMenu ); + + // Set item command for popup menu to enable it for GetImageFromURL + aItemCommand = aSlotString; + aItemCommand += ::rtl::OUString::valueOf( (sal_Int32)ITEMID_ADDONLIST ); + pPopupMenu->SetItemCommand( ITEMID_ADDONLIST, aItemCommand ); + + MenuManager* pSubMenuManager = new MenuManager( rFrame, pSubMenu, sal_True, sal_False ); + REFERENCE< XDISPATCH > aXDispatchRef; + MenuItemHandler* pMenuItemHandler = new MenuItemHandler( + nItemId, + pSubMenuManager, + aXDispatchRef ); + if ( pMenu->GetItemText( nItemId ).Len() == 0 ) + aQueryLabelItemIdVector.push_back( nItemId ); + m_aMenuItemHandlerVector.push_back( pMenuItemHandler ); + + // Set image for the addon popup menu item + if ( m_bShowMenuImages && !pPopupMenu->GetItemImage( ITEMID_ADDONLIST )) + { + Image aImage = GetImageFromURL( rFrame, aItemCommand, FALSE, m_bWasHiContrast ); + if ( !!aImage ) + pPopupMenu->SetItemImage( ITEMID_ADDONLIST, aImage ); + } } } } @@ -568,6 +588,76 @@ MenuManager::MenuManager( REFERENCE< XFRAME >& rFrame, AddonMenu* pAddonMenu, sa m_pVCLMenu->SetSelectHdl( LINK( this, MenuManager, Select )); } + +MenuManager::MenuManager( REFERENCE< XFRAME >& rFrame, AddonPopupMenu* pAddonPopupMenu, sal_Bool bDelete, sal_Bool bDeleteChildren ) : + ThreadHelpBase( &Application::GetSolarMutex() ), OWeakObject() +{ + m_bActive = sal_False; + m_bDeleteMenu = bDelete; + m_bDeleteChildren = bDeleteChildren; + m_pVCLMenu = pAddonPopupMenu; + m_xFrame = rFrame; + m_bInitialized = sal_False; + m_bIsBookmarkMenu = sal_True; + + const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings(); + m_bWasHiContrast = rSettings.GetMenuColor().IsDark(); + + SAL_STATIC_CAST( ::com::sun::star::uno::XInterface*, (OWeakObject*)this )->acquire(); + + int nItemCount = pAddonPopupMenu->GetItemCount(); + for ( int i = 0; i < nItemCount; i++ ) + { + USHORT nItemId = pAddonPopupMenu->GetItemId( i ); + + ::rtl::OUString aItemCommand = pAddonPopupMenu->GetItemCommand( nItemId ); + if ( !aItemCommand.getLength() ) + { + aItemCommand = aSlotString; + aItemCommand += ::rtl::OUString::valueOf( (sal_Int32)nItemId ); + pAddonPopupMenu->SetItemCommand( nItemId, aItemCommand ); + } + + PopupMenu* pPopupMenu = pAddonPopupMenu->GetPopupMenu( nItemId ); + if ( pPopupMenu ) + { + MenuManager* pSubMenuManager = new MenuManager( rFrame, pPopupMenu, bDeleteChildren, bDeleteChildren ); + + // store menu item command as we later have to know which menu is active (see Acivate handler) + pSubMenuManager->m_aMenuItemCommand = aItemCommand; + + REFERENCE< XDISPATCH > aXDispatchRef; + MenuItemHandler* pMenuItemHandler = new MenuItemHandler( + nItemId, + pSubMenuManager, + aXDispatchRef ); + m_aMenuItemHandlerVector.push_back( pMenuItemHandler ); + } + else + { + if ( pAddonPopupMenu->GetItemType( i ) != MENUITEM_SEPARATOR ) + { + MenuConfiguration::Attributes* pAttributes = (MenuConfiguration::Attributes *)(pAddonPopupMenu->GetUserValue( nItemId )); + REFERENCE< XDISPATCH > aXDispatchRef; + MenuItemHandler* pMenuItemHandler = new MenuItemHandler( nItemId, NULL, aXDispatchRef ); + + if ( pAttributes ) + { + // read additional attributes from attributes struct and BmkMenu implementation will delete all attributes itself!! + pMenuItemHandler->aTargetFrame = pAttributes->aTargetFrame; + } + + m_aMenuItemHandlerVector.push_back( pMenuItemHandler ); + } + } + } + + m_pVCLMenu->SetHighlightHdl( LINK( this, MenuManager, Highlight )); + m_pVCLMenu->SetActivateHdl( LINK( this, MenuManager, Activate )); + m_pVCLMenu->SetDeactivateHdl( LINK( this, MenuManager, Deactivate )); + m_pVCLMenu->SetSelectHdl( LINK( this, MenuManager, Select )); +} + Any SAL_CALL MenuManager::queryInterface( const ::com::sun::star::uno::Type & rType ) throw ( RuntimeException ) { Any a = ::cppu::queryInterface( @@ -1015,7 +1105,7 @@ void MenuManager::UpdateSpecialWindowMenu( Menu* pMenu ) void MenuManager::CreatePicklistArguments( Sequence< PropertyValue >& aArgsList, const MenuItemHandler* pMenuItemHandler ) { - const int NUM_OF_PICKLIST_ARGS = 4; + int NUM_OF_PICKLIST_ARGS = 3; Any a; aArgsList.realloc( NUM_OF_PICKLIST_ARGS ); @@ -1029,23 +1119,26 @@ void MenuManager::CreatePicklistArguments( Sequence< PropertyValue >& aArgsList, aArgsList[1].Value = a; ::rtl::OUString aFilter( pMenuItemHandler->aFilter ); - ::rtl::OUString aFilterOptions; sal_Int32 nPos = aFilter.indexOf( '|' ); - if( nPos >= 0 ) + if ( nPos >= 0 ) { - if ( nPos < ( aFilter.getLength() - 1 )) + ::rtl::OUString aFilterOptions; + + if ( nPos < ( aFilter.getLength() - 1 ) ) aFilterOptions = aFilter.copy( nPos+1 ); + + aArgsList[2].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FilterOptions" )); + a <<= aFilterOptions; + aArgsList[2].Value = a; + aFilter = aFilter.copy( 0, nPos-1 ); + aArgsList.realloc( ++NUM_OF_PICKLIST_ARGS ); } - aArgsList[2].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FilterOptions" )); - a <<= aFilterOptions; - aArgsList[2].Value = a; - - aArgsList[3].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FilterName" )); + aArgsList[NUM_OF_PICKLIST_ARGS-1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FilterName" )); a <<= aFilter; - aArgsList[3].Value = a; + aArgsList[NUM_OF_PICKLIST_ARGS-1].Value = a; } diff --git a/framework/source/classes/resource.src b/framework/source/classes/resource.src index d917b610b76e..840531c1181e 100644 --- a/framework/source/classes/resource.src +++ b/framework/source/classes/resource.src @@ -2,9 +2,9 @@ * * $RCSfile: resource.src,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: kz $ $Date: 2002-11-04 16:18:02 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:31 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -70,20 +70,22 @@ String STR_MENU_ADDONS Text[ russian ] = "Add-Ons"; Text[ greek ] = "Add-Ons"; Text[ dutch ] = "Add-Ons"; - Text[ french ] = "Add-Ons"; + Text[ french ] = "Add-ons"; Text[ spanish ] = "Add-Ons"; Text[ finnish ] = "Add-Ons"; - Text[ italian ] = "Add-Ons"; + Text[ italian ] = "Complementari"; Text[ danish ] = "Add-Ons"; - Text[ swedish ] = "Add-Ons"; + Text[ swedish ] = "Tillgg"; Text[ polish ] = "Add-Ons"; Text[ portuguese_brazilian ] = "Add-Ons"; - Text[ japanese ] = "Add-Ons"; + Text[ japanese ] = "アドオン"; Text[ korean ] = "Add-Ons"; Text[ chinese_simplified ] = "Add-Ons"; - Text[ chinese_traditional ] = "Add-Ons"; + Text[ chinese_traditional ] = "附加元件"; Text[ turkish ] = "Add-Ons"; Text[ arabic ] = "Add-Ons"; Text[ catalan ] = "Add-Ons"; Text[ thai ] = "Add-Ons"; }; + + diff --git a/framework/source/classes/taskcreator.cxx b/framework/source/classes/taskcreator.cxx index a3dfd112ff7e..e7619545f151 100644 --- a/framework/source/classes/taskcreator.cxx +++ b/framework/source/classes/taskcreator.cxx @@ -2,9 +2,9 @@ * * $RCSfile: taskcreator.cxx,v $ * - * $Revision: 1.10 $ + * $Revision: 1.11 $ * - * last change: $Author: as $ $Date: 2002-07-29 08:24:43 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:31 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -115,6 +115,10 @@ #include <com/sun/star/awt/WindowAttribute.hpp> #endif +#ifndef _COM_SUN_STAR_AWT_VCLWINDOWPEERATTRIBUTE_HPP_ +#include <com/sun/star/awt/VclWindowPeerAttribute.hpp> +#endif + #ifndef _COM_SUN_STAR_AWT_RECTANGLE_HPP_ #include <com/sun/star/awt/Rectangle.hpp> #endif @@ -123,6 +127,10 @@ #include <com/sun/star/awt/PosSize.hpp> #endif +#ifndef INCLUDED_SVTOOLS_COLORCFG_HXX +#include <svtools/colorcfg.hxx> +#endif + //_________________________________________________________________________________________________________________ // includes of my own project //_________________________________________________________________________________________________________________ @@ -281,11 +289,12 @@ css::uno::Reference< css::frame::XFrame > TaskCreator::implts_createSystemTask( aDescriptor.WindowAttributes = css::awt::WindowAttribute::BORDER | css::awt::WindowAttribute::MOVEABLE | css::awt::WindowAttribute::SIZEABLE | - css::awt::WindowAttribute::CLOSEABLE ; + css::awt::WindowAttribute::CLOSEABLE | + css::awt::VclWindowPeerAttribute::CLIPCHILDREN ; // create a new blank container window and get access to parent container to append new created task. css::uno::Reference< css::awt::XWindowPeer > xPeer = xToolkit->createWindow( aDescriptor ); css::uno::Reference< css::awt::XWindow > xWindow ( xPeer, css::uno::UNO_QUERY ); - xPeer->setBackground( 0xFFFFFFFF ); + xPeer->setBackground(::svtools::ColorConfig().GetColorValue(::svtools::APPBACKGROUND).nColor); css::uno::Reference< css::frame::XFrames > xContainer = xDesktop->getFrames(); if ( ( xWindow.is() ) && diff --git a/framework/source/dispatch/closedispatcher.cxx b/framework/source/dispatch/closedispatcher.cxx new file mode 100644 index 000000000000..5dc253d259c4 --- /dev/null +++ b/framework/source/dispatch/closedispatcher.cxx @@ -0,0 +1,883 @@ +/************************************************************************* + * + * $RCSfile: closedispatcher.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:21:36 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//_________________________________________________________________________________________________________________ +// my own includes +//_________________________________________________________________________________________________________________ + +#ifndef __FRAMEWORK_DISPATCH_CLOSEDISPATCHER_HXX_ +#include <dispatch/closedispatcher.hxx> +#endif + +#ifndef __FRAMEWORK_CLASSES_FRAMECONTAINER_HXX_ +#include <classes/framecontainer.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +#ifndef __FRAMEWORK_CLASSES_FRAMELISTANALYZER_HXX_ +#include <classes/framelistanalyzer.hxx> +#endif + +#ifndef __FRAMEWORK_TARGETS_H_ +#include <targets.h> +#endif + +#ifndef __FRAMEWORK_SERVICES_H_ +#include <services.h> +#endif + +#ifndef __FRAMEWORK_PROPERTIES_H_ +#include <properties.h> +#endif + +//_________________________________________________________________________________________________________________ +// interface includes +//_________________________________________________________________________________________________________________ + +#ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_ +#include <com/sun/star/util/XURLTransformer.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDER_HPP_ +#include <com/sun/star/frame/XDispatchProvider.hpp> +#endif + +#ifndef _COM_SUN_STAR_UTIL_XCLOSEABLE_HPP_ +#include <com/sun/star/util/XCloseable.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XCONTROLLER_HPP_ +#include <com/sun/star/frame/XController.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_ +#include <com/sun/star/frame/XModel.hpp> +#endif + +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_FRAMESEARCHFLAG_HPP_ +#include <com/sun/star/frame/FrameSearchFlag.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_ +#include <com/sun/star/lang/XInitialization.hpp> +#endif + +//_________________________________________________________________________________________________________________ +// includes of other projects +//_________________________________________________________________________________________________________________ + +#include <toolkit/helper/vclunohelper.hxx> +#include <vcl/window.hxx> +#include <vcl/wrkwin.hxx> +#include <vcl/svapp.hxx> + +//_________________________________________________________________________________________________________________ +// namespace +//_________________________________________________________________________________________________________________ + +namespace framework{ + +//_________________________________________________________________________________________________________________ +// non exported const +//_________________________________________________________________________________________________________________ + +#define URL_CLOSEDOC ".uno:CloseDoc" +#define URL_CLOSEWIN ".uno:CloseWin" +#define URL_CLOSEFRAME ".uno:CloseFrame" + +//_________________________________________________________________________________________________________________ +// non exported definitions +//_________________________________________________________________________________________________________________ + +//_________________________________________________________________________________________________________________ +// declarations +//_________________________________________________________________________________________________________________ + +DEFINE_XINTERFACE_3( CloseDispatcher , + OWeakObject , + DIRECT_INTERFACE(css::lang::XTypeProvider ), + DIRECT_INTERFACE(css::frame::XNotifyingDispatch), + DIRECT_INTERFACE(css::frame::XDispatch ) + ) + +DEFINE_XTYPEPROVIDER_3( CloseDispatcher , + css::lang::XTypeProvider , + css::frame::XNotifyingDispatch, + css::frame::XDispatch + ) + +//_______________________________________________ + +/** + @short standard ctor + @descr It initialize a new instance of this class with needed informations for work. + + @param xSMGR + reference to the uno servicemanager for creation of new services + + @param xTarget + reference to our target frame, at which we will work +*/ +CloseDispatcher::CloseDispatcher( /*IN*/ const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , + /*IN*/ const css::uno::Reference< css::frame::XFrame >& xTarget ) + // init baseclasses first + : ThreadHelpBase ( &Application::GetSolarMutex() ) + , ::cppu::OWeakObject( ) + // initialize members + , m_xSMGR ( xSMGR ) + , m_xTarget ( xTarget ) + , m_aAsyncCallback ( LINK( this, CloseDispatcher, impl_asyncCallback ) ) + , m_lStatusListener ( m_aLock.getShareableOslMutex() ) +{ +} + +//_______________________________________________ + +/** + @short standard dtor + @descr Here we have to release all our internal used ressources. +*/ +CloseDispatcher::~CloseDispatcher() +{ + m_xSMGR = css::uno::Reference< css::lang::XMultiServiceFactory >(); + m_xTarget = css::uno::Reference< css::frame::XFrame >(); + m_xResultListener = css::uno::Reference< css::frame::XDispatchResultListener >(); +} + +//_______________________________________________ + +/** + @short implementation of XDispatch::dispatch() + @descr We don't do the right things here directly. Because the derived interface XNotifyingDispatch + does the same ... but with an optional listener, we forward this request to this interface + using an empty listener. + + @see dispatchWithNotifcation() + + @param aURL + must be one of the following one: + <ul> + <li>.uno:CloseDoc</li> + <li>.uno:CloseWin</li> + </ul> + + @param lArguments + optional arguments for this request +*/ +void SAL_CALL CloseDispatcher::dispatch( /*IN*/ const css::util::URL& aURL , + /*IN*/ const css::uno::Sequence< css::beans::PropertyValue >& lArguments ) throw( css::uno::RuntimeException ) +{ + dispatchWithNotification(aURL, lArguments, css::uno::Reference< css::frame::XDispatchResultListener >() ); +} + +//_______________________________________________ + +/** + @short implementation of XDispatch::addStatusListener() + @descr It adds the interested listener to our internal container and register it for the given URL. + Of course we inform it immediatly about the current state (corresponding to the URL). + + @see removeStatusListener() + + @param aURL + must be one of the following one: + <ul> + <li>.uno:CloseDoc</li> + <li>.uno:CloseWin</li> + </ul> + + @param xListener + the interested listener + + @throw [com::sun::star::uno::RuntimeException] + in case the listener is given as a <NULL/> reference +*/ +void SAL_CALL CloseDispatcher::addStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xListener , + const css::util::URL& aURL ) throw(css::uno::RuntimeException) +{ + css::uno::Reference< css::uno::XInterface > xThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + + if (!xListener.is()) + throw css::uno::RuntimeException(DECLARE_ASCII("registration of NULL listener references not very usefull"), xThis); + + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + m_lStatusListener.addInterface(aURL.Complete, xListener); + css::uno::Reference< css::frame::XFrame > xTarget = m_xTarget; + aWriteLock.unlock(); + /* } SAFE */ + + css::uno::Reference< css::frame::XController > xController; + css::uno::Reference< css::frame::XModel > xModel ; + css::uno::Reference< css::beans::XPropertySet > xPropSet (xTarget, css::uno::UNO_QUERY); + + if (xTarget.is()) + xController = xTarget->getController(); + + if (xController.is()) + xModel = xController->getModel(); + + css::uno::Reference< css::beans::XPropertySet > xSet(xTarget, css::uno::UNO_QUERY); + sal_Bool bIsTargetAlreadyBackingWindow = sal_False; + if (xSet.is()) + xSet->getPropertyValue(FRAME_PROPNAME_ISBACKINGMODE)>>=bIsTargetAlreadyBackingWindow; + + sal_Bool bIsEnabled = ( + (aURL.Complete.equalsAscii(URL_CLOSEDOC) && xModel.is()) + || + (aURL.Complete.equalsAscii(URL_CLOSEWIN) && !bIsTargetAlreadyBackingWindow) + ); + + css::frame::FeatureStateEvent aEvent( + xThis , + aURL , + ::rtl::OUString(), + bIsEnabled , + sal_False , + css::uno::Any()) ; + + xListener->statusChanged(aEvent); +} + +//_______________________________________________ + +void SAL_CALL CloseDispatcher::removeStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xListener , + const css::util::URL& aURL ) throw(css::uno::RuntimeException) +{ + css::uno::Reference< css::uno::XInterface > xThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + + if (!xListener.is()) + throw css::uno::RuntimeException(DECLARE_ASCII("deregistration of NULL listener references not very usefull"), xThis); + + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + m_lStatusListener.removeInterface(aURL.Complete, xListener); + aWriteLock.unlock(); + /* } SAFE */ +} + +//_______________________________________________ + +/** + @short implementation of XNotifyingDispatch::dispatchWithNotification() + @descr + + @param aURL + must be one of the following one: + <ul> + <li>.uno:CloseDoc</li> + <li>.uno:CloseWin</li> + </ul> + + @param lArguments + optional arguments for this request + + @param xListener + an optional listener, which is interested on the results of this dispatch +*/ +void SAL_CALL CloseDispatcher::dispatchWithNotification( /*IN*/ const css::util::URL& aURL , + /*IN*/ const css::uno::Sequence< css::beans::PropertyValue >& lArguments, + /*IN*/ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException) +{ + // First we have to check, if this dispatcher is used right. Means if valid URLs are used. + // If not - we have to break this operation. But an optional listener must be informed. + sal_Bool bCloseDoc = aURL.Complete.equalsAscii(URL_CLOSEDOC ); + sal_Bool bCloseWin = aURL.Complete.equalsAscii(URL_CLOSEWIN ); + sal_Bool bCloseFrame = aURL.Complete.equalsAscii(URL_CLOSEFRAME); + + if ( + (!bCloseDoc ) && + (!bCloseWin ) && + (!bCloseFrame) + ) + { + impl_notifyResultListener( + xListener, + css::frame::DispatchResultState::FAILURE, + css::uno::Any()); + return; + } + + // OK - URLs are the right ones. + // Handle it at different places. + if (bCloseDoc) + impl_dispatchCloseDoc(lArguments, xListener); + else + if (bCloseWin) + impl_dispatchCloseWin(lArguments, xListener); + else + if (bCloseFrame) + impl_dispatchCloseFrame(lArguments, xListener); +} + +//_______________________________________________ + +/** + @short handle dispatch for ".uno:CloseDoc" + @descr We have to close all views for the same document and of course the document itself. + If that will close all currently opened frames too, we have to establish the backing window + mode. + + @param lArguments + the optional arguments of the original dispatch request + + @param xListener + an (optional) interested listener for dispatch result events +*/ +void CloseDispatcher::impl_dispatchCloseDoc( /*IN*/ const css::uno::Sequence< css::beans::PropertyValue >& lArguments, + /*IN*/ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) +{ + // analyze our target frame + // We must know someting about its internal state (controller/model ...) + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + css::uno::Reference< css::frame::XFramesSupplier > xTaskSupplier (m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + css::uno::Reference< css::frame::XFrame > xTarget = m_xTarget; + css::uno::Reference< css::frame::XController > xTargetController = m_xTarget->getController(); + css::uno::Reference< css::frame::XModel > xTargetModel ; + if (xTargetController.is()) + xTargetModel = xTargetController->getModel(); + + aReadLock.unlock(); + /* } SAFE */ + + // no model -> no close doc! + if (!xTargetModel.is()) + { + impl_notifyResultListener( + xListener, + css::frame::DispatchResultState::FAILURE, + css::uno::Any()); + return; + } + + // Search for all top frames and split by using different criterion. + FrameListAnalyzer aAnalyzer( + xTaskSupplier, + xTarget, + FrameListAnalyzer::E_ALL); + + // Close the document by closing all views/frames. + // But don't close the original target frame for this dispatch! + // Otherwhise our office will may be shutdown automaticly ... + sal_Int32 nMax = aAnalyzer.m_lModelFrames.getLength(); + for (sal_Int32 f=(nMax-1); f>=0; --f) + { + // Call it with FALSE to supress the dialog for "saving modified documents here". + // Otherwhise it will pop up for every view of this document. + // Use TRUE for closing of last view only ... and that can be our xTarget frame only! + css::uno::Reference< css::frame::XFrame > xModelFrame = aAnalyzer.m_lModelFrames[f]; + aAnalyzer.m_lModelFrames.realloc(f); + if (!impl_closeFrame(xModelFrame, sal_False)) + { + impl_notifyResultListener( + xListener, + css::frame::DispatchResultState::FAILURE, + css::uno::Any()); + return; + } + } + + // Attention: Do any action here asynchronous. Otherwhise e.g. some key handlers of our applications + // are not aware of some closed ressource ... and can produce a crash :-( + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // exit application? + // Only possible if we are already in backing state! + // And then it doesn't matter, if any hidden or help window is open. + if (aAnalyzer.m_bReferenceIsBacking) + { + m_eAsyncOperation = E_EXIT_APP; + } + else + // establish backing mode ? + // Only allowed, if: + // - the backing state does not already exist + // - or if no other visible frame seams to be open. + if ( + (aAnalyzer.m_lOtherVisibleFrames.getLength()==0) && + (aAnalyzer.m_lModelFrames.getLength()==0 ) && + (!aAnalyzer.m_xBackingComponent.is() ) && + (!aAnalyzer.m_bReferenceIsBacking ) + ) + { + m_eAsyncOperation = E_ESTABLISH_BACKINGMODE; + } + else + // close our target frame only. + // There is no relation to any other frame (which uses the same document) + // nor is it the backing component or any other special frame. + { + m_eAsyncOperation = E_CLOSE_TARGET; + } + m_xResultListener = xListener; + m_xSelfHold = css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + m_aAsyncCallback.Post(0); + aWriteLock.unlock(); + /* } SAFE */ +} + +//_______________________________________________ + +/** + @short handle dispatch for ".uno:CloseWin" + @descr We have to close our target frame/view (means its window) only. + But of course it can be the last open frame and we have to + establish our backing window. + + @param lArguments + the optional arguments of the original dispatch request + + @param xListener + an (optional) interested listener for dispatch result events +*/ +void CloseDispatcher::impl_dispatchCloseWin( /*IN*/ const css::uno::Sequence< css::beans::PropertyValue >& lArguments, + /*IN*/ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) +{ + // analyze our target frame + // We must know someting about its internal state (window ...) + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + css::uno::Reference< css::frame::XFramesSupplier > xTaskSupplier (m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + css::uno::Reference< css::frame::XFrame > xTarget = m_xTarget; + css::uno::Reference< css::awt::XWindow > xTargetWindow ; + if (xTarget.is()) + xTargetWindow = xTarget->getContainerWindow(); + + aReadLock.unlock(); + /* } SAFE */ + + // no window -> no close win! + if (!xTargetWindow.is()) + { + impl_notifyResultListener( + xListener, + css::frame::DispatchResultState::FAILURE, + css::uno::Any()); + return; + } + + // analyze the list of current open tasks + // Note: We use an empty model reference - because we are not interested on splitting + // of model and other frames. We need an information about an open help task here only. + FrameListAnalyzer aAnalyzer( + xTaskSupplier, + xTarget, + FrameListAnalyzer::E_HELP | FrameListAnalyzer::E_HIDDEN | FrameListAnalyzer::E_BACKINGCOMPONENT); + + // Attention: Do any action here asynchronous. Otherwhise e.g. some key handlers of our applications + // are not aware of some closed ressource ... and can produce a crash :-( + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // exit application? + // Only possible if we are already in backing state! + // And then it doesn't matter, if any hidden or help window is open. + if (aAnalyzer.m_bReferenceIsBacking) + { + m_eAsyncOperation = E_EXIT_APP; + } + else + // establish backing mode ? + // Only allowed, if: + // - the backing state does not already exist + // - or if no other visible frame seams to be open. + if ( + (aAnalyzer.m_lOtherVisibleFrames.getLength()==0) && + (!aAnalyzer.m_xBackingComponent.is() ) && + (!aAnalyzer.m_bReferenceIsBacking ) + ) + { + m_eAsyncOperation = E_ESTABLISH_BACKINGMODE; + } + else + // close our target frame only. + // There is no relation to any other frame (which uses the same document) + // nor is it the backing component or any other special frame. + { + m_eAsyncOperation = E_CLOSE_TARGET; + } + m_xResultListener = xListener; + m_xSelfHold = css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + m_aAsyncCallback.Post(0); + aWriteLock.unlock(); + /* } SAFE */ +} + +//_______________________________________________ + +/** + @short handle dispatch for ".uno:CloseFrame" + @descr We have to close our target frame/view only. + But of course it can be the last open frame and we have to + exit the application then. + + @param lArguments + the optional arguments of the original dispatch request + + @param xListener + an (optional) interested listener for dispatch result events +*/ +void CloseDispatcher::impl_dispatchCloseFrame( /*IN*/ const css::uno::Sequence< css::beans::PropertyValue >& lArguments, + /*IN*/ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) +{ + // analyze our target frame + // We must know someting about its internal state (window ...) + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + css::uno::Reference< css::frame::XFramesSupplier > xTaskSupplier (m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + css::uno::Reference< css::frame::XFrame > xTarget = m_xTarget; + css::uno::Reference< css::awt::XWindow > xTargetWindow ; + if (xTarget.is()) + xTargetWindow = xTarget->getContainerWindow(); + + aReadLock.unlock(); + /* } SAFE */ + + // no window -> no close win! + if (!xTargetWindow.is()) + { + impl_notifyResultListener( + xListener, + css::frame::DispatchResultState::FAILURE, + css::uno::Any()); + return; + } + + // analyze the list of current open tasks + // Note: We use an empty model reference - because we are not interested on splitting + // of model and other frames. We need an information about an open help task here only. + FrameListAnalyzer aAnalyzer( + xTaskSupplier, + xTarget, + FrameListAnalyzer::E_HELP | FrameListAnalyzer::E_HIDDEN | FrameListAnalyzer::E_ZOMBIE); + + // Attention: Do any action here asynchronous. Otherwhise e.g. some key handlers of our applications + // are not aware of some closed ressource ... and can produce a crash :-( + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // exit application? + if (aAnalyzer.m_lOtherVisibleFrames.getLength()==0) + { + m_eAsyncOperation = E_EXIT_APP; + } + else + // close our target frame only. + { + m_eAsyncOperation = E_CLOSE_TARGET; + } + m_xResultListener = xListener; + m_xSelfHold = css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + m_aAsyncCallback.Post(0); + aWriteLock.unlock(); + /* } SAFE */ +} + +//_______________________________________________ + +/** + @short it replaces the current component inside our target frame with a default version + @descr This default component shows an empty window and a simple menu. So an user + can start opening/creation of new documents. + + @attention But we have to do it asynchronous! Otherwhise it crashes inside the writer module + e.g. inside some key input handler. + + @see impl_dispatchCloseDoc() + @see impl_dispatchCloseWin() + @see impl_dispatchCloseFrame() +*/ +IMPL_LINK( CloseDispatcher, impl_asyncCallback, void*, pVoid ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // This method was called asynchronous from our main thread by using a pointer. + // But we live only yet, because we hold us self alive by an internal memeber reference! + // This reference must be released now. But we must use another temp. reference to ourself + // too, to be shure that this method can be finished successfully. + css::uno::Reference< css::uno::XInterface > xHoldAliveForThisCall = m_xSelfHold; + m_xSelfHold = css::uno::Reference< css::uno::XInterface >(); + + // decide, which operation must be done here + sal_Bool bSuccess = sal_False; + if (m_eAsyncOperation == E_ESTABLISH_BACKINGMODE) + bSuccess = impl_establishBackingMode(); + else + if (m_eAsyncOperation == E_CLOSE_TARGET) + bSuccess = impl_closeFrame(m_xTarget, sal_True); + else + if (m_eAsyncOperation == E_EXIT_APP) + bSuccess = impl_exitApp(m_xTarget); + + // notify a possible interested dispatch result listener + if (bSuccess) + { + impl_notifyResultListener( + m_xResultListener, + css::frame::DispatchResultState::SUCCESS, + css::uno::Any()); + } + else + { + impl_notifyResultListener( + m_xResultListener, + css::frame::DispatchResultState::FAILURE, + css::uno::Any()); + } + m_xResultListener = css::uno::Reference< css::frame::XDispatchResultListener >(); + + aWriteLock.unlock(); + /* } SAFE */ + + return 0; +} + +sal_Bool CloseDispatcher::impl_establishBackingMode() +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + sal_Bool bEstablished = sal_False; + + if (m_xTarget.is()) + { + css::uno::Reference< css::frame::XController > xController = m_xTarget->getController(); + css::uno::Reference< css::awt::XWindow > xContainerWindow = m_xTarget->getContainerWindow(); + + // Ask controller for its agreement. + // In case not - break this operation. + // We must do that, because we wish to replace it + // with our default component. + if ( + (xController.is() ) && + (xController->suspend(sal_True)) && + (xContainerWindow.is() ) + ) + { + css::uno::Sequence< css::uno::Any > lArgs(1); + lArgs[0] <<= xContainerWindow; + + css::uno::Reference< css::frame::XController > xBackingComp( + m_xSMGR->createInstanceWithArguments(DECLARE_ASCII("com.sun.star.comp.sfx2.view.BackingComp"), lArgs), + css::uno::UNO_QUERY); + + if (xBackingComp.is()) + { + css::uno::Reference< css::awt::XWindow > xBackingWin(xBackingComp, css::uno::UNO_QUERY); + m_xTarget->setComponent(xBackingWin, xBackingComp); + + xBackingComp->attachFrame(m_xTarget); + xContainerWindow->setVisible(sal_True); + + // Don't forget to set right state for this frame. It's in backing mode now. + // We have to do that AFTER xFrame->setComponent() was called. Because this method + // reset this state hardly! + css::uno::Reference< css::beans::XPropertySet > xSet(m_xTarget, css::uno::UNO_QUERY); + if (xSet.is()) + { + xSet->setPropertyValue(DECLARE_ASCII("IsBackingMode"), css::uno::makeAny(sal_True)); + bEstablished = sal_True; + } + } + } + } + + aReadLock.unlock(); + /* } SAFE */ + + return bEstablished; +} + +sal_Bool CloseDispatcher::impl_exitApp( css::uno::Reference< css::frame::XFrame >& xTarget ) +{ + // SAFE { + ReadGuard aReadLock(m_aLock); + css::uno::Reference< css::frame::XDesktop > xDesktop(m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + aReadLock.unlock(); + // } SAFE + + sal_Bool bTerminated = sal_False; + if (xDesktop.is()) + bTerminated = xDesktop->terminate(); + if (bTerminated) + xTarget = css::uno::Reference< css::frame::XFrame >(); + return bTerminated; +} + +//_______________________________________________ + +/** + @short try to close the given frame + @descr Because there exist many ways to close such frame and this functionality is + needed at different places, this helper can be called. It returns a boolean value, + which shows the result. + + @attention In case operation was successfully, the frame reference will be set to <NULL/>! + So it can't be used any longer. + + @param xFrame + the frame, which should be closed + + @param bCallSuspend + If we close multiple views to the same document, we wouldn't see any messages which asks: + "Whish you to save your modified document?". Such messages comes up by our Controller->suspend() call. + The the outside code can call us n times with "bCallSuspend=no" and one time with "...=yes". + + @return <TRUE/> if frame could be closed successfully, or<br> + <FALSE/> if not. +*/ +sal_Bool CloseDispatcher::impl_closeFrame( /*INOUT*/ css::uno::Reference< css::frame::XFrame >& xFrame , + /*IN*/ sal_Bool bCallSuspend ) +{ + if (!xFrame.is()) + return sal_True; + + if (bCallSuspend) + { + css::uno::Reference< css::frame::XController > xController = xFrame->getController(); + if ( + (xController.is() ) && + (!xController->suspend(sal_True)) + ) + { + return sal_False; + } + } + + sal_Bool bClosed = sal_False; + css::uno::Reference< css::util::XCloseable > xCloseable ( xFrame, css::uno::UNO_QUERY ); + css::uno::Reference< css::lang::XComponent > xDisposeable( xFrame, css::uno::UNO_QUERY ); + try + { + if (xCloseable.is()) + { + xCloseable->close(sal_False); // don't deliver the ownership! We will control next closing try! + bClosed = sal_True; + } + else + if (xDisposeable.is()) + { + xDisposeable->dispose(); + bClosed = sal_True; + } + } + catch( css::uno::Exception& ) + { + bClosed = sal_False; + } + + if (bClosed) + xFrame = css::uno::Reference< css::frame::XFrame >(); + + return bClosed; +} + +//_______________________________________________ + +/** + @short notify an optional dispatch result listener + @descr This method tries(!) to notify the given listener using the other given parameters. + We check for valid values here and pack the right event structure. + So an outside code must do it more then once. + + @param xListener + an (optional) interested listener for dispatch result events + Can be null! + + @param nState + the result state for the dispatch request + + @param aResult + the result for the dispatch request +*/ +void CloseDispatcher::impl_notifyResultListener( /*IN*/ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener, + /*IN*/ sal_Int16 nState , + /*IN*/ const css::uno::Any& aResult ) +{ + if (xListener.is()) + { + css::frame::DispatchResultEvent aEvent( + css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY), + nState, + aResult); + + xListener->dispatchFinished(aEvent); + } +} + +} // namespace framework diff --git a/framework/source/dispatch/dispatchprovider.cxx b/framework/source/dispatch/dispatchprovider.cxx index 3c4c05d1ba5d..bdf0203d8d5d 100644 --- a/framework/source/dispatch/dispatchprovider.cxx +++ b/framework/source/dispatch/dispatchprovider.cxx @@ -2,9 +2,9 @@ * * $RCSfile: dispatchprovider.cxx,v $ * - * $Revision: 1.27 $ + * $Revision: 1.28 $ * - * last change: $Author: mba $ $Date: 2002-10-24 12:24:54 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:36 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -81,6 +81,10 @@ #include <dispatch/selfdispatcher.hxx> #endif +#ifndef __FRAMEWORK_DISPATCH_CLOSEDISPATCHER_HXX_ +#include <dispatch/closedispatcher.hxx> +#endif + #ifndef __FRAMEWORK_DISPATCH_MENUDISPATCHER_HXX_ #include <dispatch/menudispatcher.hxx> #endif @@ -515,6 +519,21 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame /* } STATIC SAFE */ //----------------------------------------------------------------------------------------------------- + // 0) Some URLs are dispatched in a generic way (e.g. by the menu) using the default target "". + // But they are specified to use her own fix target. Detect such URLs here and use the correct target. + //----------------------------------------------------------------------------------------------------- + + ::rtl::OUString sTargetName = sTargetFrameName; + + if ( + (aURL.Complete.equalsAscii(".uno:CloseDoc")) || + (aURL.Complete.equalsAscii(".uno:CloseWin")) + ) + { + sTargetName = SPECIALTARGET_TOP; + } + + //----------------------------------------------------------------------------------------------------- // I) handle special cases which not right for using findFrame() first //----------------------------------------------------------------------------------------------------- @@ -526,8 +545,8 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame // Another eason is a possible plugin mode! //----------------------------------------------------------------------------------------------------- if ( - (sTargetFrameName==SPECIALTARGET_BLANK ) || - (sTargetFrameName==SPECIALTARGET_DEFAULT) + (sTargetName==SPECIALTARGET_BLANK ) || + (sTargetName==SPECIALTARGET_DEFAULT) ) { if (xPlugin.is()) @@ -539,7 +558,7 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame { css::uno::Reference< css::frame::XDispatchProvider > xParent( xFrame->getCreator(), css::uno::UNO_QUERY ); if (xParent.is()) - xDispatcher = xParent->queryDispatch(aURL, sTargetFrameName, 0); // its a special target - ignore search flags + xDispatcher = xParent->queryDispatch(aURL, sTargetName, 0); // its a special target - ignore search flags } } @@ -548,7 +567,7 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame // Special mode on frame or task to receive the local menu. Not supported by findFrame() //----------------------------------------------------------------------------------------------------- else - if (sTargetFrameName==SPECIALTARGET_MENUBAR) + if (sTargetName==SPECIALTARGET_MENUBAR) { xDispatcher = implts_getOrCreateDispatchHelper( E_MENUDISPATCHER, xFrame ); } @@ -559,7 +578,7 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame // It's defined for top level frames only. //----------------------------------------------------------------------------------------------------- else - if (sTargetFrameName==SPECIALTARGET_HELPAGENT) + if (sTargetName==SPECIALTARGET_HELPAGENT) { if (xFrame->isTop()) xDispatcher = implts_getOrCreateDispatchHelper( E_HELPAGENTDISPATCHER, xFrame ); @@ -581,7 +600,7 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame // Only the sfx (means the controller) can create it it. //----------------------------------------------------------------------------------------------------- else - if (sTargetFrameName==SPECIALTARGET_BEAMER) + if (sTargetName==SPECIALTARGET_BEAMER) { css::uno::Reference< css::frame::XDispatchProvider > xBeamer( xFrame->findFrame( SPECIALTARGET_BEAMER, css::frame::FrameSearchFlag::CHILDREN | css::frame::FrameSearchFlag::SELF ), css::uno::UNO_QUERY ); if (xBeamer.is()) @@ -599,7 +618,57 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame } //----------------------------------------------------------------------------------------------------- - // I.V) "_self", "" + // I.V) "_parent" + // Our parent frame (if it exist) should handle this URL. + //----------------------------------------------------------------------------------------------------- + else + if (sTargetName==SPECIALTARGET_PARENT) + { + css::uno::Reference< css::frame::XDispatchProvider > xParent( xFrame->getCreator(), css::uno::UNO_QUERY ); + if (xParent.is()) + // SELF => we must adress the parent directly... and not his parent or any other parent! + xDispatcher = xParent->queryDispatch(aURL, SPECIALTARGET_SELF, 0); + } + + //----------------------------------------------------------------------------------------------------- + // I.VI) "_top" + // This request must be forwarded to any parent frame, till we reach a top frame. + // If no parent exist, we can handle itself. + //----------------------------------------------------------------------------------------------------- + else + if (sTargetName==SPECIALTARGET_TOP) + { + if (xFrame->isTop()) + { + // There exist a hard coded interception for special URLs. + if ( + (aURL.Complete.equalsAscii(".uno:CloseDoc" )) || + (aURL.Complete.equalsAscii(".uno:CloseWin" )) || + (aURL.Complete.equalsAscii(".uno:CloseFrame")) + ) + { + xDispatcher = implts_getOrCreateDispatchHelper( E_CLOSEDISPATCHER, xFrame ); + } + else + { + // If we are this top frame itself (means our owner frame) + // we should call ourself recursiv with a better target "_self". + // So we can share the same code! (see reaction for "_self" inside this methode too.) + xDispatcher = this->queryDispatch(aURL,SPECIALTARGET_SELF,0); + } + } + else + { + css::uno::Reference< css::frame::XDispatchProvider > xParent( xFrame->getCreator(), css::uno::UNO_QUERY ); + // Normaly if isTop() returned FALSE ... the parent frame MUST(!) exist ... + // But it seams to be better to check that here to prevent us against an access violation. + if (xParent.is()) + xDispatcher = xParent->queryDispatch(aURL, SPECIALTARGET_TOP, 0); + } + } + + //----------------------------------------------------------------------------------------------------- + // I.VII) "_self", "" // Our owner frame should handle this URL. But we can't do it for all of them. // So we ask the internal setted controller first. If he disagree we try to find a registered // protocol handler. If this failed too - we check for a loadable content and in case of true @@ -607,42 +676,35 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame //----------------------------------------------------------------------------------------------------- else if ( - (sTargetFrameName==SPECIALTARGET_SELF) || - (sTargetFrameName.getLength()<1 ) + (sTargetName==SPECIALTARGET_SELF) || + (sTargetName.getLength()<1 ) ) { - if ( aURL.Complete.equalsAscii(".uno:CloseDoc") || aURL.Complete.equalsAscii(".uno:CloseWin") ) + // Ask our controller for his agreement for these dispatched URL ... + // because some URLs are internal and can be handled faster by SFX - which most is the current controller! + // But in case of e.g. the bibliography not all queries will be handled successfully here. + css::uno::Reference< css::frame::XDispatchProvider > xController( xFrame->getController(), css::uno::UNO_QUERY ); + if (xController.is()) + xDispatcher = xController->queryDispatch(aURL, SPECIALTARGET_SELF, 0); + + // If controller has no fun to dispatch these URL - we must search another right dispatcher. + // Search for any registered protocol handler first. + if (!xDispatcher.is()) + xDispatcher = implts_searchProtocolHandler(aURL); + + // Not for controller - not for protocol handler + // It should be a loadable content - may be a file. Check it ... + // This check is neccessary to found out, that + // support for some protocols isn't installed by user. May be + // "ftp" isn't available. So we suppress creation of our self dispatcher. + // The result will be clear. He can't handle it - but he would try it. + if ( + ( ! xDispatcher.is() ) && + ( implts_isLoadableContent(aURL) ) + ) { xDispatcher = implts_getOrCreateDispatchHelper( E_SELFDISPATCHER, xFrame ); } - else - { - // Ask our controller for his agreement for these dispatched URL ... - // because some URLs are internal and can be handled faster by SFX - which most is the current controller! - // But in case of e.g. the bibliography not all queries will be handled successfully here. - css::uno::Reference< css::frame::XDispatchProvider > xController( xFrame->getController(), css::uno::UNO_QUERY ); - if (xController.is()) - xDispatcher = xController->queryDispatch(aURL, SPECIALTARGET_SELF, 0); - - // If controller has no fun to dispatch these URL - we must search another right dispatcher. - // Search for any registered protocol handler first. - if (!xDispatcher.is()) - xDispatcher = implts_searchProtocolHandler(aURL); - - // Not for controller - not for protocol handler - // It should be a loadable content - may be a file. Check it ... - // This check is neccessary to found out, that - // support for some protocols isn't installed by user. May be - // "ftp" isn't available. So we suppress creation of our self dispatcher. - // The result will be clear. He can't handle it - but he would try it. - if ( - ( ! xDispatcher.is() ) && - ( implts_isLoadableContent(aURL) ) - ) - { - xDispatcher = implts_getOrCreateDispatchHelper( E_SELFDISPATCHER, xFrame ); - } - } } //----------------------------------------------------------------------------------------------------- @@ -657,7 +719,7 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame nRightFlags &= ~css::frame::FrameSearchFlag::CREATE; // try to find any existing target and ask him for his dispatcher - css::uno::Reference< css::frame::XFrame > xFoundFrame = xFrame->findFrame(sTargetFrameName, nRightFlags); + css::uno::Reference< css::frame::XFrame > xFoundFrame = xFrame->findFrame(sTargetName, nRightFlags); if (xFoundFrame.is()) { // Attention: Found target is our own owner frame! @@ -686,13 +748,13 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_queryFrame if (xPlugin.is()) { css::uno::Reference< css::frame::XDispatchProvider > xProvider( xPlugin, css::uno::UNO_QUERY ); - xDispatcher = xProvider->queryDispatch(aURL, sTargetFrameName, css::frame::FrameSearchFlag::CREATE); + xDispatcher = xProvider->queryDispatch(aURL, sTargetName, css::frame::FrameSearchFlag::CREATE); } else { css::uno::Reference< css::frame::XDispatchProvider > xParent( xFrame->getCreator(), css::uno::UNO_QUERY ); if (xParent.is()) - xDispatcher = xParent->queryDispatch(aURL, sTargetFrameName, css::frame::FrameSearchFlag::CREATE); + xDispatcher = xParent->queryDispatch(aURL, sTargetName, css::frame::FrameSearchFlag::CREATE); } } } @@ -930,6 +992,13 @@ css::uno::Reference< css::frame::XDispatch > DispatchProvider::implts_getOrCreat } break; + case E_CLOSEDISPATCHER : + { + CloseDispatcher* pDispatcher = new CloseDispatcher( xFactory, xOwner ); + xDispatchHelper = css::uno::Reference< css::frame::XDispatch >( static_cast< ::cppu::OWeakObject* >(pDispatcher), css::uno::UNO_QUERY ); + } + break; + case E_PLUGINDISPATCHER : { LOG_WARNING( "DispatchProvider::implts_getOrCreateDispatchHelper( E_PLUGINDISPATCHER )", "Not implemented yet!" ) diff --git a/framework/source/dispatch/helpagentdispatcher.cxx b/framework/source/dispatch/helpagentdispatcher.cxx index 85acb693b8da..2a6febb38ad8 100644 --- a/framework/source/dispatch/helpagentdispatcher.cxx +++ b/framework/source/dispatch/helpagentdispatcher.cxx @@ -2,9 +2,9 @@ * * $RCSfile: helpagentdispatcher.cxx,v $ * - * $Revision: 1.5 $ + * $Revision: 1.6 $ * - * last change: $Author: as $ $Date: 2002-05-23 12:52:47 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:37 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -426,31 +426,3 @@ namespace framework } // namespace framework //........................................................................ -/************************************************************************* - * history: - * $Log: not supported by cvs2svn $ - * Revision 1.4 2001/11/05 10:06:23 oj - * #94279# set Listener to NULL in dtor - * - * Revision 1.3 2001/10/11 09:21:51 pb - * fix: #93014# dont show tooltip - * - * Revision 1.2 2001/08/17 08:47:41 pb - * fix: #91160# ignore the url also on click closer - * - * Revision 1.1 2001/07/02 13:27:02 as - * #79955# move to dispatch dir - * - * Revision 1.3 2001/06/11 10:27:57 as - * #85529# use new lock mechanism - * - * Revision 1.2 2001/05/07 15:07:20 fs - * moved the HelpAgentWindow implementation to SVTOOLS (prevent creating a new resource file here) - * - * Revision 1.1 2001/05/07 13:42:24 fs - * initial checkin - help agent dispatcher - * - * - * Revision 1.0 03.05.01 11:28:01 fs - ************************************************************************/ - diff --git a/framework/source/dispatch/makefile.mk b/framework/source/dispatch/makefile.mk index 695eace095d7..8ab80ff20d30 100644 --- a/framework/source/dispatch/makefile.mk +++ b/framework/source/dispatch/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.4 $ +# $Revision: 1.5 $ # -# last change: $Author: as $ $Date: 2002-05-02 11:43:06 $ +# last change: $Author: hr $ $Date: 2003-03-25 18:21:37 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -91,7 +91,8 @@ SLOFILES= $(SLO)$/interceptionhelper.obj \ $(SLO)$/mailtodispatcher.obj \ $(SLO)$/soundhandler.obj \ $(SLO)$/interaction.obj \ - $(SLO)$/servicehandler.obj + $(SLO)$/servicehandler.obj \ + $(SLO)$/closedispatcher.obj # --- Targets ------------------------------------------------------ diff --git a/framework/source/dispatch/menudispatcher.cxx b/framework/source/dispatch/menudispatcher.cxx index dd515b748965..7baa6f5ecdf8 100644 --- a/framework/source/dispatch/menudispatcher.cxx +++ b/framework/source/dispatch/menudispatcher.cxx @@ -2,9 +2,9 @@ * * $RCSfile: menudispatcher.cxx,v $ * - * $Revision: 1.7 $ + * $Revision: 1.8 $ * - * last change: $Author: mba $ $Date: 2002-10-28 12:40:51 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:37 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -79,6 +79,10 @@ #include <classes/menuconfiguration.hxx> #endif +#ifndef __FRAMEWORK_CLASSES_ADDONMENU_HXX_ +#include <classes/addonmenu.hxx> +#endif + //_________________________________________________________________________________________________________________ // interface includes //_________________________________________________________________________________________________________________ @@ -169,6 +173,8 @@ using namespace ::vos ; // non exported const //_________________________________________________________________________________________________________________ +const USHORT SLOTID_HELPPOPUPMENU = 5410; + //_________________________________________________________________________________________________________________ // non exported definitions //_________________________________________________________________________________________________________________ @@ -355,7 +361,7 @@ void SAL_CALL MenuDispatcher::dispatch( const URL& a { aMenuConfiguration.StoreMenuBar( pMenuBar, xOutputStream ); bStoreSuccessfull = sal_True; - xOutputStream->flush(); // test!!!! + xOutputStream->flush(); } catch ( WrappedTargetException& ) { @@ -568,6 +574,21 @@ sal_Bool MenuDispatcher::impl_setMenuBar( MenuBar* pMenuBar, sal_Bool bMenuFromR { OGuard aSolarGuard( Application::GetSolarMutex() ); { + USHORT nPos = pMenuBar->GetItemPos( SLOTID_HELPPOPUPMENU ); + if ( nPos != MENU_ITEM_NOTFOUND ) + { + OUString aNoContext; + + Reference< XModel > xModel; + Reference< XController > xController( xFrame->getController(), UNO_QUERY ); + + if ( xController.is() ) + xModel = Reference< XModel >( xController->getModel(), UNO_QUERY ); + + // retrieve addon popup menus and add them to our menu bar + AddonPopupMenu::MergeAddonPopupMenus( xFrame, xModel, nPos, pMenuBar ); + } + // set new menu on our system window and create new menu manager if ( bMenuFromResource ) m_pMenuManager = new MenuManager( xFrame, pMenuBar, sal_True, sal_False ); diff --git a/framework/source/helper/acceleratorinfo.cxx b/framework/source/helper/acceleratorinfo.cxx new file mode 100644 index 000000000000..22ff5c98e536 --- /dev/null +++ b/framework/source/helper/acceleratorinfo.cxx @@ -0,0 +1,86 @@ +/************************************************************************* + * + * $RCSfile: acceleratorinfo.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:21:39 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#include <helper/acceleratorinfo.hxx> + +namespace framework +{ + +static pfunc_getCommandURLFromKeyCode _pGetCommandURLFromKeyCode = NULL; + +pfunc_getCommandURLFromKeyCode SAL_CALL SetCommandURLFromKeyCode( pfunc_getCommandURLFromKeyCode pNewFunc ) +{ + pfunc_getCommandURLFromKeyCode pOldFunc = _pGetCommandURLFromKeyCode; + _pGetCommandURLFromKeyCode = pNewFunc; + + return pOldFunc; +} + + +::rtl::OUString SAL_CALL GetCommandURLFromKeyCode( const KeyCode& aKeyCode ) +{ + if ( _pGetCommandURLFromKeyCode ) + return _pGetCommandURLFromKeyCode( aKeyCode ); + else + return rtl::OUString(); +} + +}; diff --git a/framework/source/helper/makefile.mk b/framework/source/helper/makefile.mk index f79279ec4e83..b8d8e09db89a 100644 --- a/framework/source/helper/makefile.mk +++ b/framework/source/helper/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.21 $ +# $Revision: 1.22 $ # -# last change: $Author: cd $ $Date: 2002-08-20 10:16:01 $ +# last change: $Author: hr $ $Date: 2003-03-25 18:21:39 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -95,7 +95,8 @@ SLOFILES= $(SLO)$/timerhelper.obj \ $(SLO)$/componentloader.obj \ $(SLO)$/loadeventlistener.obj \ $(SLO)$/persistentwindowstate.obj \ - $(SLO)$/networkdomain.obj + $(SLO)$/networkdomain.obj \ + $(SLO)$/acceleratorinfo.obj # --- Targets ------------------------------------------------------ diff --git a/framework/source/helper/oframes.cxx b/framework/source/helper/oframes.cxx index 75d161707c7b..710e3746f050 100644 --- a/framework/source/helper/oframes.cxx +++ b/framework/source/helper/oframes.cxx @@ -2,9 +2,9 @@ * * $RCSfile: oframes.cxx,v $ * - * $Revision: 1.8 $ + * $Revision: 1.9 $ * - * last change: $Author: as $ $Date: 2002-05-23 12:53:20 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:40 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -151,13 +151,21 @@ OFrames::~OFrames() //***************************************************************************************************************** // XInterface //***************************************************************************************************************** -DEFINE_XINTERFACE_3 ( OFrames , +DEFINE_XINTERFACE_4 ( OFrames , OWeakObject , + DIRECT_INTERFACE(XTypeProvider ), DIRECT_INTERFACE(XFrames ), DIRECT_INTERFACE(XIndexAccess ), DIRECT_INTERFACE(XElementAccess ) ) +DEFINE_XTYPEPROVIDER_4 ( OFrames , + XTypeProvider , + XFrames , + XIndexAccess , + XElementAccess + ) + //***************************************************************************************************************** // XFrames //***************************************************************************************************************** diff --git a/framework/source/helper/statusindicatorfactory.cxx b/framework/source/helper/statusindicatorfactory.cxx index ca292916e467..68fc1a41ec6f 100644 --- a/framework/source/helper/statusindicatorfactory.cxx +++ b/framework/source/helper/statusindicatorfactory.cxx @@ -2,9 +2,9 @@ * * $RCSfile: statusindicatorfactory.cxx,v $ * - * $Revision: 1.9 $ + * $Revision: 1.10 $ * - * last change: $Author: as $ $Date: 2002-04-24 09:50:20 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:40 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,10 +62,7 @@ //_________________________________________________________________________________________________________________ // my own includes //_________________________________________________________________________________________________________________ - -#include <string> // prevent clash between STLport 3.2.1 and C50 compiler includes #include <algorithm> -#include <time.h> #ifndef __FRAMEWORK_HELPER_STATUSINDICATORFACTORY_HXX_ #include <helper/statusindicatorfactory.hxx> @@ -135,6 +132,7 @@ #include <rtl/logfile.hxx> #endif +#include <time.h> //_________________________________________________________________________________________________________________ // namespace //_________________________________________________________________________________________________________________ @@ -185,32 +183,28 @@ DEFINE_XINTERFACE_3 ( StatusIndicatorFactory Calling of interface methods will throw an UninitializedException then! @threadsafe yes *//*-*************************************************************************************************************/ -StatusIndicatorFactory::StatusIndicatorFactory( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory , - const css::uno::Reference< css::frame::XFrame >& xOwner , - const css::uno::Reference< css::awt::XWindow >& xParentWindow ) +StatusIndicatorFactory::StatusIndicatorFactory( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory , + const css::uno::Reference< css::awt::XWindow >& xParentWindow , + sal_Bool bShowStatusBar) // Init baseclasses first : ThreadHelpBase ( &Application::GetSolarMutex() ) , TransactionBase ( ) , ::cppu::OWeakObject ( ) // Init member , m_xFactory ( xFactory ) - , m_xOwner ( xOwner ) , m_xParentWindow ( xParentWindow ) - , m_pStatusBar (NULL) + , m_pStatusBar ( NULL ) + , m_bProgressMode ( sal_False ) { - // Safe impossible cases - LOG_ASSERT2( implcp_StatusIndicatorFactory( xFactory, xOwner, xParentWindow ), "StatusIndicatorFactory::StatusIndicatorFactory()", "Invalid parameter detected!" ) - try { m_xParentWindow->addWindowListener( this ); - // We must be listener for disposing of our owner frame too. - // We must die, if he die! - m_xOwner->addEventListener( this ); - // Don't forget to open instance for normal working! m_aTransactionManager.setWorkingMode( E_WORK ); + + if (bShowStatusBar) + impl_createStatusBar(); } catch( css::uno::RuntimeException& ) { @@ -368,14 +362,8 @@ void SAL_CALL StatusIndicatorFactory::disposing( const css::lang::EventObject& a try { - // Stop listening on parent window and owner first. - m_xParentWindow->removeWindowListener( this ); - m_xOwner->removeEventListener ( this ); - - // Let owner, parent and all other references die ... m_xParentWindow = css::uno::Reference< css::awt::XWindow >(); - m_xOwner = css::uno::Reference< css::frame::XFrame >(); m_xFactory = css::uno::Reference< css::lang::XMultiServiceFactory >(); m_xActiveIndicator = css::uno::Reference< css::task::XStatusIndicator >(); @@ -384,6 +372,12 @@ void SAL_CALL StatusIndicatorFactory::disposing( const css::lang::EventObject& a // and if these references are not valid ... they will die automaticly. m_aStack.clear(); + if (m_pStatusBar) + { + delete m_pStatusBar; + m_pStatusBar = NULL; + } + // Mark object as dead! m_aTransactionManager.setWorkingMode( E_CLOSE ); } @@ -456,27 +450,16 @@ void StatusIndicatorFactory::start( const css::uno::Reference< css::task::XStatu vos::OGuard aGuard( Application::GetSolarMutex() ); // Create status indicator window to shared it for all created indictaor objects by this factory. - sal_Bool bNew = sal_False; - if( m_pStatusBar == NULL ) - { - m_pStatusBar = new StatusBar( VCLUnoHelper::GetWindow( m_xParentWindow ), WB_3DLOOK|WB_BORDER ); - bNew = sal_True; - } - - // force repaint! - Window* pParentWindow = VCLUnoHelper::GetWindow( m_xParentWindow ); - if ( pParentWindow ) - { - pParentWindow->Invalidate( INVALIDATE_CHILDREN ); - pParentWindow->Flush(); - } + if(!m_pStatusBar) + impl_createStatusBar(); - if(bNew) + if(!m_bProgressMode) { m_xParentWindow->setVisible( sal_True ); implts_recalcLayout(); m_pStatusBar->Show(); m_pStatusBar->StartProgressMode( sText ); + m_bProgressMode = sal_True; } m_nStartTime = impl_get10ThSec(); @@ -489,6 +472,34 @@ void StatusIndicatorFactory::start( const css::uno::Reference< css::task::XStatu impl_reschedule(); } +void StatusIndicatorFactory::impl_createStatusBar() +{ + /* UNSAFE AREA --------------------------------------------------------------------------------------------- */ + // Register transaction and reject wrong calls. + TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); + + /* SAFE AREA ----------------------------------------------------------------------------------------------- */ + ResetableGuard aLock( m_aLock ); + + Window* pParentWindow = VCLUnoHelper::GetWindow( m_xParentWindow ); + if ( pParentWindow ) + { + /* SOLAR SAFE { */ + ::vos::OClearableGuard aSolarLock(Application::GetSolarMutex()); + m_pStatusBar = new StatusBar( pParentWindow, WB_3DLOOK|WB_BORDER ); + implts_recalcLayout(); + m_pStatusBar->Show(); + // force repaint! + pParentWindow->Show(); + pParentWindow->Invalidate( INVALIDATE_CHILDREN ); + pParentWindow->Flush(); + aSolarLock.clear(); + /* } SOLAR SAFE */ + } + + aLock.unlock(); +} + /*-************************************************************************************************************//** @interface - @short public helper methods! @@ -548,6 +559,8 @@ void StatusIndicatorFactory::end( const css::uno::Reference< css::task::XStatusI m_pStatusBar = NULL; m_xActiveIndicator = css::uno::Reference< css::task::XStatusIndicator >(); + + m_bProgressMode = sal_False; } } catch( css::uno::RuntimeException& ) @@ -772,66 +785,4 @@ void StatusIndicatorFactory::implts_recalcLayout() } } -//_________________________________________________________________________________________________________________ -// debug methods -//_________________________________________________________________________________________________________________ - -/*-************************************************************************************************************//** - @short debug-method to check incoming parameter of some other mehods of this class - @descr The following methods are used to check parameters for other methods - of this class. The return value is used directly for an ASSERT(...). - - @seealso ASSERTs in implementation! - - @param references to checking variables - @return sal_False ,on invalid parameter - @return sal_True ,otherwise - - @onerror We return sal_False. -*//*-*************************************************************************************************************/ -#ifdef ENABLE_ASSERTIONS - -//***************************************************************************************************************** -// We need a valid servicemanager (xFactory) to create our shared indicator object and a parent window to initialize the indicator peer! -// The owner is used to get informations about disposing of it. We must die then too! -sal_Bool StatusIndicatorFactory::implcp_StatusIndicatorFactory( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory , - const css::uno::Reference< css::frame::XFrame >& xOwner , - const css::uno::Reference< css::awt::XWindow >& xParentWindow ) -{ - return( - ( &xFactory == NULL ) || - ( &xOwner == NULL ) || - ( &xParentWindow == NULL ) || - ( xFactory.is() == sal_False ) || - ( xOwner.is() == sal_False ) || - ( xParentWindow.is() == sal_False ) - ); -} - -//***************************************************************************************************************** -// We can test for null pointer only. I can't say if an integer of 0 is valid or not ... -sal_Bool StatusIndicatorFactory::implcp_windowResized( const css::awt::WindowEvent& aEvent ) -{ - return( &aEvent == NULL ); -} - -//***************************************************************************************************************** -// We can test for null pointer only. I can't say if an integer of 0 is valid or not ... -sal_Bool StatusIndicatorFactory::implcp_windowMoved( const css::awt::WindowEvent& aEvent ) -{ - return( &aEvent == NULL ); -} - -//***************************************************************************************************************** -// We check for null pointer and look for a valid source of this event. We will know who send us these message! -sal_Bool StatusIndicatorFactory::implcp_disposing( const css::lang::EventObject& aEvent ) -{ - return( - ( &aEvent == NULL ) || - ( aEvent.Source.is() == sal_False ) - ); -} - -#endif // #ifdef ENABLE_ASSERTIONS - } // namespace framework diff --git a/framework/source/helper/timerhelper.cxx b/framework/source/helper/timerhelper.cxx index 9ef8d8a95f1a..c876c82e0225 100644 --- a/framework/source/helper/timerhelper.cxx +++ b/framework/source/helper/timerhelper.cxx @@ -2,9 +2,9 @@ * * $RCSfile: timerhelper.cxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: as $ $Date: 2001-06-11 10:38:18 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:40 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -100,13 +100,3 @@ namespace framework } // namespace framework //........................................................................ -/************************************************************************* - * history: - * $Log: not supported by cvs2svn $ - * Revision 1.1 2001/05/07 13:42:13 fs - * initial checkin - a vos-based timer using a callback on expiration - * - * - * Revision 1.0 03.05.01 16:14:12 fs - ************************************************************************/ - diff --git a/framework/source/interaction/stillinteraction.cxx b/framework/source/interaction/stillinteraction.cxx index c3eb71d33d47..784637803a15 100644 --- a/framework/source/interaction/stillinteraction.cxx +++ b/framework/source/interaction/stillinteraction.cxx @@ -2,9 +2,9 @@ * * $RCSfile: stillinteraction.cxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: as $ $Date: 2002-08-12 11:45:04 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:42 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -89,6 +89,10 @@ #include <com/sun/star/task/XInteractionAbort.hpp> #endif +#ifndef _COM_SUN_STAR_TASK_XINTERACTIONAPPROVE_HPP_ +#include <com/sun/star/task/XInteractionApprove.hpp> +#endif + #ifndef _COM_SUN_STAR_DOCUMENT_XINTERACTIONFILTERSELECT_HPP_ #include <com/sun/star/document/XInteractionFilterSelect.hpp> #endif @@ -97,6 +101,10 @@ #include <com/sun/star/document/AmbigousFilterRequest.hpp> #endif +#ifndef _COM_SUN_STAR_TASK_ERRORCODEREQUEST_HPP_ +#include <com/sun/star/task/ErrorCodeRequest.hpp> +#endif + //_________________________________________________________________________________________________________________ // other includes //_________________________________________________________________________________________________________________ @@ -105,6 +113,10 @@ #include <vcl/svapp.hxx> #endif +#ifndef __RSC +#include <tools/errinf.hxx> +#endif + //_________________________________________________________________________________________________________________ // namespace //_________________________________________________________________________________________________________________ @@ -153,8 +165,9 @@ void SAL_CALL StillInteraction::handle( const css::uno::Reference< css::task::XI // We need XAbort as possible continuation as minimum! // An optional filter selection we can handle too. css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > lContinuations = xRequest->getContinuations(); - css::uno::Reference< css::task::XInteractionAbort > xAbort ; - css::uno::Reference< css::document::XInteractionFilterSelect > xFilter; + css::uno::Reference< css::task::XInteractionAbort > xAbort ; + css::uno::Reference< css::task::XInteractionApprove > xApprove ; + css::uno::Reference< css::document::XInteractionFilterSelect > xFilter ; sal_Int32 nCount=lContinuations.getLength(); for (sal_Int32 i=0; i<nCount; ++i) @@ -162,13 +175,18 @@ void SAL_CALL StillInteraction::handle( const css::uno::Reference< css::task::XI if ( ! xAbort.is() ) xAbort = css::uno::Reference< css::task::XInteractionAbort >( lContinuations[i], css::uno::UNO_QUERY ); + if( ! xApprove.is() ) + xApprove = css::uno::Reference< css::task::XInteractionApprove >( lContinuations[i], css::uno::UNO_QUERY ); + if ( ! xFilter.is() ) xFilter = css::uno::Reference< css::document::XInteractionFilterSelect >( lContinuations[i], css::uno::UNO_QUERY ); } // differ between abortable interactions (error, unknown filter ...) // and other ones (ambigous but not unknown filter ...) + css::task::ErrorCodeRequest aErrorCodeRequest ; css::document::AmbigousFilterRequest aAmbigousFilterRequest; + if (aRequest>>=aAmbigousFilterRequest) { if (xFilter.is()) @@ -179,10 +197,20 @@ void SAL_CALL StillInteraction::handle( const css::uno::Reference< css::task::XI } } else - if (xAbort.is()) + if( aRequest >>= aErrorCodeRequest ) { - xAbort->select(); + // warnings can be ignored => approve + // errors must break loading => abort + sal_Bool bWarning = (aErrorCodeRequest.ErrCode & ERRCODE_WARNING_MASK == ERRCODE_WARNING_MASK); + if (xApprove.is() && bWarning) + xApprove->select(); + else + if (xAbort.is()) + xAbort->select(); } + else + if (xAbort.is()) + xAbort->select(); } //_________________________________________________________________________________________________________________ diff --git a/framework/source/jobs/configaccess.cxx b/framework/source/jobs/configaccess.cxx index fbb4d8f80f0f..9cfe10186741 100644 --- a/framework/source/jobs/configaccess.cxx +++ b/framework/source/jobs/configaccess.cxx @@ -2,9 +2,9 @@ * * $RCSfile: configaccess.cxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: as $ $Date: 2002-10-11 13:41:13 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:42 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -169,6 +169,22 @@ ConfigAccess::~ConfigAccess() //________________________________ /** + @short return the internal mode of this instance + @descr May be the outside user need any information about successfully opened + or closed config access point objects. He can control the internal mode to do so. + + @return The internal open state of this object. + */ +ConfigAccess::EOpenMode ConfigAccess::getMode() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_eMode; + /* } SAFE */ +} + +//________________________________ +/** @short open the configuration access in the specified mode @descr We set the opened configuration access as our member. So any following method, which needs cfg access, can use it. That prevent us against multiple open/close requests. @@ -215,11 +231,18 @@ void ConfigAccess::open( /*IN*/ EOpenMode eMode ) lParams[0] <<= aParam; // open it - if (eMode==E_READONLY) - m_xConfig = xConfigProvider->createInstanceWithArguments(SERVICENAME_CFGREADACCESS , lParams); - else - if (eMode==E_READWRITE) - m_xConfig = xConfigProvider->createInstanceWithArguments(SERVICENAME_CFGUPDATEACCESS, lParams); + try + { + if (eMode==E_READONLY) + m_xConfig = xConfigProvider->createInstanceWithArguments(SERVICENAME_CFGREADACCESS , lParams); + else + if (eMode==E_READWRITE) + m_xConfig = xConfigProvider->createInstanceWithArguments(SERVICENAME_CFGUPDATEACCESS, lParams); + } + catch(css::uno::Exception& ex) + { + LOG_WARNING("open config ...", U2B(ex.Message)) + } m_eMode = E_CLOSED; if (m_xConfig.is()) diff --git a/framework/source/jobs/job.cxx b/framework/source/jobs/job.cxx new file mode 100644 index 000000000000..437e5f32201c --- /dev/null +++ b/framework/source/jobs/job.cxx @@ -0,0 +1,767 @@ + /************************************************************************* + * + * $RCSfile: job.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:21:43 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//________________________________ +// my own includes + +#ifndef __FRAMEWORK_JOBS_JOB_HXX_ +#include <jobs/job.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +#ifndef __FRAMEWORK_SERVICES_H_ +#include <services.h> +#endif + +//________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_TASK_XJOB_HPP_ +#include <com/sun/star/task/XJob.hpp> +#endif + +#ifndef _COM_SUN_STAR_TASK_XASYNCJOB_HPP_ +#include <com/sun/star/task/XAsyncJob.hpp> +#endif + +#ifndef _COM_SUN_STAR_UTIL_XCLOSEBROADCASTER_HPP_ +#include <com/sun/star/util/XCloseBroadcaster.hpp> +#endif + +//________________________________ +// includes of other projects + +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif + +#ifndef _SV_SVAPP_HXX +#include <vcl/svapp.hxx> +#endif + +//________________________________ +// namespace + +namespace framework{ + +//________________________________ +// non exported const + +//________________________________ +// non exported definitions + +//________________________________ +// declarations + +DEFINE_XINTERFACE_4( Job , + OWeakObject , + DIRECT_INTERFACE(css::lang::XTypeProvider ), + DIRECT_INTERFACE(css::task::XJobListener ), + DIRECT_INTERFACE(css::frame::XTerminateListener), + DIRECT_INTERFACE(css::util::XCloseListener ) + ) + +DEFINE_XTYPEPROVIDER_4( Job , + css::lang::XTypeProvider , + css::task::XJobListener , + css::frame::XTerminateListener, + css::util::XCloseListener + ) + +//________________________________ +/** + @short standard ctor + @descr It initialize this new instance. But it set some generic parameters here only. + Specialized informations (e.g. the alias or service name ofthis job) will be set + later using the method setJobData(). + + @param xSMGR + reference to the uno service manager + + @param xFrame + reference to the frame, in which environment we run + (May be null!) +*/ +Job::Job( /*IN*/ const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , + /*IN*/ const css::uno::Reference< css::frame::XFrame >& xFrame ) + : ThreadHelpBase (&Application::GetSolarMutex()) + , ::cppu::OWeakObject ( ) + , m_xSMGR (xSMGR ) + , m_xFrame (xFrame ) + , m_bCloseListening (sal_False ) + , m_bPendingCloseFrame (sal_False ) + , m_bRuns (sal_False ) + , m_aJobCfg (xSMGR ) +{ +} + +//________________________________ +/** + @short superflous! + @descr Releasing of memory and reference must be done inside die() call. + Otherwhise it's a bug. +*/ +Job::~Job() +{ +} + +//________________________________ +/** + @short set (or delete) a listener for sending dispatch result events + @descr Because this object is used in a wrapped mode ... the original listener + for such events can't be registered here directly. Because the + listener expect to get the original object given as source of the event. + That's why we get this source here too, to fake(!) it at sending time! + + @param xListener + the original listener for dispatch result events + + @param xSourceFake + our user, which got the registration request for this listener +*/ +void Job::setDispatchResultFake( /*IN*/ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener , + /*IN*/ const css::uno::Reference< css::uno::XInterface >& xSourceFake ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + m_xResultListener = xListener ; + m_xResultSourceFake = xSourceFake; + aWriteLock.unlock(); + /* } SAFE */ +} + +void Job::setJobData( const JobData& aData ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // reject dangerous calls + if (m_bRuns) + { + LOG_WARNING("Job::setJobData()", "job still running") + return; + } + + m_aJobCfg = aData; + aWriteLock.unlock(); + /* } SAFE */ +} + +JobData Job::getJobData() +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_aJobCfg; + /* } SAFE */ +} + +JobData& Job::getJobDataRef() +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_aJobCfg; + /* } SAFE */ +} + +//________________________________ +/** + @short runs the job + @descr It doesn't matter, if the job is an asynchronous or + synchronous one. This method returns only if it was finished + or cancelled. + + @param lDynamicArgs + optional arguments for job execution + In case the represented job is a configured one (which uses static + arguments too) all informations will be merged! +*/ +void Job::execute( /*IN*/ const css::uno::Sequence< css::beans::NamedValue >& lDynamicArgs ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // reject dangerous calls + if (m_bRuns) + { + LOG_WARNING("Job::execute()", "job still running") + return; + } + m_bRuns = sal_True; + + css::uno::Reference< css::task::XAsyncJob > xAJob; + css::uno::Reference< css::task::XJob > xSJob; + + // create the job + m_xJob = m_xSMGR->createInstance(m_aJobCfg.getService()); + if (m_aJobCfg.getMode()==JobData::E_ALIAS) + { + // If it's a configured job - the interface wich must be used is fix! + if (m_aJobCfg.isAsync()) + xAJob = css::uno::Reference< css::task::XAsyncJob >(m_xJob, css::uno::UNO_QUERY); + else + xSJob = css::uno::Reference< css::task::XJob >(m_xJob, css::uno::UNO_QUERY); + } + else + { + // If it's a job withou a configuration we must check for the supported interface on demand. + // But we preferr the synchronous one ... + xSJob = css::uno::Reference< css::task::XJob >(m_xJob, css::uno::UNO_QUERY); + if (!xSJob.is()) + xAJob = css::uno::Reference< css::task::XAsyncJob >(m_xJob, css::uno::UNO_QUERY); + } + + // execute it asynchron (and wait for finishing it!) + if (xAJob.is()) + { + // wait for finishing this job - so this method + // does the same for synchronous and asynchronous jobs! + m_aAsyncWait.reset(); + + css::uno::Reference< css::task::XJobListener > xJobListener(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + xAJob->executeAsync(impl_generateJobArgs(lDynamicArgs), xJobListener); + + aWriteLock.unlock(); + /* } SAFE */ + + m_aAsyncWait.wait(); + + aWriteLock.lock(); + /* SAFE { */ + // Note: Result handling was already done inside the callback! + } + // execute it synchron + else if (xSJob.is()) + { + css::uno::Any aResult = xSJob->execute(impl_generateJobArgs(lDynamicArgs)); + impl_reactForJobResult(aResult); + } + + // If we got a close request from our frame ... + // but we disagreed wit that ... + // but got the ownership ... + // we have to disable further working with this frame ... + // and to disable ourself! + if (m_bPendingCloseFrame) + die(); + else + // Don't forget that! Otherwhise nobody can use us any longer. + m_bRuns = sal_False; + + aWriteLock.unlock(); + /* SAFE { */ +} + +//________________________________ +/** + @short kill this job + @descr It doesn't matter if this request is called from inside or + from outside. We release our internal structures and stop + avary activity. After doing so - this instance will not be + useable any longer! Of course we try to handle further requests + carefully. May somehwere else hold a reference to us ... +*/ +void Job::die() +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + impl_stopListening(); + + m_xJob = css::uno::Reference< css::uno::XInterface >(); + m_xFrame = css::uno::Reference< css::frame::XFrame >(); + m_xDesktop = css::uno::Reference< css::frame::XDesktop >(); + m_xResultListener = css::uno::Reference< css::frame::XDispatchResultListener >(); + m_xResultSourceFake = css::uno::Reference< css::uno::XInterface >(); + m_bPendingCloseFrame = sal_False; + m_bRuns = sal_False; + + // neccessary to finish all blocked operations, which wait for that! + m_aAsyncWait.set(); + + aWriteLock.unlock(); + /* SAFE { */ +} + +//________________________________ +/** + @short generates list of arguments for job execute + @descr There exist a set of informations, which can be needed by a job. + a) it's static configuration data (Equals for all jobs. ) + b) it's specific configuration data (Different for every job.) + c) some environment values (e.g. the frame, for which this job was started) + d) any other dynamic data (e.g. parameters of a dispatch() request) + We collect all these informations and generate one list which include all others. + + @param lDynamicArgs + list of dynamic arguments (given by a corresponding dispatch() call) + Can be empty too. + + @return A list which includes all mentioned sub lists. +*/ +css::uno::Sequence< css::beans::NamedValue > Job::impl_generateJobArgs( /*IN*/ const css::uno::Sequence< css::beans::NamedValue >& lDynamicArgs ) +{ + css::uno::Sequence< css::beans::NamedValue > lConfigArgs ; + css::uno::Sequence< css::beans::NamedValue > lJobConfigArgs; + css::uno::Sequence< css::beans::NamedValue > lEnvArgs ; + css::uno::Sequence< css::beans::NamedValue > lAllArgs ; + + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + // get the configuration lists from the job data container ... if possible + // Means: if this job has any configuration data. + if (m_aJobCfg.getMode()==JobData::E_ALIAS) + { + lConfigArgs = m_aJobCfg.getConfig(); + lJobConfigArgs = m_aJobCfg.getJobConfig(); + } + + // Create list of environment variables. + if (m_xFrame.is()) + { + lEnvArgs.realloc(1); + lEnvArgs[0].Name = ::rtl::OUString::createFromAscii(JobData::PROP_FRAME); + lEnvArgs[0].Value <<= m_xFrame; + } + + aReadLock.unlock(); + /* } SAFE */ + + // Add all valid (not empty) lists to the return list + if (lConfigArgs.getLength()>0) + { + sal_Int32 nLength = lAllArgs.getLength(); + lAllArgs.realloc(nLength+1); + lAllArgs[nLength].Name = ::rtl::OUString::createFromAscii(JobData::PROPSET_CONFIG); + lAllArgs[nLength].Value <<= lConfigArgs; + } + if (lJobConfigArgs.getLength()>0) + { + sal_Int32 nLength = lAllArgs.getLength(); + lAllArgs.realloc(nLength+1); + lAllArgs[nLength].Name = ::rtl::OUString::createFromAscii(JobData::PROPSET_OWNCONFIG); + lAllArgs[nLength].Value <<= lJobConfigArgs; + } + if (lEnvArgs.getLength()>0) + { + sal_Int32 nLength = lAllArgs.getLength(); + lAllArgs.realloc(nLength+1); + lAllArgs[nLength].Name = ::rtl::OUString::createFromAscii(JobData::PROPSET_ENVIRONMENT); + lAllArgs[nLength].Value <<= lEnvArgs; + } + if (lDynamicArgs.getLength()>0) + { + sal_Int32 nLength = lAllArgs.getLength(); + lAllArgs.realloc(nLength+1); + lAllArgs[nLength].Name = ::rtl::OUString::createFromAscii(JobData::PROPSET_DYNAMICDATA); + lAllArgs[nLength].Value <<= lDynamicArgs; + } + + return lAllArgs; +} + +//________________________________ +/** + @short analyze the given job result and change the job configuration + @descr Note: Some results can be handled only, if this job has a valid configuration! + For "not configured jobs" (means pure services) they can be ignored. + But these cases are handled by our JobData member. We can call it everytime. + It does the right things automaticly. E.g. if the job has no configuration ... + it does nothing during setJobConfig()! + + @param aResult + the job result for analyzing +*/ +void Job::impl_reactForJobResult( /*IN*/ const css::uno::Any& aResult ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + JobResult aAnalyzedResult(aResult); + + // These items are interesting for configured jobs only. + if (aAnalyzedResult.existPart(JobResult::E_ARGUMENTS)) + m_aJobCfg.setJobConfig(aAnalyzedResult.getArguments()); + + if ( + (aAnalyzedResult.existPart(JobResult::E_DEACTIVATE)) && + (aAnalyzedResult.getDeactivate() ) + ) + { + m_aJobCfg.disableJob(); + } + + // handle all other results + // They does not depend if this job is an ALIAS or a SERVICE! + m_aJobCfg.setResult(aAnalyzedResult); + if ( + (aAnalyzedResult.existPart(JobResult::E_DISPATCHRESULT)) && + (m_xResultListener.is() ) + ) + { + // Attention: Because the listener expect that the original object send this event ... + // and we nor the job are the right ones ... + // our user has set itself before. So we can fake this source address! + css::frame::DispatchResultEvent aEvent = aAnalyzedResult.getDispatchResult(); + aEvent.Source = m_xResultSourceFake; + m_xResultListener->dispatchFinished(aEvent); + } + + aWriteLock.unlock(); + /* SAFE { */ +} + +//________________________________ +/** + @short starts listening for office shutdown and closing of our + given target frame (if its a valid reference) + @descr We will reghister ourself as terminate listener + at the global desktop instance. That will hold us + alive and additional we get the information, if the + office whish to shutdown. If then an internal job + is running we will have the chance to supress that + by throwing a veto exception. If our internal wrapped + job finished his work, we can release this listener + connection. + + Further we are listener for closing of the (possible valid) + given frame. We must be shure, that this ressource won't be gone + if our internal job is still running. +*/ +void Job::impl_startListening() +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // listening for office shutdown + if (!m_xDesktop.is()) + { + try + { + m_xDesktop = css::uno::Reference< css::frame::XDesktop >(m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); + css::uno::Reference< css::frame::XTerminateListener > xThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + if (m_xDesktop.is()) + m_xDesktop->addTerminateListener(xThis); + } + catch(css::uno::Exception&) + { + m_xDesktop = css::uno::Reference< css::frame::XDesktop >(); + } + } + + // listening for frame closing + if (m_xFrame.is() && m_bCloseListening) + { + try + { + css::uno::Reference< css::util::XCloseBroadcaster > xCloseable(m_xFrame , css::uno::UNO_QUERY); + css::uno::Reference< css::util::XCloseListener > xThis (static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + if (xCloseable.is()) + { + xCloseable->addCloseListener(xThis); + m_bCloseListening = sal_True; + } + } + catch(css::uno::Exception&) + { + m_bCloseListening = sal_False; + } + } + + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short release listener connection for office shutdown + @descr see description of impl_startListening() +*/ +void Job::impl_stopListening() +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // listening for office shutdown + if (m_xDesktop.is()) + { + try + { + css::uno::Reference< css::frame::XTerminateListener > xThis(static_cast< ::cppu::OWeakObject* >(this) , css::uno::UNO_QUERY); + m_xDesktop->removeTerminateListener(xThis); + m_xDesktop = css::uno::Reference< css::frame::XDesktop >(); + } + catch(css::uno::Exception&) + { + } + } + + // listening for frame closing + if (m_xFrame.is() && !m_bCloseListening) + { + try + { + css::uno::Reference< css::util::XCloseBroadcaster > xCloseable(m_xFrame , css::uno::UNO_QUERY); + css::uno::Reference< css::util::XCloseListener > xThis (static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + if (xCloseable.is()) + { + xCloseable->removeCloseListener(xThis); + m_bCloseListening = sal_False; + } + } + catch(css::uno::Exception&) + { + m_bCloseListening = sal_True; + } + } + + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short callback from any asynchronous executed job + + @descr Our execute() method waits for this callback. + We have to react for the possible results here, + to kill the running job and disable the blocked condition + so execute() can be finished too. + + @param xJob + the job, which was running and inform us now + + @param aResult + it's results +*/ +void SAL_CALL Job::jobFinished( /*IN*/ const css::uno::Reference< css::task::XAsyncJob >& xJob , + /*IN*/ const css::uno::Any& aResult ) throw(css::uno::RuntimeException) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // It's neccessary to check this. + // May this job was cancelled by any other reason + // some milliseconds before. :-) + if (m_xJob.is() && m_xJob==xJob) + { + // react for his results + // (means enable/disable it for further requests + // or save arguments or notify listener ...) + impl_reactForJobResult(aResult); + + // Let the job die! + m_xJob = css::uno::Reference< css::uno::XInterface >(); + } + + // And let the start method "execute()" finishing it's job. + // But do it everytime. So any outside blocking code can finish + // his work too. + m_aAsyncWait.set(); + + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short prevent internal wrapped job against office termination + @descr This event is broadcasted by the desktop instance and ask for an office termination. + If the internal wrapped job is still in progress, we disagree with that by throwing the + right veto exception. If not - we agree. But then we must be aware, that another event + notifyTermination() can follow. Then we have no chance to do the same. Then we have to + accept that and stop our work instandly. + + @param aEvent + describes the broadcaster and must be the desktop instance + + @throw TerminateVetoException + if our internal wrapped job is still running. + */ +void SAL_CALL Job::queryTermination( /*IN*/ const css::lang::EventObject& aEvent ) throw(css::frame::TerminationVetoException, + css::uno::RuntimeException ) +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + // if internal job is still running ... + // throw the suitable veto exception to supress office termination + if (m_bRuns) + { + css::uno::Reference< css::uno::XInterface > xThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + throw css::frame::TerminationVetoException(DECLARE_ASCII("job still in progress"), xThis); + } + + aReadLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short inform us about office termination + @descr Instead of the method queryTermination(), here is no chance to disagree with that. + We have to accept it and cancel all current processes inside. + It can occure only, if job was not already started if queryTermination() was called here .. + Then we had not throwed a veto exception. But now we must agree with this situation and break + all our internal processes. Its not a good idea to mark this instance as non startable any longer + inside queryTermination() if no job was unning too. Because that would disable this job and may + the office does not realy shutdownm, because another listener has thrown the suitable exception. + + @param aEvent + describes the broadcaster and must be the desktop instance + */ +void SAL_CALL Job::notifyTermination( /*IN*/ const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException) +{ + // Kill the (may still running) job + // and stop listening for any events. + die(); + // Do nothing else here. Our internal ressources was released ... +} + +//________________________________ +/** + @short prevent internal wrapped job against frame closing + @descr This event is broadcasted by the frame instance and ask for closing. + If the internal wrapped job is still in progress, we disagree with that by throwing the + right veto exception. If not - we agree. But then we must be aware, that another event + notifyClosing() can follow. Then we have no chance to do the same. Then we have to + accept that and stop our work instandly. + + @param aEvent + describes the broadcaster and must be the frame instance + + @param bGetsOwnerShip + If it's set to <TRUE> and we throw the right veto excepion, we have to close this frame later + if our internal processes will be finished. If it's set to <FALSE/> we can ignore it. + + @throw CloseVetoException + if our internal wrapped job is still running. + */ +void SAL_CALL Job::queryClosing( const css::lang::EventObject& aEvent , + sal_Bool bGetsOwnership ) throw(css::util::CloseVetoException, + css::uno::RuntimeException ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // if internal job is still running ... + // throw the suitable veto exception to supress frame closing + if (m_bRuns) + { + // save the information about the owner ship of this frame! + // That means - we have try to close it again if our reason for this veto + // will finish its work too. + m_bPendingCloseFrame = bGetsOwnership; + + css::uno::Reference< css::uno::XInterface > xThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + throw css::util::CloseVetoException(DECLARE_ASCII("job still in progress"), xThis); + } + + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short inform us about frame closing + @descr Instead of the method queryClosing(), here is no chance to disagree with that. + We have to accept it and cancel all current processes inside. + + @param aEvent + describes the broadcaster and must be the frame instance + */ +void SAL_CALL Job::notifyClosing( const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException) +{ + // Kill the (may still running) job + // and stop listening for any events. + die(); + // Do nothing else here. Our internal ressources was released ... +} + +//________________________________ +/** + @short shouldn't be called normaly + @descr But it doesn't matter, who called it. We have to kill our internal + running processes hardly. + + @param aEvent + describe the broadcaster +*/ +void SAL_CALL Job::disposing( /*IN*/ const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException) +{ + // Kill the (may still running) job + // and stop listening for any events. + die(); + // Do nothing else here. Our internal ressources was released ... +} + +} // namespace framework diff --git a/framework/source/jobs/jobdata.cxx b/framework/source/jobs/jobdata.cxx new file mode 100644 index 000000000000..53462d61043e --- /dev/null +++ b/framework/source/jobs/jobdata.cxx @@ -0,0 +1,642 @@ + /************************************************************************* + * + * $RCSfile: jobdata.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:21:43 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//________________________________ +// my own includes + +#ifndef __FRAMEWORK_JOBS_JOBDATA_HXX_ +#include <jobs/jobdata.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +#ifndef __FRAMEWORK_CLASSES_CONVERTER_HXX_ +#include <classes/converter.hxx> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +#ifndef __FRAMEWORK_SERVICES_H_ +#include <services.h> +#endif + +//________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif + +#ifndef _COM_SUN_STAR_BEANS_XMULTIHIERARCHICALPROPERTYSET_HPP_ +#include <com/sun/star/beans/XMultiHierarchicalPropertySet.hpp> +#endif + +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include <com/sun/star/container/XNameAccess.hpp> +#endif + +//________________________________ +// includes of other projects + +#ifndef UNOTOOLS_CONFIGPATHES_HXX_INCLUDED +#include <unotools/configpathes.hxx> +#endif + +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif + +#ifndef _SV_SVAPP_HXX +#include <vcl/svapp.hxx> +#endif + +//________________________________ +// namespace + +namespace framework{ + +//________________________________ +// exported const + +const sal_Char* JobData::JOBCFG_ROOT = "/org.openoffice.Office.Jobs/Jobs/" ; +const sal_Char* JobData::JOBCFG_PROP_ADMINTIME = "AdminTime" ; +const sal_Char* JobData::JOBCFG_PROP_ARGUMENTS = "Arguments" ; +const sal_Char* JobData::JOBCFG_PROP_ASYNC = "Async" ; +const sal_Char* JobData::JOBCFG_PROP_SERVICE = "Service" ; +const sal_Char* JobData::JOBCFG_PROP_USERTIME = "UserTime" ; + +const sal_Char* JobData::EVENTCFG_ROOT = "/org.openoffice.Office.Jobs/Events/" ; +const sal_Char* JobData::EVENTCFG_PROP_JOBLIST = "Joblist" ; + +const sal_Char* JobData::PROPSET_CONFIG = "Config" ; +const sal_Char* JobData::PROPSET_OWNCONFIG = "JobConfig" ; +const sal_Char* JobData::PROPSET_ENVIRONMENT = "Environment" ; +const sal_Char* JobData::PROPSET_DYNAMICDATA = "DynamicData" ; + +const sal_Char* JobData::PROP_ADMINTIME = "AdminTime" ; +const sal_Char* JobData::PROP_ALIAS = "Alias" ; +const sal_Char* JobData::PROP_ASYNC = "Async" ; +const sal_Char* JobData::PROP_EVENT = "Event" ; +const sal_Char* JobData::PROP_FRAME = "Frame" ; +const sal_Char* JobData::PROP_SERVICE = "Service" ; +const sal_Char* JobData::PROP_USERTIME = "UserTime" ; + +//________________________________ +// non exported definitions + +//________________________________ +// declarations + +//________________________________ +/** + @short standard ctor + @descr It initialize this new instance. + But for real working it's neccessary to call setAlias() or setService() later. + Because we need the job data ... + + @param xSMGR + reference to the uno service manager +*/ +JobData::JobData( /*IN*/ const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ) + : ThreadHelpBase(&Application::GetSolarMutex()) + , m_eMode (E_UNKNOWN ) + , m_xSMGR (xSMGR ) +{ +} + +//________________________________ +/** + @short copy ctor + @descr Sometimes such job data container must be moved from one using place + to another one. Then a copy ctor and copy operator must be available. + + @param rCopy + the original instance, from which we must copy all data +*/ +JobData::JobData( const JobData& rCopy ) + : ThreadHelpBase(&Application::GetSolarMutex()) +{ + // use the copy operator to share the same code + *this = rCopy; +} + +//________________________________ +/** + @short operator for coping JobData instances + @descr Sometimes such job data container must be moved from one using place + to another one. Then a copy ctor and copy operator must be available. + + @param rCopy + the original instance, from which we must copy all data +*/ +void JobData::operator=( const JobData& rCopy ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + // Please don't copy the uno service manager reference. + // That can change the uno context, which isn't a good idea! + m_eMode = rCopy.m_eMode ; + m_sAlias = rCopy.m_sAlias ; + m_sService = rCopy.m_sService ; + m_sEvent = rCopy.m_sEvent ; + m_lArguments = rCopy.m_lArguments ; + m_aAdminTime = rCopy.m_aAdminTime ; + m_aUserTime = rCopy.m_aUserTime ; + m_bAsync = rCopy.m_bAsync ; + m_bEnabled = rCopy.m_bEnabled ; + m_aLastExecutionResult = rCopy.m_aLastExecutionResult; + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short let this instance die + @descr There is no chance any longer to work. We have to + release all used ressources and free used memory. +*/ +JobData::~JobData() +{ + impl_reset(); +} + +//________________________________ +/** + @short initalize this instance as a job with configuration + @descr They given alias can be used to adress some configuraton data. + We read it and fill our internal structures. Of course old informations + will be lost doing so. + + @param sAlias + the alias name of this job, used to locate job properties inside cfg +*/ +void JobData::setAlias( /*IN*/ const ::rtl::OUString& sAlias ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + // delete all old informations! Otherwhise we mix it with the new one ... + impl_reset(); + + // take over the new informations + m_sAlias = sAlias; + m_eMode = E_ALIAS; + + // try to open the configuration set of this job directly and get a property access to it + // We open it readonly here + ::rtl::OUString sKey; + sKey = ::rtl::OUString::createFromAscii(JOBCFG_ROOT); + sKey += ::utl::wrapConfigurationElementName(m_sAlias); + + ConfigAccess aConfig(m_xSMGR, sKey); + aConfig.open(ConfigAccess::E_READONLY); + if (aConfig.getMode()==ConfigAccess::E_CLOSED) + { + impl_reset(); + return; + } + + css::uno::Reference< css::beans::XPropertySet > xJobProperties(aConfig.cfg(), css::uno::UNO_QUERY); + if (xJobProperties.is()) + { + css::uno::Any aValue; + ::rtl::OUString sTime ; + + // read and convert "AdminTime" + aValue = xJobProperties->getPropertyValue(::rtl::OUString::createFromAscii(JOBCFG_PROP_ADMINTIME)); + if (aValue >>= sTime) + m_aAdminTime = Converter::convert_String2DateTime(sTime); + + // read and convert "UserTime" + aValue = xJobProperties->getPropertyValue(::rtl::OUString::createFromAscii(JOBCFG_PROP_USERTIME)); + if (aValue >>= sTime) + m_aUserTime = Converter::convert_String2DateTime(sTime); + + // check active state by comparing time stamps + m_bEnabled = (m_aAdminTime > m_aUserTime); + + // read async state + aValue = xJobProperties->getPropertyValue(::rtl::OUString::createFromAscii(JOBCFG_PROP_ASYNC)); + aValue >>= m_bAsync; + + // read uno implementation name + aValue = xJobProperties->getPropertyValue(::rtl::OUString::createFromAscii(JOBCFG_PROP_SERVICE)); + aValue >>= m_sService; + + // read whole argument list + aValue = xJobProperties->getPropertyValue(::rtl::OUString::createFromAscii(JOBCFG_PROP_ARGUMENTS)); + css::uno::Reference< css::container::XNameAccess > xArgumentList; + if ( + (aValue >>= xArgumentList) && + (xArgumentList.is() ) + ) + { + css::uno::Sequence< ::rtl::OUString > lArgumentNames = xArgumentList->getElementNames(); + sal_Int32 nCount = lArgumentNames.getLength(); + m_lArguments.realloc(nCount); + for (sal_Int32 i=0; i<nCount; ++i) + { + m_lArguments[i].Name = lArgumentNames[i]; + m_lArguments[i].Value = xArgumentList->getByName(m_lArguments[i].Name); + } + } + } + + aConfig.close(); + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short initalize this instance as a job without configuration + @descr This job has no configuration data. We have to forget all old informations + and set only some of them new, so this instance can work. + + @param sService + the uno service name of this "non configured" job +*/ +void JobData::setService( /*IN*/ const ::rtl::OUString& sService ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + // delete all old informations! Otherwhise we mix it with the new one ... + impl_reset(); + + // take over the new informations + m_sService = sService; + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short a job can(!) be registered for such event + @descr This information can be set from outside as part of this container. + We use it to add it to the argument list of the job ... but for temp. using only. + So the outside code can pass the extended list of arguments to the job at execution time. + But we don't make it persistent! + + @param sEvent + the possible event, for which a job can be registered +*/ +void JobData::setEvent( /*IN*/ const ::rtl::OUString& sEvent ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + m_sEvent = sEvent; + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short set the new job specific arguments + @descr If a job finish his work, it can give us a new list of arguments (which + will not interpreted by us). We write it back to the configuration only + (if this job has it's own configuration!). + So a job can have persistent data without implementing anything + or define own config areas for that. + + @param lArguments + list of arguments, which should be set for this job + */ +void JobData::setJobConfig( /*IN*/ const css::uno::Sequence< css::beans::NamedValue >& lArguments ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // actualize member + m_lArguments = lArguments; + + // actualize the configuration ... if possible! + if (m_eMode==E_ALIAS) + { + // It doesn't matter if this config object was already opened before. + // It doesn nothing here then ... or it change the mode automaticly, if + // it was opened using another one before. + ::rtl::OUString sKey; + sKey = ::rtl::OUString::createFromAscii(JOBCFG_ROOT); + sKey += ::utl::wrapConfigurationElementName(m_sAlias); + + ConfigAccess aConfig(m_xSMGR, sKey); + aConfig.open(ConfigAccess::E_READWRITE); + if (aConfig.getMode()==ConfigAccess::E_CLOSED) + return; + + css::uno::Reference< css::beans::XMultiHierarchicalPropertySet > xArgumentList(aConfig.cfg(), css::uno::UNO_QUERY); + if (xArgumentList.is()) + { + sal_Int32 nCount = m_lArguments.getLength(); + css::uno::Sequence< ::rtl::OUString > lNames (nCount); + css::uno::Sequence< css::uno::Any > lValues(nCount); + + for (sal_Int32 i=0; i<nCount; ++i) + { + lNames [i] = m_lArguments[i].Name ; + lValues[i] = m_lArguments[i].Value; + } + + xArgumentList->setHierarchicalPropertyValues(lNames, lValues); + } + aConfig.close(); + } + + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short set a new excution result + @descr Every executed job can have returned a result. + We set it here, so our user can use it may be later. + But the outside code can use it too, to analyze it and + adopt the configuration of this job too. Because the + result uses a protocol, which allow that. And we provide + right functionality to save it. + + @param aResult + the result of last execution + */ +void JobData::setResult( const JobResult& aResult ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // overwrite the last saved result + m_aLastExecutionResult = aResult; + + // Don't use his informations to actualize + // e.g. the arguments of this job. It must be done + // from outside! Here we save this information only. + + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short these functions provides access to our internal members + @descr These member represent any information about the job + and can be used from outside to e.g. start a job. + */ +JobData::EMode JobData::getMode() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_eMode; + /* } SAFE */ +} + +//________________________________ + +::rtl::OUString JobData::getAlias() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_sAlias; + /* } SAFE */ +} + +//________________________________ + +::rtl::OUString JobData::getService() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_sService; + /* } SAFE */ +} + +//________________________________ + +::rtl::OUString JobData::getEvent() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_sEvent; + /* } SAFE */ +} + +//________________________________ + +css::uno::Sequence< css::beans::NamedValue > JobData::getJobConfig() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_lArguments; + /* } SAFE */ +} + +//________________________________ + +css::uno::Sequence< css::beans::NamedValue > JobData::getConfig() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + css::uno::Sequence< css::beans::NamedValue > lConfig; + if (m_eMode==E_ALIAS) + { + lConfig.realloc(6); + + lConfig[0].Name = ::rtl::OUString::createFromAscii(PROP_ADMINTIME); + lConfig[0].Value <<= Converter::convert_DateTime2String(m_aAdminTime); + + lConfig[1].Name = ::rtl::OUString::createFromAscii(PROP_ALIAS); + lConfig[1].Value <<= m_sAlias; + + lConfig[2].Name = ::rtl::OUString::createFromAscii(PROP_ASYNC); + lConfig[2].Value <<= m_bAsync; + + lConfig[3].Name = ::rtl::OUString::createFromAscii(PROP_EVENT); + lConfig[3].Value <<= m_sEvent; + + lConfig[4].Name = ::rtl::OUString::createFromAscii(PROP_SERVICE); + lConfig[4].Value <<= m_sService; + + lConfig[5].Name = ::rtl::OUString::createFromAscii(PROP_USERTIME); + lConfig[5].Value <<= Converter::convert_DateTime2String(m_aUserTime); + } + aReadLock.unlock(); + /* } SAFE */ + return lConfig; +} + +//________________________________ + +JobResult JobData::getResult() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_aLastExecutionResult; + /* } SAFE */ +} + +//________________________________ + +sal_Bool JobData::isAsync() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_bAsync; + /* } SAFE */ +} + +//________________________________ + +sal_Bool JobData::isEnabled() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_bEnabled; + /* } SAFE */ +} + +//________________________________ +/** + @short mark a job as non startable for further requests + @descr We don't remove the configuration entry! We set a timestamp value only. + And there exist two of them: one for an administrator ... and one for the + current user. We change it for the user layer only. So this JobDispatch can't be + started any more ... till the administrator change his timestamp. + That can be usefull for post setup scenarios, which must run one time only. + + Note: This method don't do anything, if ths represented job doesn't have a configuration! + */ +void JobData::disableJob() +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // No configuration => no chance + if (m_eMode!=E_ALIAS) + return; + + // actualize the user time stamp + // It should be newer then the admin value ... and + // that disable this job. + // (default ctor of DateTime set current date & time on instanciated object automaticly!) + m_aUserTime = DateTime(); + + // But we have to actualize this state internaly too. + m_bEnabled = sal_False; + + // actualize the configuration + // It doesn't matter if this config object was already opened before. + // It doesn nothing here then ... or it change the mode automaticly, if + // it was opened using another one before. + ::rtl::OUString sKey; + sKey = ::rtl::OUString::createFromAscii(JOBCFG_ROOT); + sKey += ::utl::wrapConfigurationElementName(m_sAlias); + + ConfigAccess aConfig(m_xSMGR, sKey); + aConfig.open(ConfigAccess::E_READWRITE); + if (aConfig.getMode()==ConfigAccess::E_CLOSED) + return; + + css::uno::Reference< css::beans::XPropertySet > xPropSet(aConfig.cfg(), css::uno::UNO_QUERY); + if (xPropSet.is()) + { + // Convert and write the user timestamp to the configuration. + css::uno::Any aValue; + aValue <<= Converter::convert_DateTime2String(m_aUserTime); + xPropSet->setPropertyValue(::rtl::OUString::createFromAscii(JOBCFG_PROP_USERTIME), aValue); + } + + aConfig.close(); + + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short reset all internal structures + @descr If somehwere recycle this instance, he can switch from one + using mode to another one. But then we have to reset all currently + used informations. Otherwhise we mix it and they can make trouble. + */ +void JobData::impl_reset() +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + m_eMode = E_UNKNOWN; + m_sAlias = ::rtl::OUString(); + m_sService = ::rtl::OUString(); + m_sEvent = ::rtl::OUString(); + m_lArguments = css::uno::Sequence< css::beans::NamedValue >(); + m_aAdminTime = DateTime(); + m_aUserTime = DateTime(); + m_bAsync = sal_False; + m_bEnabled = sal_False; + aWriteLock.unlock(); + /* } SAFE */ +} + +} // namespace framework diff --git a/framework/source/jobs/jobdispatch.cxx b/framework/source/jobs/jobdispatch.cxx index 0d2143f4fc4d..d2ebfde85378 100644 --- a/framework/source/jobs/jobdispatch.cxx +++ b/framework/source/jobs/jobdispatch.cxx @@ -2,9 +2,9 @@ * * $RCSfile: jobdispatch.cxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: as $ $Date: 2002-10-11 13:41:14 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:44 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,6 +62,14 @@ //________________________________ // my own includes +#ifndef __FRAMEWORK_JOBS_JOBDISPATCH_HXX_ +#include <jobs/jobdispatch.hxx> +#endif + +#ifndef __FRAMEWORK_JOBS_JOBURL_HXX_ +#include <jobs/joburl.hxx> +#endif + #ifndef __FRAMEWORK_JOBS_JOB_HXX_ #include <jobs/job.hxx> #endif @@ -93,37 +101,17 @@ //________________________________ // interface includes -#ifndef _COM_SUN_STAR_TASK_XJOB_HPP_ -#include <com/sun/star/task/XJob.hpp> -#endif - -#ifndef _COM_SUN_STAR_TASK_XASYNCJOB_HPP_ -#include <com/sun/star/task/XAsyncJob.hpp> -#endif - #ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ #include <com/sun/star/beans/XPropertySet.hpp> #endif -#ifndef _COM_SUN_STAR_BEANS_XMULTIHIERARCHICALPROPERTYSET_HPP_ -#include <com/sun/star/beans/XMultiHierarchicalPropertySet.hpp> -#endif - -#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ -#include <com/sun/star/container/XNameAccess.hpp> -#endif - -#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ -#include <com/sun/star/beans/PropertyValue.hpp> +#ifndef _COM_SUN_STAR_FRAME_DISPATCHRESULTSTATE_HPP_ +#include <com/sun/star/frame/DispatchResultState.hpp> #endif //________________________________ // includes of other projects -#ifndef UNOTOOLS_CONFIGPATHES_HXX_INCLUDED -#include <unotools/configpathes.hxx> -#endif - #ifndef _RTL_USTRBUF_HXX_ #include <rtl/ustrbuf.hxx> #endif @@ -140,86 +128,155 @@ namespace framework{ //________________________________ // non exported const -#define JOB_ROOT "/org.openoffice.Office.Jobs/Jobs/" -#define JOB_PROPERTY_ADMINTIME "AdminTime" -#define JOB_PROPERTY_USERTIME "UserTime" -#define JOB_PROPERTY_SERVICE "Service" -#define JOB_PROPERTY_ASYNC "Async" -#define JOB_PROPERTY_ARGUMENTS "Arguments" - //________________________________ // non exported definitions //________________________________ // declarations -DEFINE_XINTERFACE_5( JobDispatch , - OWeakObject , - DIRECT_INTERFACE(css::lang::XTypeProvider ), - DIRECT_INTERFACE(css::frame::XNotifyingDispatch ), - DIRECT_INTERFACE(css::frame::XDispatch ), - DIRECT_INTERFACE(css::task::XJobListener ), - DIRECT_INTERFACE(css::frame::XTerminateListener ) +DEFINE_XINTERFACE_6( JobDispatch , + OWeakObject , + DIRECT_INTERFACE(css::lang::XTypeProvider ), + DIRECT_INTERFACE(css::frame::XDispatchProvider ), + DIRECT_INTERFACE(css::lang::XInitialization ), + DIRECT_INTERFACE(css::lang::XServiceInfo), + DIRECT_INTERFACE(css::frame::XNotifyingDispatch), + DIRECT_INTERFACE(css::frame::XDispatch ) ) -DEFINE_XTYPEPROVIDER_5( JobDispatch , +DEFINE_XTYPEPROVIDER_6( JobDispatch , css::lang::XTypeProvider , + css::frame::XDispatchProvider , css::frame::XNotifyingDispatch, - css::frame::XDispatch , - css::task::XJobListener , - css::frame::XTerminateListener + css::lang::XInitialization, + css::lang::XServiceInfo, + css::frame::XDispatch ) +DEFINE_XSERVICEINFO_MULTISERVICE( JobDispatch , + ::cppu::OWeakObject , + SERVICENAME_PROTOCOLHANDLER , + IMPLEMENTATIONNAME_JOBDISPATCH + ) + +DEFINE_INIT_SERVICE( JobDispatch, + { + /*Attention + I think we don't need any mutex or lock here ... because we are called by our own static method impl_createInstance() + to create a new instance of this class by our own supported service factory. + see macro DEFINE_XSERVICEINFO_MULTISERVICE and "impl_initService()" for further informations! + */ + } + ) + //________________________________ /** @short standard ctor - @descr It initialize this new instance and read all neccessary data - driect from the configuration. + @descr It initialize this new instance. @param xSMGR reference to the uno service manager - - @param sAlias - the alias name of this job, used to locate job properties inside cfg */ -JobDispatch::JobDispatch( /*IN*/ const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , - /*IN*/ const ::rtl::OUString& sAlias ) - : ThreadHelpBase(&Application::GetSolarMutex() ) - , OWeakObject ( ) - , m_xSMGR (xSMGR ) - , m_aConfig (xSMGR, - DECLARE_ASCII(JOB_ROOT)+ - ::utl::wrapConfigurationElementName(sAlias)) - , m_aJobData (sAlias ) +JobDispatch::JobDispatch( /*IN*/ const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ) + : ThreadHelpBase(&Application::GetSolarMutex()) + , OWeakObject ( ) + , m_xSMGR (xSMGR ) { - // For calling of the methods open()/close() the config access object must not - // be locked from outside! Only for using cfg()... - m_aConfig.open(ConfigAccess::E_READONLY); - impl_readConfig(); - m_aConfig.close(); - - // start listening - css::uno::Reference< css::frame::XDesktop > xDesktop(m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); - css::uno::Reference< css::frame::XTerminateListener > xThis (static_cast< ::cppu::OWeakObject* >(this) , css::uno::UNO_QUERY); - if (xDesktop.is()) - xDesktop->addTerminateListener(xThis); } //________________________________ /** @short let this instance die - @descr There is no chance any longer to work. We have to - release all used ressources and free used memory. + @descr We have to release all used ressources and free used memory. */ JobDispatch::~JobDispatch() { - // Can be called without any check about open configuration! - // It does the right things automaticly. - m_aConfig.close(); - // release all used ressources - m_xJob = css::uno::Reference< css::uno::XInterface >(); - m_xSMGR = css::uno::Reference< css::lang::XMultiServiceFactory >(); + m_xSMGR = css::uno::Reference< css::lang::XMultiServiceFactory >(); + m_xFrame = css::uno::Reference< css::frame::XFrame >(); +} + +//________________________________ +/** + @short implementation of XInitalization + @descr A protocol handler can provide this functionality, if it wish to get additional informations + about the context it runs. In this case the frame reference would be given by the outside code. + + @param lArguments + the list of initialization arguments + First parameter should be the frame reference we need. +*/ +void SAL_CALL JobDispatch::initialize( const css::uno::Sequence< css::uno::Any >& lArguments ) throw(css::uno::Exception , + css::uno::RuntimeException) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + for (int a=0; a<lArguments.getLength(); ++a) + { + if (a==0) + lArguments[a] >>= m_xFrame; + } + + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short implementation of XDispatchProvider::queryDispatches() + @descr Every protocol handler will be asked for his agreement, if an URL was queried + for which this handler is registered. It's the chance for this handler to validate + the given URL and return a dispatch object (may be itself) or not. + + @param aURL + the queried URL, which should be checked + + @param sTargetFrameName + describes the target frame, in which context this handler will be used + Is mostly set to "", "_self", "_blank", "_default" or a non special one + using SELF/CREATE as search flags. + + @param nSearchFlags + Can be SELF or CREATE only and are set only if sTargetFrameName isn't a special target +*/ +css::uno::Reference< css::frame::XDispatch > SAL_CALL JobDispatch::queryDispatch( /*IN*/ const css::util::URL& aURL , + /*IN*/ const ::rtl::OUString& sTargetFrameName , + /*IN*/ sal_Int32 nSearchFlags ) throw(css::uno::RuntimeException) +{ + css::uno::Reference< css::frame::XDispatch > xDispatch; + + JobURL aAnalyzedURL(aURL.Complete); + if (aAnalyzedURL.isValid()) + xDispatch = css::uno::Reference< css::frame::XDispatch >( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY ); + + return xDispatch; +} + +//________________________________ +/** + @short implementation of XDispatchProvider::queryDispatches() + @descr It's an optimized access for remote, so you can ask for + multiple dispatch objects at the same time. + + @param lDescriptor + a list of queryDispatch() parameter + + @return A list of corresponding dispatch objects. + NULL references are not skipped. Every result + match to one given descriptor item. +*/ +css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL JobDispatch::queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& lDescriptor ) throw(css::uno::RuntimeException) +{ + // don't pack resulting list! + sal_Int32 nCount = lDescriptor.getLength(); + css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > lDispatches(nCount); + + for (sal_Int32 i=0; i<nCount; ++i) + lDispatches[i] = queryDispatch( lDescriptor[i].FeatureURL , + lDescriptor[i].FrameName , + lDescriptor[i].SearchFlags ); + return lDispatches; } //________________________________ @@ -251,502 +308,233 @@ void SAL_CALL JobDispatch::dispatchWithNotification( /*IN*/ const css::util::URL /*IN*/ const css::uno::Sequence< css::beans::PropertyValue >& lArgs , /*IN*/ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException) { - /* SAFE { */ - WriteGuard aWriteLock(m_aLock); - - m_lDispatchQueue.push( DispatchParameter(aURL, lArgs, xListener, this) ); - if (!m_xJob.is()) - impl_startJob(); - - aWriteLock.unlock(); - /* } SAFE */ + JobURL aAnalyzedURL(aURL.Complete); + if (aAnalyzedURL.isValid()) + { + ::rtl::OUString sRequest; + if (aAnalyzedURL.getEvent(sRequest)) + impl_dispatchEvent(sRequest, lArgs, xListener); + else + if (aAnalyzedURL.getService(sRequest)) + impl_dispatchService(sRequest, lArgs, xListener); + else + if (aAnalyzedURL.getAlias(sRequest)) + impl_dispatchAlias(sRequest, lArgs, xListener); + } } //________________________________ /** - @short implementation of XDispatch::dispatch() - @descr Because the methods dispatch() and dispatchWithNotification() are different in her parameters - only, we can forward this request to dispatchWithNotification() by using an empty listener! + @short dispatch an event + @descr We search all registered jobs for this event and execute it. + After doing so, we inform the given listener about the results. + (There will be one notify for every executed job!) - @param aURL - describe the job(s), which should be started + @param sEvent + the event, for which jobs can be registered @param lArgs optional arguments for this request + Currently not used! - @see dispatchWithNotification() -*/ -void SAL_CALL JobDispatch::dispatch( const css::util::URL& aURL , - const css::uno::Sequence< css::beans::PropertyValue >& lArgs ) throw(css::uno::RuntimeException) -{ - dispatchWithNotification(aURL, lArgs, css::uno::Reference< css::frame::XDispatchResultListener >()); -} - -//________________________________ -/** - @short not supported -*/ -void SAL_CALL JobDispatch::addStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xListener , - const css::util::URL& aURL ) throw(css::uno::RuntimeException) -{ - LOG_WARNING("Job::addStatusListener()", "Not supported! There is no status available.") -} - -//________________________________ -/** - @short not supported + @param xListener + an interested listener for possible results of this operation */ -void SAL_CALL JobDispatch::removeStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xListener , - const css::util::URL& aURL ) throw(css::uno::RuntimeException) -{ - LOG_WARNING("Job::removeStatusListener()", "Not supported! There is no status available.") -} - -//________________________________ -/** - @short react for the notification of an asynchronous job - @descr We are not interested on the given job reference. Because we already know it. - But we must react for the given result value. To share the same code for - synchronous and asynchronous job, we call an impl method to do so. - But we don't do it here. This async job was started in our method doIt() ... - and there we yield till our member m_bAsyncFinished ws set to "true". And - thats it, what we are doing here. Of course we set the getted result here as - member too. So doIt() can call impl_finishJob() with the result. - - @param xJob - describe the source of this event - We are not interested on that. Because we already know this job and hold - it alive by using a reference to it as member. - - @param aResult - this any wrap a sequence< NamedValue >, which describes the results of this executed job - */ -void SAL_CALL JobDispatch::jobFinished( /*IN*/ const css::uno::Reference< css::task::XAsyncJob >& xJob , - /*IN*/ const css::uno::Any& aResult ) throw(css::uno::RuntimeException) +void JobDispatch::impl_dispatchEvent( /*IN*/ const ::rtl::OUString& sEvent , + /*IN*/ const css::uno::Sequence< css::beans::PropertyValue >& lArgs , + /*IN*/ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) { - // finish this job - // It will start a new one, if some more items exist in our dipsatch queue ... - impl_finishJob(aResult); -} + // generate the full qualified path to the configuration entry + // for event registrations. + ::rtl::OUStringBuffer sCfgEntry(256); + sCfgEntry.appendAscii(JobData::EVENTCFG_ROOT ); + sCfgEntry.append (::utl::wrapConfigurationElementName(sEvent)); -//________________________________ -/** - @short prevent internal wrapped job against office termination - @descr This event is broadcasted by the desktop instance and ask for an office termination. - If the internal wrapped job is still in progress, we disagree with that by throwing the - right veto exception. If not - we agree. But then we must be aware, that another event - notifyTermination() can follow. Then we have no chance to do the same. Then we have to - accept that and stop our work instandly. - - @param aEvent - describes the broadcaster and must be the desktop instance - */ -void SAL_CALL JobDispatch::queryTermination( const css::lang::EventObject& aEvent ) throw(css::frame::TerminationVetoException, - css::uno::RuntimeException ) -{ + // create a config access and read all registered jobs from there /* SAFE { */ ReadGuard aReadLock(m_aLock); + ConfigAccess aConfig(m_xSMGR,sCfgEntry.makeStringAndClear()); + aReadLock.unlock(); + /* } SAFE */ - // if some outstanding jobs exist ... - // throw the suitable veto excepotion to supress - // office terminate - if (!m_lDispatchQueue.empty() || m_xJob.is()) + aConfig.open(ConfigAccess::E_READONLY); + if (aConfig.getMode()==ConfigAccess::E_CLOSED) { - css::uno::Reference< css::uno::XInterface > xThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); - throw css::frame::TerminationVetoException(DECLARE_ASCII("job still in progress"), xThis); + if (xListener.is()) + { + css::frame::DispatchResultEvent aEvent; + aEvent.Source = css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + aEvent.State = css::frame::DispatchResultState::FAILURE; + xListener->dispatchFinished(aEvent); + } + return; } - // Otherwhise let do noting here! - // React in method notifyTermination(). + css::uno::Reference< css::beans::XPropertySet > xEventProperties(aConfig.cfg(), css::uno::UNO_QUERY); + css::uno::Sequence< ::rtl::OUString > lJobs; + if (xEventProperties.is()) + { + css::uno::Any aValue = xEventProperties->getPropertyValue(::rtl::OUString::createFromAscii(JobData::EVENTCFG_PROP_JOBLIST)); + aValue >>= lJobs; + } + aConfig.close(); - aReadLock.unlock(); - /* } SAFE */ + // Step over all found jobs and execute it + css::uno::Reference< css::frame::XDispatchResultListener > xThis( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY ); + for (int j=0; j<lJobs.getLength(); ++j) + { + /* SAFE { */ + aReadLock.lock(); + + JobData aCfg(m_xSMGR); + aCfg.setAlias(lJobs[j]); + aCfg.setEvent(sEvent ); + + Job aJob(m_xSMGR, m_xFrame); + aJob.setJobData(aCfg); + + aReadLock.unlock(); + /* } SAFE */ + + // Special mode for listener. + // We dont notify it directly here. We delegate that + // to the job implementation. But we must set ourself there too. + // Because this job must fake the source adress of the event. + // Otherwhise the listener may will ignore it. + if (xListener.is()) + aJob.setDispatchResultFake(xListener, xThis); + aJob.execute(Converter::convert_seqPropVal2seqNamedVal(lArgs)); + } } //________________________________ /** - @short inform us about office termination - @descr Instead of the method queryTermination(), here is no chance to disagree with that. - We have to accept it and cancel all current processes inside. + @short dispatch a service + @descr We use the given name only to create and if possible to initialize + it as an uno service. It can be usefully for creating (caching?) + of e.g. one instance services. - But normaly it can't occure - because we throw suitable terminate veto exception inside - queryTermination()! + @param sService + the uno implementation or service name of the job, which should be instanciated + + @param lArgs + optional arguments for this request + Currently not used! - @param aEvent - describes the broadcaster and must be the desktop instance - */ -void SAL_CALL JobDispatch::notifyTermination( const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException) + @param xListener + an interested listener for possible results of this operation +*/ +void JobDispatch::impl_dispatchService( /*IN*/ const ::rtl::OUString& sService , + /*IN*/ const css::uno::Sequence< css::beans::PropertyValue >& lArgs , + /*IN*/ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) { /* SAFE { */ ReadGuard aReadLock(m_aLock); - // remove listener connections - css::uno::Reference< css::frame::XDesktop > xDesktop(m_xSMGR->createInstance(SERVICENAME_DESKTOP), css::uno::UNO_QUERY); - css::uno::Reference< css::frame::XTerminateListener > xThis (static_cast< ::cppu::OWeakObject* >(this) , css::uno::UNO_QUERY); - if (xDesktop.is()) - xDesktop->removeTerminateListener(xThis); + JobData aCfg(m_xSMGR); + aCfg.setService(sService); + + Job aJob(m_xSMGR, m_xFrame); + aJob.setJobData(aCfg); aReadLock.unlock(); /* } SAFE */ -} - -//________________________________ -/** - @short shouldn't be called normaly - @param aEvent - describe the broadcaster -*/ -void SAL_CALL JobDispatch::disposing( /*IN*/ const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException) -{ - LOG_WARNING("Job::disposing()", "should normaly not be called") -} - -//________________________________ -/** - @short start next job, which stands in queue - @descr Every dispatch request will be queued. - Then this method can be called from different places - to start the next outstanding request. -*/ -void JobDispatch::impl_startJob() -{ - /* SAFE { */ - WriteGuard aWriteLock(m_aLock); - - css::uno::Reference< css::task::XAsyncJob > xAJob; - css::uno::Reference< css::task::XJob > xSJob; - - // get the queued parameter - // But don't remove it from the queue. - // That will be done by the method impl_finishJob(). - // Every queued request hold a reference to this JobDispatch object. - // If queue is empty ... we will die! - DispatchParameter aParamSet = m_lDispatchQueue.front(); - - // create the job - m_xJob = m_xSMGR->createInstance(m_aJobData.m_sService); - if (m_aJobData.m_bAsync) - xAJob = css::uno::Reference< css::task::XAsyncJob >(m_xJob, css::uno::UNO_QUERY); - else - xSJob = css::uno::Reference< css::task::XJob >(m_xJob, css::uno::UNO_QUERY); - - // execute it asynchron - if (xAJob.is()) - { - css::uno::Reference< css::task::XJobListener > xJobListener(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); - xAJob->executeAsync(m_aJobData.m_lArguments, xJobListener); - // don't react here directly. - // Do it in callback method. - } - // execute it synchron - else if (xSJob.is()) + // Special mode for listener. + // We dont notify it directly here. We delegate that + // to the job implementation. But we must set ourself there too. + // Because this job must fake the source adress of the event. + // Otherwhise the listener may will ignore it. + if (xListener.is()) { - css::uno::Any aResult = xSJob->execute(m_aJobData.m_lArguments); - impl_finishJob(aResult); + css::uno::Reference< css::frame::XDispatchResultListener > xThis( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY ); + aJob.setDispatchResultFake(xListener, xThis); } - - aWriteLock.unlock(); - /* } SAFE */ + aJob.execute(Converter::convert_seqPropVal2seqNamedVal(lArgs)); } //________________________________ /** - @short react for finishing any job, which was started here - @descr It doesn't matter, if it was an asynchronous or a synchronoues one. - We have to forget this job. But before we must react for his returned result. - It can use a special protocol mode to force some further actions. - <p> - Following protocol items can be used: - <p> - <ul> - <li> - "SaveArguments" [sequence< css.beans.NamedValue >] - <br> - The returned list of (for this generic implementation unknown!) - properties, will be written directly to the configuration and replace - any old values there. There will no check for changes and we doesn't - support any mege feature here. They are written only. The job has - to modify this list. - </li> - <li> - "SendDispatchResult" [css.frame.DispatchResultEvent] - <br> - The given event is send to all current registered listener. - But it's not guaranteed. In case no listener are available or - this job isn't part of the dispatch environment (because it was used - by the css..task.XJobExecutor->trigger() implementation) this option - will be ignored. - </li> - <li> - "Deactivate" [boolean] - <br> - The job whish to be disabled. But note: There is no way, to enable it later - again by using this implementation. It can be done by using the configuration - only. (Means to register this job again.) - If a job knows, that there exist some status or result listener, it must use - the options "SendDispatchStatus" and "SendDispatchResult" (see before) too, to - inform it about the deactivation of this service. - </li> - </ul> - - @param aResult - this any wrap a sequence< NamedValue >, which contains the mentioned protocol - */ -void JobDispatch::impl_finishJob( /*IN*/ const css::uno::Any& aResult ) -{ - /* SAFE { */ - WriteGuard aWriteLock(m_aLock); + @short dispatch an alias + @descr We use this alias to locate a job inside the configuration + and execute it. Further we inform the given listener about the results. - // Analyze the results of the finished job and react in the right way. - css::uno::Sequence< css::beans::NamedValue > lProtocol; - if (aResult >>= lProtocol) - { - // try to find items of protocol to analyze it later - // Otherwise it's not easy to decide if a property was found before another one ... - // (use invalid index as "non existing" mark) - sal_Int32 nPDeactivate = -1; - sal_Int32 nPSaveArguments = -1; - sal_Int32 nPSendDispatchResult = -1; - - sal_Int32 nCount = lProtocol.getLength(); - for( sal_Int32 i=0; i<nCount; ++i ) - { - if (lProtocol[i].Name.equalsIgnoreAsciiCaseAsciiL("Deactivate",10)) - nPDeactivate = i; - else - if (lProtocol[i].Name.equalsIgnoreAsciiCaseAsciiL("SaveArguments",13)) - nPSaveArguments = i; - else - if (lProtocol[i].Name.equalsIgnoreAsciiCaseAsciiL("SendDispatchResult",18)) - nPSendDispatchResult = i; - } - - /* CFG SAFE { */ - // It's neccessary to lock the config access from outside! - ReadGuard aCfgLock(m_aConfig.m_aLock); - m_aConfig.open(ConfigAccess::E_READWRITE); - - // a) react for "SaveArguments" - // Do it before all other ones. May they will fail ... - if (nPSaveArguments != -1) - { - // We don't analyze the list of arguments or support a merge - // with old values. We save the complete list .. that's it. - if (lProtocol[nPSaveArguments].Value >>= m_aJobData.m_lArguments) - impl_saveArguments(); - } + @param sAlias + the alias name of the configured job - // b) react for "SendDispatchResult" - if (nPSendDispatchResult != -1) - { - css::frame::DispatchResultEvent aResult; - if (lProtocol[nPSendDispatchResult].Value >>= aResult) - impl_sendDispatchResult(aResult); - } - - // c) react for "Deactivate" - if (nPDeactivate != -1) - { - sal_Bool bDeactivate = sal_False; - if ((lProtocol[nPDeactivate].Value >>= bDeactivate) && bDeactivate) - impl_deactivateJob(); - } - - m_aConfig.close(); - aCfgLock.unlock(); - /* } CFG SAFE */ - } - - // let the job die and forget his queued parameter. - // It hold a reference to us ... if it will be the last item - we can die. - // So it seams to be better to hold us self alive till this method ends. - css::uno::Reference< css::uno::XInterface > xSelfHold( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY ); - - m_xJob = css::uno::Reference< css::uno::XInterface >(); - m_lDispatchQueue.pop(); - - // Search for next one in queue. If some one exist - - // start it. But don't delete it from the queue. - // It will be done by the next impl_finishJob()! - // (startJob() uses the queue directly ...) - if (!m_lDispatchQueue.empty()) - impl_startJob(); - - // Otherwhise do nothing. We can(!) die by ref count now. - - aWriteLock.unlock(); - /* } SAFE */ -} + @param lArgs + optional arguments for this request + Currently not used! -//________________________________ -/** - @short read the configuration of this job - @descr An instance of this class will be initialized with the alias name of the real - job only. Then the configuration package has to be opened to read all other - configured properties. After doing that all member of an object of this - class has to be filled with valid values. - - @attention The member m_xConfig must be valid, if this method is called! - */ -void JobDispatch::impl_readConfig() + @param xListener + an interested listener for possible results of this operation +*/ +void JobDispatch::impl_dispatchAlias( /*IN*/ const ::rtl::OUString& sAlias , + /*IN*/ const css::uno::Sequence< css::beans::PropertyValue >& lArgs , + /*IN*/ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) { /* SAFE { */ - WriteGuard aWriteLock(m_aLock); + ReadGuard aReadLock(m_aLock); - // try to open the configuration set of this job directly and get a property access to it - // We open it readonly here + JobData aCfg(m_xSMGR); + aCfg.setAlias(sAlias); - /* CFG SAFE { */ - // Note: We have to lock the used configuration access from outside to synchronize it - // with other threads! - ReadGuard aCfgLock(m_aConfig.m_aLock); - m_aConfig.open(ConfigAccess::E_READONLY); + Job aJob(m_xSMGR, m_xFrame); + aJob.setJobData(aCfg); + + aReadLock.unlock(); + /* } SAFE */ - css::uno::Reference< css::beans::XPropertySet > xJobProperties(m_aConfig.cfg(), css::uno::UNO_QUERY); - if (xJobProperties.is()) + // Special mode for listener. + // We dont notify it directly here. We delegate that + // to the job implementation. But we must set ourself there too. + // Because this job must fake the source adress of the event. + // Otherwhise the listener may will ignore it. + if (xListener.is()) { - css::uno::Any aValue; - ::rtl::OUString sTime ; - - // read and convert "AdminTime" - aValue = xJobProperties->getPropertyValue(DECLARE_ASCII(JOB_PROPERTY_ADMINTIME)); - if (aValue >>= sTime) - m_aJobData.m_aAdminTime = Converter::convert_String2DateTime(sTime); - - // read and convert "UserTime" - aValue = xJobProperties->getPropertyValue(DECLARE_ASCII(JOB_PROPERTY_USERTIME)); - if (aValue >>= sTime) - m_aJobData.m_aUserTime = Converter::convert_String2DateTime(sTime); - - // check active state by comparing time stamps - m_aJobData.m_bActive = (m_aJobData.m_aAdminTime > m_aJobData.m_aUserTime); - - // read async state - aValue = xJobProperties->getPropertyValue(DECLARE_ASCII(JOB_PROPERTY_ASYNC)); - aValue >>= m_aJobData.m_bAsync; - - // read uno implementation name - aValue = xJobProperties->getPropertyValue(DECLARE_ASCII(JOB_PROPERTY_SERVICE)); - aValue >>= m_aJobData.m_sService; - - // read whole argument list - aValue = xJobProperties->getPropertyValue(DECLARE_ASCII(JOB_PROPERTY_ARGUMENTS)); - css::uno::Reference< css::container::XNameAccess > xArgumentList; - if ( - (aValue >>= xArgumentList) && - (xArgumentList.is() ) - ) - { - css::uno::Sequence< ::rtl::OUString > lArgumentNames = xArgumentList->getElementNames(); - sal_Int32 nCount = lArgumentNames.getLength(); - m_aJobData.m_lArguments.realloc(nCount); - for (sal_Int32 i=0; i<nCount; ++i) - { - m_aJobData.m_lArguments[i].Name = lArgumentNames[i]; - m_aJobData.m_lArguments[i].Value = xArgumentList->getByName(m_aJobData.m_lArguments[i].Name); - } - } + css::uno::Reference< css::frame::XDispatchResultListener > xThis( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY ); + aJob.setDispatchResultFake(xListener, xThis); } - - aCfgLock.unlock(); - /* } CFG SAFE */ - - aWriteLock.unlock(); - /* } SAFE */ + aJob.execute(Converter::convert_seqPropVal2seqNamedVal(lArgs)); } //________________________________ /** - @short write the new JobDispatch specific arguments back to the configuration - @descr If a JobDispatch finish his work, it can give us a new list of arguments (which - will not interpreted by us). We write it back to the configuration only. - So a JobDispatch can have persistent data without implementing anything - or define own config areas for that. - The arguments must be set to our member m_lArguments before. - - @attention The member m_xConfig must be valid, if this method is called! - */ -void JobDispatch::impl_saveArguments() -{ - /* SAFE { */ - ReadGuard aReadLock(m_aLock); - - // Note: The used member m_aConfig must be valid opened and locked by the oustide code! - css::uno::Reference< css::beans::XMultiHierarchicalPropertySet > xArgumentList(m_aConfig.cfg(), css::uno::UNO_QUERY); - if (xArgumentList.is()) - { - sal_Int32 nCount = m_aJobData.m_lArguments.getLength(); - css::uno::Sequence< ::rtl::OUString > lNames (nCount); - css::uno::Sequence< css::uno::Any > lValues(nCount); + @short implementation of XDispatch::dispatch() + @descr Because the methods dispatch() and dispatchWithNotification() are different in her parameters + only, we can forward this request to dispatchWithNotification() by using an empty listener! - for (sal_Int32 i=0; i<nCount; ++i) - { - lNames [i] = m_aJobData.m_lArguments[i].Name ; - lValues[i] = m_aJobData.m_lArguments[i].Value; - } + @param aURL + describe the job(s), which should be started - xArgumentList->setHierarchicalPropertyValues(lNames, lValues); - } + @param lArgs + optional arguments for this request - aReadLock.unlock(); - /* } SAFE */ + @see dispatchWithNotification() +*/ +void SAL_CALL JobDispatch::dispatch( /*IN*/ const css::util::URL& aURL , + /*IN*/ const css::uno::Sequence< css::beans::PropertyValue >& lArgs ) throw(css::uno::RuntimeException) +{ + dispatchWithNotification(aURL, lArgs, css::uno::Reference< css::frame::XDispatchResultListener >()); } //________________________________ /** - @short mark a JobDispatch as non startable for further requests - @descr We don't remove the configuration entry! We set a timestamp value only. - And there exist two of them: one for an administrator ... and one for the - current user. We change it for the user layer only. So this JobDispatch can't be - started any more ... till the administrator changehis timestamp. - That can be usefull for post setup scenarios, which must run one time only. - - @attention The member m_xConfig must be valid, if this method is called! - */ -void JobDispatch::impl_deactivateJob() + @short not supported +*/ +void SAL_CALL JobDispatch::addStatusListener( /*IN*/ const css::uno::Reference< css::frame::XStatusListener >& xListener , + /*IN*/ const css::util::URL& aURL ) throw(css::uno::RuntimeException) { - /* SAFE { */ - WriteGuard aWriteLock(m_aLock); - - // Note: The used member m_aConfig must be valid opened and locked by the oustide code! - css::uno::Reference< css::beans::XPropertySet > xPropSet(m_aConfig.cfg(), css::uno::UNO_QUERY); - if (xPropSet.is()) - { - // Convert and write the user timestamp to the configuration. - // default ctor of DateTime set current date & time on instanciated object automaticly! - m_aJobData.m_aUserTime = DateTime(); - css::uno::Any aValue; - aValue <<= Converter::convert_DateTime2String(m_aJobData.m_aUserTime); - xPropSet->setPropertyValue(DECLARE_ASCII(JOB_PROPERTY_USERTIME), aValue); - // It's important to mark this JobDispatch instance in memory as deactivated too! - m_aJobData.m_bActive = sal_False; - } - - aWriteLock.unlock(); - /* } SAFE */ + LOG_WARNING("Job::addStatusListener()", "Not supported! There is no status available.") } //________________________________ /** - @short notifies possible registered XDispatchResultListener - @descr If a job finish his work, it can give us a valid struct from type - DispatchResultEvent. In case we have some suitable listener registered, - they will be informed. - - @param aResult - the given result of the finished JobDispatch - */ -void JobDispatch::impl_sendDispatchResult( /*IN*/ const css::frame::DispatchResultEvent& aResult ) + @short not supported +*/ +void SAL_CALL JobDispatch::removeStatusListener( /*IN*/ const css::uno::Reference< css::frame::XStatusListener >& xListener , + /*IN*/ const css::util::URL& aURL ) throw(css::uno::RuntimeException) { - /* SAFE { */ - ReadGuard aReadLock(m_aLock); - - DispatchParameter aParamSet = m_lDispatchQueue.front(); - if (aParamSet.m_xListener.is()) - aParamSet.m_xListener->dispatchFinished(aResult); - - aReadLock.unlock(); - /* } SAFE */ + LOG_WARNING("Job::removeStatusListener()", "Not supported! There is no status available.") } } // namespace framework diff --git a/framework/source/jobs/jobexecutor.cxx b/framework/source/jobs/jobexecutor.cxx new file mode 100644 index 000000000000..a4f46454a43f --- /dev/null +++ b/framework/source/jobs/jobexecutor.cxx @@ -0,0 +1,237 @@ +/************************************************************************* + * + * $RCSfile: jobexecutor.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:21:45 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//________________________________ +// my own includes + +#ifndef __FRAMEWORK_JOBS_JOBEXECUTOR_HXX_ +#include <jobs/jobexecutor.hxx> +#endif + +#ifndef __FRAMEWORK_JOBS_JOB_HXX_ +#include <jobs/job.hxx> +#endif + +#ifndef __FRAMEWORK_JOBS_JOBURL_HXX_ +#include <jobs/joburl.hxx> +#endif + +#ifndef __FRAMEWORK_CONFIG_CONFIGACCESS_HXX_ +#include <jobs/configaccess.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +#ifndef __FRAMEWORK_SERVICES_H_ +#include <services.h> +#endif + +//________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif + +//________________________________ +// includes of other projects + +#ifndef UNOTOOLS_CONFIGPATHES_HXX_INCLUDED +#include <unotools/configpathes.hxx> +#endif + +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif + +#ifndef _SV_SVAPP_HXX +#include <vcl/svapp.hxx> +#endif + +//________________________________ +// namespace + +namespace framework{ + +//________________________________ +// non exported const + +//________________________________ +// non exported definitions + +//________________________________ +// declarations + +DEFINE_XINTERFACE_3( JobExecutor , + OWeakObject , + DIRECT_INTERFACE(css::lang::XTypeProvider), + DIRECT_INTERFACE(css::lang::XServiceInfo ), + DIRECT_INTERFACE(css::task::XJobExecutor ) + ) + +DEFINE_XTYPEPROVIDER_3( JobExecutor , + css::lang::XTypeProvider, + css::lang::XServiceInfo , + css::task::XJobExecutor + ) + +DEFINE_XSERVICEINFO_MULTISERVICE( JobExecutor , + ::cppu::OWeakObject , + SERVICENAME_JOBEXECUTOR , + IMPLEMENTATIONNAME_JOBEXECUTOR + ) + +DEFINE_INIT_SERVICE( JobExecutor, + { + /*Attention + I think we don't need any mutex or lock here ... because we are called by our own static method impl_createInstance() + to create a new instance of this class by our own supported service factory. + see macro DEFINE_XSERVICEINFO_MULTISERVICE and "impl_initService()" for further informations! + */ + } + ) + +//________________________________ +/** + @short standard ctor + @descr It initialize this new instance. + + @param xSMGR + reference to the uno service manager +*/ +JobExecutor::JobExecutor( /*IN*/ const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ) + : ThreadHelpBase(&Application::GetSolarMutex()) + , m_xSMGR (xSMGR ) +{ +} + +JobExecutor::~JobExecutor() +{ +} + +//________________________________ +/** + @short implementation of XJobExecutor interface + @descr We use the given event locate any registered job inside our configuration + and execute it. Further we control the lifetime of it and supress + shutdown of the office till all jobs was finished. + + @param sEvent + is used to locate registered jobs +*/ +void SAL_CALL JobExecutor::trigger( const ::rtl::OUString& sEvent ) throw(css::uno::RuntimeException) +{ + // generate the full qualified path to the configuration entry. + ::rtl::OUStringBuffer sCfgEntry(256); + sCfgEntry.appendAscii(JobData::EVENTCFG_ROOT ); + sCfgEntry.append (::utl::wrapConfigurationElementName(sEvent)); + + // create a config access and read all registered jobs from there + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + ConfigAccess aConfig(m_xSMGR,sCfgEntry.makeStringAndClear()); + aReadLock.unlock(); + /* } SAFE */ + + aConfig.open(ConfigAccess::E_READONLY); + if (aConfig.getMode()==ConfigAccess::E_CLOSED) + return; + css::uno::Reference< css::beans::XPropertySet > xEventProperties(aConfig.cfg(), css::uno::UNO_QUERY); + css::uno::Sequence< ::rtl::OUString > lJobs; + if (xEventProperties.is()) + { + css::uno::Any aValue = xEventProperties->getPropertyValue(::rtl::OUString::createFromAscii(JobData::EVENTCFG_PROP_JOBLIST)); + aValue >>= lJobs; + } + aConfig.close(); + + // step over all found jobs and execute it + for (int j=0; j<lJobs.getLength(); ++j) + { + /* SAFE { */ + aReadLock.lock(); + + JobData aCfg(m_xSMGR); + aCfg.setAlias(lJobs[j]); + aCfg.setEvent(sEvent ); + + Job aJob(m_xSMGR, css::uno::Reference< css::frame::XFrame >()); + aJob.setJobData(aCfg); + + aReadLock.unlock(); + /* } SAFE */ + + if (aCfg.isEnabled()) + aJob.execute(css::uno::Sequence< css::beans::NamedValue >()); + } +} + +} // namespace framework diff --git a/framework/source/jobs/jobresult.cxx b/framework/source/jobs/jobresult.cxx new file mode 100644 index 000000000000..2efdfaa50b31 --- /dev/null +++ b/framework/source/jobs/jobresult.cxx @@ -0,0 +1,321 @@ + /************************************************************************* + * + * $RCSfile: jobresult.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:21:46 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//________________________________ +// my own includes + +#ifndef __FRAMEWORK_JOBS_JOBRESULT_HXX_ +#include <jobs/jobresult.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +#ifndef __FRAMEWORK_GENERAL_H_ +#include <general.h> +#endif + +#ifndef __FRAMEWORK_SERVICES_H_ +#include <services.h> +#endif + +//________________________________ +// interface includes + +//________________________________ +// includes of other projects + +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif + +#ifndef _SV_SVAPP_HXX +#include <vcl/svapp.hxx> +#endif + +//________________________________ +// namespace + +namespace framework{ + +//________________________________ +// non exported const + +//________________________________ +// non exported definitions + +//________________________________ +// declarations + +//________________________________ +/** + @short standard dtor + @descr It does nothing else ... + but it marks this new instance as non valid! +*/ +JobResult::JobResult() + : ThreadHelpBase(&Application::GetSolarMutex()) +{ + // reset the flag mask! + // It will reset the accessible state of this object. + // That can be usefull if something will fail here ... + m_eParts = E_NOPART; +} + +//________________________________ +/** + @short special ctor + @descr It initialize this new instance with a pure job execution result + and analyze it. Doing so, we actualize our other members. + + <p> + It's a list of named values, packed inside this any. + Following protocol is used: + <p> + <ul> + <li> + "SaveArguments" [sequence< css.beans.NamedValue >] + <br> + The returned list of (for this generic implementation unknown!) + properties, will be written directly to the configuration and replace + any old values there. There will no check for changes and we doesn't + support any mege feature here. They are written only. The job has + to modify this list. + </li> + <li> + "SendDispatchResult" [css.frame.DispatchResultEvent] + <br> + The given event is send to all current registered listener. + But it's not guaranteed. In case no listener are available or + this job isn't part of the dispatch environment (because it was used + by the css..task.XJobExecutor->trigger() implementation) this option + will be ignored. + </li> + <li> + "Deactivate" [boolean] + <br> + The job whish to be disabled. But note: There is no way, to enable it later + again by using this implementation. It can be done by using the configuration + only. (Means to register this job again.) + If a job knows, that there exist some status or result listener, it must use + the options "SendDispatchStatus" and "SendDispatchResult" (see before) too, to + inform it about the deactivation of this service. + </li> + </ul> + + @param aResult + the job result +*/ +JobResult::JobResult( /*IN*/ const css::uno::Any& aResult ) + : ThreadHelpBase(&Application::GetSolarMutex()) +{ + // safe the pure result + // May someone need it later ... + m_aPureResult = aResult; + + // reset the flag mask! + // It will reset the accessible state of this object. + // That can be usefull if something will fail here ... + m_eParts = E_NOPART; + + // analyze the result and actualize our other members + css::uno::Sequence< css::beans::NamedValue > lProtocol; + if (!(aResult >>= lProtocol)) + return; + + sal_Int32 nCount = lProtocol.getLength(); + for( sal_Int32 i=0; i<nCount; ++i ) + { + if ( + (lProtocol[i].Name.equalsIgnoreAsciiCaseAsciiL("Deactivate",10)) && + (lProtocol[i].Value >>= m_bDeactivate ) + ) + { + m_eParts |= E_DEACTIVATE; + } + else + if ( + (lProtocol[i].Name.equalsIgnoreAsciiCaseAsciiL("SaveArguments",13)) && + (lProtocol[i].Value >>= m_lArguments ) + ) + { + m_eParts |= E_ARGUMENTS; + } + else + if ( + (lProtocol[i].Name.equalsIgnoreAsciiCaseAsciiL("SendDispatchResult",18)) && + (lProtocol[i].Value >>= m_aDispatchResult ) + ) + { + m_eParts |= E_DISPATCHRESULT; + } + } +} + +//________________________________ +/** + @short copy dtor + @descr - +*/ +JobResult::JobResult( const JobResult& rCopy ) +{ + m_aPureResult = rCopy.m_aPureResult ; + m_eParts = rCopy.m_eParts ; + m_lArguments = rCopy.m_lArguments ; + m_bDeactivate = rCopy.m_bDeactivate ; + m_aDispatchResult = rCopy.m_aDispatchResult ; +} + +//________________________________ +/** + @short standard dtor + @descr Free all internaly used ressources at the end of living. +*/ +JobResult::~JobResult() +{ + // Nothing realy to do here. +} + +//________________________________ +/** + @short =operator + @descr Must be implemented to overwrite this instance with another one. + + @param rCopy + reference to the other instance, which should be used for copying. +*/ +void JobResult::operator=( const JobResult& rCopy ) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + m_aPureResult = rCopy.m_aPureResult ; + m_eParts = rCopy.m_eParts ; + m_lArguments = rCopy.m_lArguments ; + m_bDeactivate = rCopy.m_bDeactivate ; + m_aDispatchResult = rCopy.m_aDispatchResult ; + aWriteLock.unlock(); + /* } SAFE */ +} + +//________________________________ +/** + @short checks for existing parts of the analyzed result + @descr The internal flag mask was set after analyzing of the pure result. + An user of us can check here, if the required part was realy part + of this result. Otherwhise it would use invalid informations ... + by using our other members! + + @param eParts + a flag mask too, which will be compared with our internaly set one. + + @return We return true only, if any set flag of the given mask match. +*/ +sal_Bool JobResult::existPart( sal_uInt32 eParts ) const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return ((m_eParts & eParts) == eParts); + /* } SAFE */ +} + +//________________________________ +/** + @short provides access to our internal members + @descr The return value will be valid only in case a call of + existPart(E_...) before returned true! + + @return It returns the state of the internal member + without any checks! +*/ +css::uno::Sequence< css::beans::NamedValue > JobResult::getArguments() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_lArguments; + /* } SAFE */ +} + +//________________________________ + +sal_Bool JobResult::getDeactivate() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_bDeactivate; + /* } SAFE */ +} + +//________________________________ + +css::frame::DispatchResultEvent JobResult::getDispatchResult() const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_aDispatchResult; + /* } SAFE */ +} + +} // namespace framework diff --git a/framework/source/jobs/joburl.cxx b/framework/source/jobs/joburl.cxx index 611597d68e65..7a6a27d18c95 100644 --- a/framework/source/jobs/joburl.cxx +++ b/framework/source/jobs/joburl.cxx @@ -2,9 +2,9 @@ * * $RCSfile: joburl.cxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: cd $ $Date: 2002-10-14 11:11:04 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:46 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -121,6 +121,10 @@ namespace framework{ JobURL::JobURL( /*IN*/ const ::rtl::OUString& sURL ) : ThreadHelpBase( &Application::GetSolarMutex() ) { + #ifdef ENABLE_COMPONENT_SELF_CHECK + JobURL::impldbg_checkIt(); + #endif + m_eRequest = E_UNKNOWN; // syntax: vnd.sun.star.job:{[event=<name>],[alias=<name>],[service=<name>]} @@ -133,81 +137,43 @@ JobURL::JobURL( /*IN*/ const ::rtl::OUString& sURL ) { // seperate all token of "{[event=<name>],[alias=<name>],[service=<name>]}" ::rtl::OUString sToken = sURL.getToken(0, JOBURL_PART_SEPERATOR, t); + ::rtl::OUString sPartValue ; + ::rtl::OUString sPartArguments; // check for "event=" - if (sToken.matchIgnoreAsciiCaseAsciiL(JOBURL_EVENT_STR,JOBURL_EVENT_LEN,0)) + if ( + (JobURL::implst_split(sToken,JOBURL_EVENT_STR,JOBURL_EVENT_LEN,sPartValue,sPartArguments)) && + (sPartValue.getLength()>0 ) + ) { - // if an event occures more then once ... - // mark this instance as non valid and break further operations - if ((m_eRequest & E_EVENT) == E_EVENT) - { - m_eRequest = E_UNKNOWN; - return; - } - // set the part value - m_sEvent = sToken.copy(JOBURL_EVENT_LEN); - m_eRequest |= E_EVENT; - - // but don't forget to validate it too - if (m_sEvent.getLength()<1) - { - m_eRequest = E_UNKNOWN; - return; - } + m_sEvent = sPartValue ; + m_sEventArgs = sPartArguments; + m_eRequest |= E_EVENT ; } else // check for "alias=" - if (sToken.matchIgnoreAsciiCaseAsciiL(JOBURL_ALIAS_STR,JOBURL_ALIAS_LEN,0)) + if ( + (JobURL::implst_split(sToken,JOBURL_ALIAS_STR,JOBURL_ALIAS_LEN,sPartValue,sPartArguments)) && + (sPartValue.getLength()>0 ) + ) { - // if an alias occures more then once ... - // mark this instance as non valid and break further operations - if ((m_eRequest & E_ALIAS) == E_ALIAS) - { - m_eRequest = E_UNKNOWN; - return; - } - // set the part value - m_sAlias = sToken.copy(JOBURL_ALIAS_LEN); - m_eRequest |= E_ALIAS; - - // but don't forget to validate it too - if (m_sAlias.getLength()<1) - { - m_eRequest = E_UNKNOWN; - return; - } + m_sAlias = sPartValue ; + m_sAliasArgs = sPartArguments; + m_eRequest |= E_ALIAS ; } else // check for "service=" - if (sToken.matchIgnoreAsciiCaseAsciiL(JOBURL_SERVICE_STR,JOBURL_SERVICE_LEN,0)) + if ( + (JobURL::implst_split(sToken,JOBURL_SERVICE_STR,JOBURL_SERVICE_LEN,sPartValue,sPartArguments)) && + (sPartValue.getLength()>0 ) + ) { - // if an service occures more then once ... - // mark this instance as non valid and break further operations - if ((m_eRequest & E_SERVICE) == E_SERVICE) - { - m_eRequest = E_UNKNOWN; - return; - } - // set the part value - m_sService = sToken.copy(JOBURL_SERVICE_LEN); - m_eRequest |= E_SERVICE; - - // but don't forget to validate it too - if (m_sService.getLength()<1) - { - m_eRequest = E_UNKNOWN; - return; - } - } - // found and unexpected token - // URL is not valid then. - else - { - m_eRequest = E_UNKNOWN; - return; + m_sService = sPartValue ; + m_sServiceArgs = sPartArguments; + m_eRequest |= E_SERVICE ; } } while(t!=-1); @@ -261,6 +227,24 @@ sal_Bool JobURL::getEvent( /*OUT*/ ::rtl::OUString& sEvent ) const } //________________________________ + +sal_Bool JobURL::getEventArgs( /*OUT*/ ::rtl::OUString& sEventArgs ) const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + sEventArgs = ::rtl::OUString(); + sal_Bool bSet = ((m_eRequest & E_EVENT) == E_EVENT); + if (bSet) + sEventArgs = m_sEventArgs; + + aReadLock.unlock(); + /* } SAFE */ + + return bSet; +} + +//________________________________ /** @short get the alias item of this job URL @descr Because the three possible parts of such URL (event, alias, service) @@ -294,6 +278,24 @@ sal_Bool JobURL::getAlias( /*OUT*/ ::rtl::OUString& sAlias ) const } //________________________________ + +sal_Bool JobURL::getAliasArgs( /*OUT*/ ::rtl::OUString& sAliasArgs ) const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + sAliasArgs = ::rtl::OUString(); + sal_Bool bSet = ((m_eRequest & E_ALIAS) == E_ALIAS); + if (bSet) + sAliasArgs = m_sAliasArgs; + + aReadLock.unlock(); + /* } SAFE */ + + return bSet; +} + +//________________________________ /** @short get the service item of this job URL @descr Because the three possible parts of such URL (event, service, service) @@ -327,6 +329,86 @@ sal_Bool JobURL::getService( /*OUT*/ ::rtl::OUString& sService ) const } //________________________________ + +sal_Bool JobURL::getServiceArgs( /*OUT*/ ::rtl::OUString& sServiceArgs ) const +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + sServiceArgs = ::rtl::OUString(); + sal_Bool bSet = ((m_eRequest & E_SERVICE) == E_SERVICE); + if (bSet) + sServiceArgs = m_sServiceArgs; + + aReadLock.unlock(); + /* } SAFE */ + + return bSet; +} + +//________________________________ +/** + @short searches for a special identifier in the given string and split it + @descr If the given identifier could be found at the beginning of the given string, + this method split it into different parts and return it. + Following schema is used: <partidentifier>=<partvalue>[?<partarguments>] + + @param sPart + the string, which should be analyzed + + @param pPartIdentifier + the part identifier value, which must be found at the beginning of the + parameter <var>sPart</var> + + @param nPartLength + the length of the ascii value <var>pPartIdentifier</var> + + @param rPartValue + returns the part value if <var>sPart</var> was splitted successfully + + @param rPartArguments + returns the part arguments if <var>sPart</var> was splitted successfully + + @return <TRUE/> if the identifier could be found and the string was splitted. + <FALSE/> otherwhise. +*/ +sal_Bool JobURL::implst_split( /*IN*/ const ::rtl::OUString& sPart , + /*IN*/ const sal_Char* pPartIdentifier , + /*IN*/ sal_Int32 nPartLength , + /*OUT*/ ::rtl::OUString& rPartValue , + /*OUT*/ ::rtl::OUString& rPartArguments ) +{ + // first search for the given identifier + sal_Bool bPartFound = (sPart.matchIgnoreAsciiCaseAsciiL(pPartIdentifier,nPartLength,0)); + + // If it exist - we can split the part and return TRUE. + // Otherwhise we do nothing and return FALSE. + if (bPartFound) + { + // But may the part has optional arguments - seperated by a "?". + // Do so - we set the return value with the whole part string. + // Arguments will be set to an empty string as default. + // If we detect the right sign - we split the arguments and overwrite the default. + ::rtl::OUString sValueAndArguments = sPart.copy(nPartLength); + ::rtl::OUString sValue = sValueAndArguments ; + ::rtl::OUString sArguments; + + sal_Int32 nArgStart = sValueAndArguments.indexOf('?',0); + if (nArgStart!=-1) + { + sValue = sValueAndArguments.copy(0,nArgStart); + ++nArgStart; // ignore '?'! + sArguments = sValueAndArguments.copy(nArgStart); + } + + rPartValue = sValue ; + rPartArguments = sArguments; + } + + return bPartFound; +} + +//________________________________ /** @short special debug method @descr It's the entry point method to start a self component check for this class. @@ -340,34 +422,40 @@ sal_Bool JobURL::getService( /*OUT*/ ::rtl::OUString& sService ) const void JobURL::impldbg_checkIt() { // check simple URL's - JobURL::impldbg_checkURL("vnd.sun.star.job:event=onMyEvent" , E_EVENT , "onMyEvent", "" , "" ); - JobURL::impldbg_checkURL("vnd.sun.star.job:alias=myAlias" , E_ALIAS , "" , "myAlias", "" ); - JobURL::impldbg_checkURL("vnd.sun.star.job:service=css.Service", E_SERVICE, "" , "" , "css.Service"); - JobURL::impldbg_checkURL("vnd.sun.star.job:service=," , E_UNKNOWN, "" , "" , "" ); + JobURL::impldbg_checkURL("vnd.sun.star.job:event=onMyEvent" , E_EVENT , "onMyEvent", "" , "" , NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:alias=myAlias" , E_ALIAS , "" , "myAlias", "" , NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:service=css.Service", E_SERVICE, "" , "" , "css.Service", NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:service=;" , E_UNKNOWN, "" , "" , "" , NULL, NULL, NULL); // check combinations // Note: No additional spaces or tabs are allowed after a seperator occured. // Tab and spaces before a seperator will be used as value! - JobURL::impldbg_checkURL("vnd.sun.star.job:event=onMyEvent,alias=myAlias,service=css.Service" , E_EVENT | E_ALIAS | E_SERVICE , "onMyEvent", "myAlias", "css.Service" ); - JobURL::impldbg_checkURL("vnd.sun.star.job:service=css.Service,alias=myAlias" , E_ALIAS | E_SERVICE , "" , "myAlias", "css.Service" ); - JobURL::impldbg_checkURL("vnd.sun.star.job:service=css.Service ,alias=myAlias" , E_ALIAS | E_SERVICE , "" , "myAlias", "css.Service "); - JobURL::impldbg_checkURL("vnd.sun.star.job:service=css.Service, alias=myAlias" , E_UNKNOWN , "" , "" , "" ); - JobURL::impldbg_checkURL("vnd.sun.star.job : event=onMyEvent" , E_UNKNOWN , "" , "" , "" ); - JobURL::impldbg_checkURL("vnd.sun.star.job:event=onMyEvent,event=onMyEvent,service=css.Service", E_UNKNOWN , "" , "" , "" ); + JobURL::impldbg_checkURL("vnd.sun.star.job:event=onMyEvent;alias=myAlias;service=css.Service" , E_EVENT | E_ALIAS | E_SERVICE , "onMyEvent", "myAlias", "css.Service" , NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:service=css.Service;alias=myAlias" , E_ALIAS | E_SERVICE , "" , "myAlias", "css.Service" , NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:service=css.Service ;alias=myAlias" , E_ALIAS | E_SERVICE , "" , "myAlias", "css.Service ", NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:service=css.Service; alias=myAlias" , E_UNKNOWN , "" , "" , "" , NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job : event=onMyEvent" , E_UNKNOWN , "" , "" , "" , NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:event=onMyEvent;event=onMyEvent;service=css.Service", E_UNKNOWN , "" , "" , "" , NULL, NULL, NULL); // check upper/lower case // fix parts of the URL are case insensitive (e.g. "vnd.SUN.star.job:eVEnt=") // values are case sensitive (e.g. "myAlias" ) - JobURL::impldbg_checkURL("vnd.SUN.star.job:eVEnt=onMyEvent,aliAs=myAlias,serVice=css.Service", E_EVENT | E_ALIAS | E_SERVICE , "onMyEvent", "myAlias", "css.Service" ); - JobURL::impldbg_checkURL("vnd.SUN.star.job:eVEnt=onMyEVENT,aliAs=myALIAS,serVice=css.SERVICE", E_EVENT | E_ALIAS | E_SERVICE , "onMyEVENT", "myALIAS", "css.SERVICE" ); + JobURL::impldbg_checkURL("vnd.SUN.star.job:eVEnt=onMyEvent;aliAs=myAlias;serVice=css.Service", E_EVENT | E_ALIAS | E_SERVICE , "onMyEvent", "myAlias", "css.Service" , NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.SUN.star.job:eVEnt=onMyEVENT;aliAs=myALIAS;serVice=css.SERVICE", E_EVENT | E_ALIAS | E_SERVICE , "onMyEVENT", "myALIAS", "css.SERVICE" , NULL, NULL, NULL); // check stupid URLs - JobURL::impldbg_checkURL("vnd.sun.star.jobs:service=css.Service" , E_UNKNOWN, "", "", ""); - JobURL::impldbg_checkURL("vnd.sun.star.job service=css.Service" , E_UNKNOWN, "", "", ""); - JobURL::impldbg_checkURL("vnd.sun.star.job:service,css.Service" , E_UNKNOWN, "", "", ""); - JobURL::impldbg_checkURL("vnd.sun.star.job:service," , E_UNKNOWN, "", "", ""); - JobURL::impldbg_checkURL("vnd.sun.star.job:,alias,service,event=" , E_UNKNOWN, "", "", ""); - JobURL::impldbg_checkURL("vnd.sun.star.job:alias=a,service=s,event=", E_UNKNOWN, "", "", ""); + JobURL::impldbg_checkURL("vnd.sun.star.jobs:service=css.Service" , E_UNKNOWN, "", "", "", NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job service=css.Service" , E_UNKNOWN, "", "", "", NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:service;css.Service" , E_UNKNOWN, "", "", "", NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:service;" , E_UNKNOWN, "", "", "", NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:;alias;service;event=" , E_UNKNOWN, "", "", "", NULL, NULL, NULL); + JobURL::impldbg_checkURL("vnd.sun.star.job:alias=a;service=s;event=", E_UNKNOWN, "", "", "", NULL, NULL, NULL); + + // check argument handling + JobURL::impldbg_checkURL("vnd.sun.star.job:event=onMyEvent?eventArg1,eventArg2=3,eventArg4," , E_EVENT , "onMyEvent", "" , "" , "eventArg1,eventArg2=3,eventArg4,", NULL , NULL ); + JobURL::impldbg_checkURL("vnd.sun.star.job:alias=myAlias?aliasArg1,aliasarg2" , E_EVENT , "" , "myAlias", "" , NULL , "aliasArg1,aliasarg2", NULL ); + JobURL::impldbg_checkURL("vnd.sun.star.job:service=css.myService?serviceArg1" , E_EVENT , "" , "" , "css.myService", NULL , NULL , "serviceArg1" ); + JobURL::impldbg_checkURL("vnd.sun.star.job:service=css.myService?serviceArg1;alias=myAlias?aliasArg=564", E_EVENT | E_ALIAS, "" , "myAlias", "css.myService", NULL , "aliasArg=564" , "serviceArg1" ); } //________________________________ @@ -392,16 +480,31 @@ void JobURL::impldbg_checkIt() @param pExpectedService the expected service value + + @param pExpectedEventArgs + the expected event arguments + + @param pExpectedAliasArgs + the expected alias arguments + + @param pExpectedServiceArgs + the expected service arguments */ -void JobURL::impldbg_checkURL( /*IN*/ const sal_Char* pURL , - /*IN*/ sal_uInt32 eExpectedPart , - /*IN*/ const sal_Char* pExpectedEvent , - /*IN*/ const sal_Char* pExpectedAlias , - /*IN*/ const sal_Char* pExpectedService ) +void JobURL::impldbg_checkURL( /*IN*/ const sal_Char* pURL , + /*IN*/ sal_uInt32 eExpectedPart , + /*IN*/ const sal_Char* pExpectedEvent , + /*IN*/ const sal_Char* pExpectedAlias , + /*IN*/ const sal_Char* pExpectedService , + /*IN*/ const sal_Char* pExpectedEventArgs , + /*IN*/ const sal_Char* pExpectedAliasArgs , + /*IN*/ const sal_Char* pExpectedServiceArgs ) { - ::rtl::OUString sEvent ; - ::rtl::OUString sAlias ; - ::rtl::OUString sService; + ::rtl::OUString sEvent ; + ::rtl::OUString sAlias ; + ::rtl::OUString sService ; + ::rtl::OUString sEventArgs ; + ::rtl::OUString sAliasArgs ; + ::rtl::OUString sServiceArgs; ::rtl::OUString sURL (::rtl::OUString::createFromAscii(pURL)); sal_Bool bOK = sal_True; @@ -423,6 +526,14 @@ void JobURL::impldbg_checkURL( /*IN*/ const sal_Char* pURL , (sEvent.getLength()>0 ) && (sEvent.compareToAscii(pExpectedEvent)==0) ); + + if (bOK && pExpectedEventArgs!=NULL) + { + bOK = ( + (aURL.getEventArgs(sEventArgs) ) && + (sEventArgs.compareToAscii(pExpectedEventArgs)==0) + ); + }; } // check if URL has no event part @@ -432,8 +543,10 @@ void JobURL::impldbg_checkURL( /*IN*/ const sal_Char* pURL , ) { bOK = ( - (!aURL.getEvent(sEvent)) && - (sEvent.getLength()==0 ) + (!aURL.getEvent(sEvent) ) && + (sEvent.getLength()==0 ) && + (!aURL.getEventArgs(sEventArgs)) && + (sEventArgs.getLength()==0 ) ); } @@ -449,6 +562,14 @@ void JobURL::impldbg_checkURL( /*IN*/ const sal_Char* pURL , (sAlias.getLength()>0 ) && (sAlias.compareToAscii(pExpectedAlias)==0) ); + + if (bOK && pExpectedAliasArgs!=NULL) + { + bOK = ( + (aURL.getAliasArgs(sAliasArgs) ) && + (sAliasArgs.compareToAscii(pExpectedAliasArgs)==0) + ); + }; } // check if URL has the no alias part @@ -458,8 +579,10 @@ void JobURL::impldbg_checkURL( /*IN*/ const sal_Char* pURL , ) { bOK = ( - (!aURL.getAlias(sAlias)) && - (sAlias.getLength()==0 ) + (!aURL.getAlias(sAlias) ) && + (sAlias.getLength()==0 ) && + (!aURL.getAliasArgs(sAliasArgs)) && + (sAliasArgs.getLength()==0 ) ); } @@ -475,6 +598,14 @@ void JobURL::impldbg_checkURL( /*IN*/ const sal_Char* pURL , (sService.getLength()>0 ) && (sService.compareToAscii(pExpectedService)==0) ); + + if (bOK && pExpectedServiceArgs!=NULL) + { + bOK = ( + (aURL.getServiceArgs(sServiceArgs) ) && + (sServiceArgs.compareToAscii(pExpectedServiceArgs)==0) + ); + }; } // check if URL has the no service part @@ -484,8 +615,10 @@ void JobURL::impldbg_checkURL( /*IN*/ const sal_Char* pURL , ) { bOK = ( - (!aURL.getService(sService)) && - (sService.getLength()==0 ) + (!aURL.getService(sService) ) && + (sService.getLength()==0 ) && + (!aURL.getServiceArgs(sServiceArgs)) && + (sServiceArgs.getLength()==0 ) ); } diff --git a/framework/source/jobs/makefile.mk b/framework/source/jobs/makefile.mk index d5577c3449b8..65467910eee9 100644 --- a/framework/source/jobs/makefile.mk +++ b/framework/source/jobs/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.2 $ +# $Revision: 1.3 $ # -# last change: $Author: cd $ $Date: 2002-10-14 11:41:26 $ +# last change: $Author: hr $ $Date: 2003-03-25 18:21:46 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -72,8 +72,11 @@ BOOTSTRAP_SERVICE= FALSE # --- Generate ----------------------------------------------------- -SLOFILES= $(SLO)$/jobdispatch.obj \ - $(SLO)$/jobhandler.obj \ +SLOFILES= $(SLO)$/jobexecutor.obj \ + $(SLO)$/jobdispatch.obj \ + $(SLO)$/job.obj \ + $(SLO)$/jobdata.obj \ + $(SLO)$/jobresult.obj \ $(SLO)$/joburl.obj \ $(SLO)$/configaccess.obj diff --git a/framework/source/recording/dispatchrecorder.cxx b/framework/source/recording/dispatchrecorder.cxx index 5f91d1146c6d..20f0f0c5bfa7 100644 --- a/framework/source/recording/dispatchrecorder.cxx +++ b/framework/source/recording/dispatchrecorder.cxx @@ -27,6 +27,9 @@ using namespace ::com::sun::star::uno; namespace framework{ +// used to mark a dispatch as comment (mostly it indicates an error) Changing of this wdefine will impact all using of such comments ... +#define REM_AS_COMMENT "rem " + //***************************************************************************************************************** // XInterface, XTypeProvider, XServiceInfo //***************************************************************************************************************** @@ -180,13 +183,10 @@ void SAL_CALL DispatchRecorder::endRecording() throw( css::uno::RuntimeException aScriptBuffer.appendAscii("rem define variables\n"); aScriptBuffer.appendAscii("dim document as object\n"); aScriptBuffer.appendAscii("dim dispatcher as object\n"); - aScriptBuffer.appendAscii("dim parser as object\n"); - aScriptBuffer.appendAscii("dim disp as object\n"); - aScriptBuffer.appendAscii("dim url as new com.sun.star.util.URL\n"); aScriptBuffer.appendAscii("rem ----------------------------------------------------------------------\n"); aScriptBuffer.appendAscii("rem get access to the document\n"); - aScriptBuffer.appendAscii("document = ThisComponent.CurrentController.Frame\n"); - aScriptBuffer.appendAscii("parser = createUnoService(\"com.sun.star.util.URLTransformer\")\n\n"); + aScriptBuffer.appendAscii("document = ThisComponent.CurrentController.Frame\n"); + aScriptBuffer.appendAscii("dispatcher = createUnoService(\"com.sun.star.frame.DispatchHelper\")\n\n"); std::vector< com::sun::star::frame::DispatchStatement>::iterator p; for ( p = m_aStatements.begin(); p != m_aStatements.end(); p++ ) @@ -351,7 +351,7 @@ void SAL_CALL DispatchRecorder::implts_recordMacro( const ::rtl::OUString& aURL, // add arg().Name if(bAsComment) - aArgumentBuffer.appendAscii("rem "); + aArgumentBuffer.appendAscii(REM_AS_COMMENT); aArgumentBuffer.append (sArrayName); aArgumentBuffer.appendAscii("("); aArgumentBuffer.append (i); @@ -361,7 +361,7 @@ void SAL_CALL DispatchRecorder::implts_recordMacro( const ::rtl::OUString& aURL, // add arg().Value if(bAsComment) - aArgumentBuffer.appendAscii("rem "); + aArgumentBuffer.appendAscii(REM_AS_COMMENT); aArgumentBuffer.append (sArrayName); aArgumentBuffer.appendAscii("("); aArgumentBuffer.append (i); @@ -375,7 +375,7 @@ void SAL_CALL DispatchRecorder::implts_recordMacro( const ::rtl::OUString& aURL, if(nValidArgs>0) { if(bAsComment) - aScriptBuffer.appendAscii("rem "); + aScriptBuffer.appendAscii(REM_AS_COMMENT); aScriptBuffer.appendAscii("dim "); aScriptBuffer.append (sArrayName); aScriptBuffer.appendAscii("("); @@ -385,32 +385,20 @@ void SAL_CALL DispatchRecorder::implts_recordMacro( const ::rtl::OUString& aURL, aScriptBuffer.appendAscii("\n"); } - // add code for parsing urls - if(bAsComment) - aScriptBuffer.appendAscii("rem "); - aScriptBuffer.appendAscii("url.Complete = \""); - aScriptBuffer.append (aURL); - aScriptBuffer.appendAscii("\"\n"); - if(bAsComment) - aScriptBuffer.appendAscii("rem "); - aScriptBuffer.appendAscii("parser.parseStrict(url)\n"); - // add code for dispatches if(bAsComment) - aScriptBuffer.appendAscii("rem "); - aScriptBuffer.appendAscii("disp = document.queryDispatch(url,\"\",0)\n"); - if(bAsComment) - aScriptBuffer.appendAscii("rem "); + aScriptBuffer.appendAscii(REM_AS_COMMENT); + aScriptBuffer.appendAscii("dispatcher.executeDispatch(document, \""); + aScriptBuffer.append (aURL); + aScriptBuffer.appendAscii("\", \"\", 0, "); if(nValidArgs<1) - aScriptBuffer.appendAscii("disp.dispatch(url,Array())\n"); + aScriptBuffer.appendAscii("Array()"); else { - aScriptBuffer.appendAscii("disp.dispatch(url,"); aScriptBuffer.append( sArrayName.getStr() ); - aScriptBuffer.appendAscii("())\n"); + aScriptBuffer.appendAscii("()"); } - - aScriptBuffer.appendAscii("\n"); + aScriptBuffer.appendAscii(")\n\n"); /* SAFE { */ m_nRecordingID++; diff --git a/framework/source/register/registerservices.cxx b/framework/source/register/registerservices.cxx index 266e7d92e55d..2ee11169d835 100644 --- a/framework/source/register/registerservices.cxx +++ b/framework/source/register/registerservices.cxx @@ -2,9 +2,9 @@ * * $RCSfile: registerservices.cxx,v $ * - * $Revision: 1.16 $ + * $Revision: 1.17 $ * - * last change: $Author: as $ $Date: 2002-10-11 13:41:17 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:48 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -62,9 +62,6 @@ // includes of my own project //_________________________________________________________________________________________________________________ -#include <limits> -#include <ostream> - #ifndef __FRAMEWORK_MACROS_REGISTRATION_HXX_ #include <macros/registration.hxx> #endif @@ -114,8 +111,8 @@ #include <services/frame.hxx> #endif -#ifndef __FRAMEWORK_SERVICES_JOBEXECUTOR_HXX_ -#include <services/jobexecutor.hxx> +#ifndef __FRAMEWORK_JOBS_JOBEXECUTOR_HXX_ +#include <jobs/jobexecutor.hxx> #endif #ifndef __FRAMEWORK_DISPATCH_SOUNDHANDLER_HXX_ @@ -138,8 +135,16 @@ #include <dispatch/servicehandler.hxx> #endif -#ifndef __FRAMEWORK_JOBS_JOBHANDLER_HXX_ -#include <jobs/jobhandler.hxx> +#ifndef __FRAMEWORK_JOBS_JOBDISPATCH_HXX_ +#include <jobs/jobdispatch.hxx> +#endif + +#ifndef __FRAMEWORK_SERVICES_BACKINGCOMP_HXX_ +#include <services/backingcomp.hxx> +#endif + +#ifndef __FRAMEWORK_SERVICES_DISPATCHHELPER_HXX_ +#include <services/dispatchhelper.hxx> #endif COMPONENTGETIMPLEMENTATIONENVIRONMENT @@ -155,7 +160,9 @@ COMPONENTWRITEINFO ( COMPONENTINFO( ::framework::URLTransformer COMPONENTINFO( ::framework::DispatchRecorder ) COMPONENTINFO( ::framework::MailToDispatcher ) COMPONENTINFO( ::framework::ServiceHandler ) - COMPONENTINFO( ::framework::JobHandler ) + COMPONENTINFO( ::framework::JobDispatch ) + COMPONENTINFO( ::framework::BackingComp ) + COMPONENTINFO( ::framework::DispatchHelper ) ) COMPONENTGETFACTORY ( IFFACTORY( ::framework::URLTransformer ) else @@ -169,5 +176,7 @@ COMPONENTGETFACTORY ( IFFACTORY( ::framework::URLTransformer IFFACTORY( ::framework::DispatchRecorder ) else IFFACTORY( ::framework::MailToDispatcher ) else IFFACTORY( ::framework::ServiceHandler ) else - IFFACTORY( ::framework::JobHandler ) + IFFACTORY( ::framework::JobDispatch ) else + IFFACTORY( ::framework::BackingComp ) else + IFFACTORY( ::framework::DispatchHelper ) ) diff --git a/framework/source/services/backingcomp.cxx b/framework/source/services/backingcomp.cxx new file mode 100644 index 000000000000..877972da1f04 --- /dev/null +++ b/framework/source/services/backingcomp.cxx @@ -0,0 +1,1026 @@ +/************************************************************************* + * + * $RCSfile: backingcomp.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:21:49 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#include "services/backingcomp.hxx" + +//_______________________________________________ +// own includes + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +#ifndef __FRAMEWORK_CLASSES_COLORLISTENER_HXX_ +#include <classes/colorlistener.hxx> +#endif + +#ifndef __FRAMEWORK_CLASSES_DROPTARGETLISTENER_HXX_ +#include <classes/droptargetlistener.hxx> +#endif + +#ifndef __FRAMEWORK_HELPER_STATUSINDICATORFACTORY_HXX_ +#include <helper/statusindicatorfactory.hxx> +#endif + +#ifndef __FRAMEWORK_HELPER_ACCELERATORINFO_HXX_ +#include <helper/acceleratorinfo.hxx> +#endif + +#ifndef __FRAMEWORK_TARGETS_H_ +#include <targets.h> +#endif + +#ifndef __FRAMEWORK_SERVICES_H_ +#include <services.h> +#endif + +//_______________________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_ +#include <com/sun/star/util/XURLTransformer.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDER_HPP_ +#include <com/sun/star/frame/XDispatchProvider.hpp> +#endif + +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif + +#ifndef _COM_SUN_STAR_AWT_XDATATRANSFERPROVIDERACCESS_HPP_ +#include <com/sun/star/awt/XDataTransferProviderAccess.hpp> +#endif + +#ifndef _COM_SUN_STAR_DATATRANSFER_DND_XDROPTARGET_HPP_ +#include <com/sun/star/datatransfer/dnd/XDropTarget.hpp> +#endif + +#ifndef _COM_SUN_STAR_AWT_KEYEVENT_HPP_ +#include <com/sun/star/awt/KeyEvent.hpp> +#endif + +#ifndef _COM_SUN_STAR_AWT_KEYMODIFIER_HPP_ +#include <com/sun/star/awt/KeyModifier.hpp> +#endif + +//_______________________________________________ +// other includes + +#ifndef _CPPUHELPER_TYPEPROVIDER_HXX_ +#include <cppuhelper/typeprovider.hxx> +#endif + +#ifndef _CPPUHELPER_FACTORY_HXX_ +#include <cppuhelper/factory.hxx> +#endif + +#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_ +#include <toolkit/helper/vclunohelper.hxx> +#endif + +#ifndef _SV_KEYCODE_HXX +#include <vcl/keycod.hxx> +#endif + +#ifndef _SV_WRKWIN_HXX +#include <vcl/wrkwin.hxx> +#endif + +#ifndef _SV_SVAPP_HXX +#include <vcl/svapp.hxx> +#endif + +namespace framework +{ + +//_______________________________________________ + +const sal_Char* BackingComp::IMPLEMENTATIONNAME = "com.sun.star.comp.sfx2.view.BackingComp"; +const sal_Char* BackingComp::SERVICENAME = "com.sun.star.comp.sfx2.view.BackingComp"; + +//_______________________________________________ + +BackingComp::BackingComp( const css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR ) + : ThreadHelpBase (&Application::GetSolarMutex() ) + , m_xSMGR (xSMGR ) + , m_aAsyncCallback ( LINK( this, BackingComp, impl_asyncCallback ) ) +{ +} + +//_______________________________________________ + +BackingComp::~BackingComp() +{ +} + +//_______________________________________________ + +/** return information about supported interfaces. + + Some interfaces are supported by his class directly, but some other ones are + used by aggregation. An instance of this class must provide some window interfaces. + But it must represent a VCL window behind such interfaces too! So we use an internal + saved window member to ask it for it's interfaces and return it. But we must be aware then, + that it can be destroyed from outside too ... + + @param aType + describe the required interface type + + @return An Any holding the instance, which provides the queried interface. + Note: There exist two possible results ... this instance itself and her window member! + */ + +css::uno::Any SAL_CALL BackingComp::queryInterface( /*IN*/ const css::uno::Type& aType ) + throw(css::uno::RuntimeException) +{ + css::uno::Any aResult; + + // first look for own supported interfaces + aResult = ::cppu::queryInterface( + aType, + static_cast< css::task::XStatusIndicatorSupplier* >(this), + static_cast< css::lang::XTypeProvider* >(this), + static_cast< css::lang::XServiceInfo* >(this), + static_cast< css::lang::XInitialization* >(this), + static_cast< css::frame::XController* >(this), + static_cast< css::lang::XComponent* >(this), + static_cast< css::lang::XEventListener* >(this), + static_cast< css::awt::XKeyListener* >(static_cast< css::lang::XEventListener* >(this))); + + // then look for supported window interfaces + // Note: They exist only, if this instance was initialized + // with a valid window reference. It's aggregation on demand ... + if (!aResult.hasValue()) + { + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + if (m_xWindow.is()) + aResult = m_xWindow->queryInterface(aType); + aReadLock.unlock(); + /* } SAFE */ + } + + // look for XWeak and XInterface + if (!aResult.hasValue()) + aResult = OWeakObject::queryInterface(aType); + + return aResult; +} + +//_______________________________________________ + +/** increase ref count of this instance. + */ + +void SAL_CALL BackingComp::acquire() + throw() +{ + OWeakObject::acquire(); +} + +//_______________________________________________ + +/** decrease ref count of this instance. + */ + +void SAL_CALL BackingComp::release() + throw() +{ + OWeakObject::release(); +} + +//_______________________________________________ + +/** return collection about all supported interfaces. + + Optimize this method ! + We initialize a static variable only one time. + And we don't must use a mutex at every call! + For the first call; pTypeCollection is NULL - + for the second call pTypeCollection is different from NULL! + + @return A list of all supported interface types. +*/ + +css::uno::Sequence< css::uno::Type > SAL_CALL BackingComp::getTypes() + throw(css::uno::RuntimeException) +{ + static ::cppu::OTypeCollection* pTypeCollection = NULL; + if (!pTypeCollection) + { + /* GLOBAL SAFE { */ + ::osl::MutexGuard aGlobalLock(::osl::Mutex::getGlobalMutex()); + // Control these pointer again ... it can be, that another instance will be faster then this one! + if (!pTypeCollection) + { + /* LOCAL SAFE { */ + ReadGuard aReadLock(m_aLock); + css::uno::Reference< css::lang::XTypeProvider > xProvider(m_xWindow, css::uno::UNO_QUERY); + aReadLock.unlock(); + /* } LOCAL SAFE */ + + css::uno::Sequence< css::uno::Type > lWindowTypes; + if (xProvider.is()) + lWindowTypes = xProvider->getTypes(); + + static ::cppu::OTypeCollection aTypeCollection( + ::getCppuType((const ::com::sun::star::uno::Reference< css::lang::XInitialization >*)NULL ), + ::getCppuType((const ::com::sun::star::uno::Reference< css::lang::XTypeProvider >*)NULL ), + ::getCppuType((const ::com::sun::star::uno::Reference< css::lang::XServiceInfo >*)NULL ), + ::getCppuType((const ::com::sun::star::uno::Reference< css::task::XStatusIndicatorSupplier >*)NULL ), + ::getCppuType((const ::com::sun::star::uno::Reference< css::frame::XController >*)NULL ), + ::getCppuType((const ::com::sun::star::uno::Reference< css::lang::XComponent >*)NULL ), + lWindowTypes); + + pTypeCollection = &aTypeCollection; + } + /* } GLOBAL SAFE */ + } + return pTypeCollection->getTypes(); +} + +//_______________________________________________ + +/** create one unique Id for all instances of this class. + + Optimize this method + We initialize a static variable only one time. And we don't must use a mutex at every call! + For the first call; pID is NULL - for the second call pID is different from NULL! + + @return A byte array, which represent the unique id. +*/ + +css::uno::Sequence< sal_Int8 > SAL_CALL BackingComp::getImplementationId() + throw(css::uno::RuntimeException) +{ + static ::cppu::OImplementationId* pID = NULL; + if (!pID) + { + /* GLOBAL SAFE { */ + ::osl::MutexGuard aLock(::osl::Mutex::getGlobalMutex()); + // Control these pointer again ... it can be, that another instance will be faster then this one! + if (!pID) + { + static ::cppu::OImplementationId aID(sal_False); + pID = &aID; + } + /* } GLOBAL SAFE */ + } + return pID->getImplementationId(); +} + +//_______________________________________________ + +/** returns a static implementation name for this UNO service. + + Because this value is needed at different places and our class is used + by some generic macros too, we have to use a static impl method for that! + + @see impl_getStaticImplementationName() + @see IMPLEMENTATIONNAME + + @return The implementation name of this class. +*/ + +::rtl::OUString SAL_CALL BackingComp::getImplementationName() + throw(css::uno::RuntimeException) +{ + return impl_getStaticImplementationName(); +} + +//_______________________________________________ + +/** returns information about supported services. + + Because this value is needed at different places and our class is used + by some generic macros too, we have to use a static impl method for that! + + @see impl_getStaticSupportedServiceNames() + @see SERVICENAME + + @return <TRUE/> if the queried service is supported; + <br><FALSE/> otherwise. +*/ + +sal_Bool SAL_CALL BackingComp::supportsService( /*IN*/ const ::rtl::OUString& sServiceName ) + throw(css::uno::RuntimeException) +{ + css::uno::Sequence< ::rtl::OUString > lNames = impl_getStaticSupportedServiceNames(); + for (int i=0; i<lNames.getLength(); ++i) + if (lNames[i].equals(sServiceName)) + return sal_True; + return sal_False; +} + +//_______________________________________________ + +/** returns collection of supported services. + + Because this value is needed at different places and our class is used + by some generic macros too, we have to use a static impl method for that! + + @see impl_getStaticSupportedServiceNames() + @see SERVICENAME + + @return A list of all supported uno service names. +*/ + +css::uno::Sequence< ::rtl::OUString > SAL_CALL BackingComp::getSupportedServiceNames() + throw(css::uno::RuntimeException) +{ + return impl_getStaticSupportedServiceNames(); +} + +//_______________________________________________ + +/** returns static implementation name. + + Because this value is needed at different places and our class is used + by some generic macros too, we have to use a static impl method for that! + + @see impl_getStaticSupportedServiceNames() + @see SERVICENAME + + @return The implementation name of this class. +*/ + +::rtl::OUString BackingComp::impl_getStaticImplementationName() +{ + return ::rtl::OUString::createFromAscii(IMPLEMENTATIONNAME); +} + +//_______________________________________________ + +/** returns static list of supported service names. + + Because this value is needed at different places and our class is used + by some generic macros too, we have to use a static impl method for that! + + @see impl_getStaticSupportedServiceNames() + @see SERVICENAME + + @return A list of all supported uno service names. +*/ + +css::uno::Sequence< ::rtl::OUString > BackingComp::impl_getStaticSupportedServiceNames() +{ + css::uno::Sequence< ::rtl::OUString > lNames(1); + lNames[0] = ::rtl::OUString::createFromAscii(SERVICENAME); + return lNames; +} + +//_______________________________________________ + +/** returns a new instance of this class. + + This factory method is registered inside the UNO runtime + and will be called for every createInstance() request from outside, + which wish to use this service. + + @param xSMGR + reference to the uno service manager, which call us + We use it too, to set it at the new created instance. + + @return A new instance as uno reference. +*/ + +css::uno::Reference< css::uno::XInterface > SAL_CALL BackingComp::impl_createInstance( /*IN*/ const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ) + throw(css::uno::Exception) +{ + BackingComp* pObject = new BackingComp(xSMGR); + return css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(pObject), css::uno::UNO_QUERY); +} + +//_______________________________________________ + +/** returns a new factory instance for instances of this class. + + It uses a helper class of the cppuhelper project as factory. + It will be initialized with all neccessary informations and + will be able afterwards to create instance of this class. + This factory call us back inside our method impl_createInstance(). + So we can create and initialize ourself. Only filtering of creation + requests will be done by this factory. + + @param xSMGR + reference to the uno service manager, which call us + + @return A new instance of our factory. +*/ + +css::uno::Reference< css::lang::XSingleServiceFactory > BackingComp::impl_createFactory( /*IN*/ const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ) +{ + css::uno::Reference< css::lang::XSingleServiceFactory > xReturn( + cppu::createSingleFactory( + xSMGR, + BackingComp::impl_getStaticImplementationName(), + BackingComp::impl_createInstance, + BackingComp::impl_getStaticSupportedServiceNames())); + return xReturn; +} + +//_______________________________________________ + +/** + attach this component to a target frame. + + We has to use the container window of this frame as parent window of our own component window. + But it's not allowed to work with it realy. May another component used it too. + Currently we need it only to create our child component window and support it's + interfaces inside our queryInterface() method. The user of us must have e.g. the + XWindow interface of it to be able to call setComponent(xWindow,xController) at the + frame! + + May he will do the following things: + + <listing> + XController xBackingComp = (XController)UnoRuntime.queryInterface( + XController.class, + xSMGR.createInstance("com.sun.star.comp.sfx2.view.BackingComp")); + + // at this time XWindow isn't present at this instance! + XWindow xBackingComp = (XWindow)UnoRuntime.queryInterface( + XWindow.class, + xBackingComp); + + // attach controller to the frame + // We will use it's container window, to create + // the component window. From now we offer the window interfaces! + xBackingComp.attachFrame(xFrame); + + XWindow xBackingComp = (XWindow)UnoRuntime.queryInterface( + XWindow.class, + xBackingComp); + + // Our user can set us at the frame as new component + xFrame.setComponent(xBackingWin, xBackingComp); + + // But that had no effect to our view state. + // We must be started to create our UI elements like e.g. menu, title, background ... + XInitialization xBackingInit = (XInitialization)UnoRuntime.queryInterface( + XInitialization.class, + xBackingComp); + + xBackingInit.initialize(lArgs); + </listing> + + @param xFrame + reference to our new target frame + + @throw com::sun::star::uno::RuntimeException + if the given frame reference is wrong or component window couldn't be created + successfully. + We throw it too, if we already attached to a frame. Because we don't support + reparenting of our component window on demand! +*/ + +void SAL_CALL BackingComp::attachFrame( /*IN*/ const css::uno::Reference< css::frame::XFrame >& xFrame ) + throw (css::uno::RuntimeException) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + // check some required states + if (m_xFrame.is()) + throw css::uno::RuntimeException( + ::rtl::OUString::createFromAscii("already attached"), + static_cast< ::cppu::OWeakObject* >(this)); + + if (!xFrame.is()) + throw css::uno::RuntimeException( + ::rtl::OUString::createFromAscii("invalid frame reference"), + static_cast< ::cppu::OWeakObject* >(this)); + + if (!m_xWindow.is()) + throw css::uno::RuntimeException( + ::rtl::OUString::createFromAscii("instance seams to be not or wrong initialized"), + static_cast< ::cppu::OWeakObject* >(this)); + + // safe the frame reference + m_xFrame = xFrame; + + // establish drag&drop mode + ::framework::DropTargetListener* pDropListener = new ::framework::DropTargetListener(m_xSMGR, m_xFrame); + m_xDropTargetListener = css::uno::Reference< css::datatransfer::dnd::XDropTargetListener >(static_cast< ::cppu::OWeakObject* >(pDropListener), css::uno::UNO_QUERY); + + css::uno::Reference< css::awt::XDataTransferProviderAccess > xTransfer(m_xSMGR->createInstance(SERVICENAME_VCLTOOLKIT), css::uno::UNO_QUERY); + if (xTransfer.is()) + { + css::uno::Reference< css::datatransfer::dnd::XDropTarget > xDropTarget = xTransfer->getDropTarget(m_xWindow); + if (xDropTarget.is()) + { + xDropTarget->addDropTargetListener(m_xDropTargetListener); + xDropTarget->setActive(sal_True); + } + } + + // initialize the component and it's parent window + css::uno::Reference< css::awt::XWindow > xParentWindow = xFrame->getContainerWindow(); + WorkWindow* pParent = (WorkWindow*)VCLUnoHelper::GetWindow(xParentWindow); + Window* pWindow = VCLUnoHelper::GetWindow(m_xWindow); + + // disable full screen mode of the frame! + if (pParent->IsFullScreenMode()) + { + pParent->ShowFullScreenMode(FALSE); + pParent->SetMenuBarMode(MENUBAR_MODE_NORMAL); + } + + // create a listener for automatic updates of the window background color + // It hold itself alive and listen for window disposing() so it can die automaticly + // if we release our component window. + ColorListener* pColorListener = new ColorListener(m_xWindow); + + // sett he right title at the title bar of the parent window + css::uno::Reference< css::beans::XPropertySet > xPropSet(m_xFrame, css::uno::UNO_QUERY); + if (xPropSet.is()) + { + css::uno::Any aTitle; + aTitle <<= ::rtl::OUString(Application::GetDisplayName()); + xPropSet->setPropertyValue(DECLARE_ASCII("Title"), aTitle); + } + + // create a status bar to be able to show a progress + StatusIndicatorFactory* pIndicatorFactoryHelper = new StatusIndicatorFactory(m_xSMGR, m_xWindow, sal_True); + m_xStatus = css::uno::Reference< css::task::XStatusIndicatorFactory >(static_cast< ::cppu::OWeakObject* >(pIndicatorFactoryHelper), css::uno::UNO_QUERY); + + // load the menu from a resource + css::util::URL aURL; + aURL.Complete = DECLARE_ASCII("private:resource/261"); + css::uno::Reference< css::util::XURLTransformer > xParser(m_xSMGR->createInstance(SERVICENAME_URLTRANSFORMER), css::uno::UNO_QUERY); + if (xParser.is()) + xParser->parseStrict(aURL); + + css::uno::Reference< css::frame::XDispatchProvider > xProvider(m_xFrame, css::uno::UNO_QUERY); + if (xProvider.is()) + { + css::uno::Reference< css::frame::XDispatch > xDispatch = xProvider->queryDispatch(aURL, SPECIALTARGET_MENUBAR, 0); + if (xDispatch.is()) + xDispatch->dispatch(aURL, css::uno::Sequence< css::beans::PropertyValue>()); + } + + // establish listening for key accelerators + m_xWindow->addKeyListener(css::uno::Reference< css::awt::XKeyListener >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY)); + + aWriteLock.unlock(); + /* } SAFE */ +} + +//_______________________________________________ + +/** not supported. + + This component does not know any model. It will be represented by a window and + it's controller only. + + return <FALSE/> everytime. + */ + +sal_Bool SAL_CALL BackingComp::attachModel( /*IN*/ const css::uno::Reference< css::frame::XModel >& xModel ) + throw (css::uno::RuntimeException) +{ + return sal_False; +} + +//_______________________________________________ + +/** not supported. + + This component does not know any model. It will be represented by a window and + it's controller only. + + return An empty reference every time. + */ + +css::uno::Reference< css::frame::XModel > SAL_CALL BackingComp::getModel() + throw (css::uno::RuntimeException) +{ + return css::uno::Reference< css::frame::XModel >(); +} + +//_______________________________________________ + +/** not supported. + + return An empty value. + */ + +css::uno::Any SAL_CALL BackingComp::getViewData() + throw (css::uno::RuntimeException) +{ + return css::uno::Any(); +} + +//_______________________________________________ + +/** not supported. + + @param aData + not used. + */ + +void SAL_CALL BackingComp::restoreViewData( /*IN*/ const css::uno::Any& aData ) + throw (css::uno::RuntimeException) +{ +} + +//_______________________________________________ + +/** returns the attached frame for this component. + + @see attachFrame() + + @return The internaly saved frame reference. + Can be null, if attachFrame() was not called before. + */ + +css::uno::Reference< css::frame::XFrame > SAL_CALL BackingComp::getFrame() + throw (css::uno::RuntimeException) +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + return m_xFrame; + /* } SAFE */ +} + +//_______________________________________________ + +/** ask controller for it's current working state. + + If somehwere whish to close this component, it must suspend the controller before. + That will be a chance for it to disagree with that AND show any UI for a possible + UI user. + + @param bSuspend + If its set to TRUE this controller should be suspended. + FALSE will resuspend it. + + @return TRUE if the request could be finished successfully; FALSE otherwise. + */ + +sal_Bool SAL_CALL BackingComp::suspend( /*IN*/ sal_Bool bSuspend ) + throw (css::uno::RuntimeException) +{ + /* FIXME ... implemented by using default :-( */ + return sal_True; +} + +//_______________________________________________ + +/** callback from our window member. + + Our internal saved window wish to die. It will be disposed from outside (may be the frame) + and inform us. We must release its reference only here. Of course we check the given reference + here and reject callback from unknown sources. + + Note: deregistration as listener isnt neccessary here. The broadcaster do it automaticly. + + @param aEvent + describe the broadcaster of this callback + + @throw ::com::sun::star::uno::RuntimeException + if the broadcaster doesn't represent the expected window reference. +*/ + +void SAL_CALL BackingComp::disposing( /*IN*/ const css::lang::EventObject& aEvent ) + throw(css::uno::RuntimeException) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + if (!aEvent.Source.is() || aEvent.Source!=m_xWindow || !m_xWindow.is()) + throw css::uno::RuntimeException( + ::rtl::OUString::createFromAscii("unexpected source or called twice"), + static_cast< ::cppu::OWeakObject* >(this)); + + m_xWindow = css::uno::Reference< css::awt::XWindow >(); + + aWriteLock.unlock(); + /* } SAFE */ +} + +//_______________________________________________ + +/** kill this instance. + + It can be called from our owner frame only. But there is no possibility to check the calli. + We have to release all our internal used ressources and die. From this point we can throw + DisposedExceptions for every further interface request ... but current implementation doesn`t do so ... + +*/ + +void SAL_CALL BackingComp::dispose() + throw(css::uno::RuntimeException) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + m_aAsyncCallback.ClearPendingCall(); + + // kill the menu + css::util::URL aURL; + aURL.Complete = DECLARE_ASCII(".uno:close"); + css::uno::Reference< css::util::XURLTransformer > xParser(m_xSMGR->createInstance(SERVICENAME_URLTRANSFORMER), css::uno::UNO_QUERY); + if (xParser.is()) + xParser->parseStrict(aURL); + + css::uno::Reference< css::frame::XDispatchProvider > xProvider(m_xFrame, css::uno::UNO_QUERY); + if (xProvider.is()) + { + css::uno::Reference< css::frame::XDispatch > xDispatch = xProvider->queryDispatch(aURL, SPECIALTARGET_MENUBAR, 0); + if (xDispatch.is()) + xDispatch->dispatch(aURL, css::uno::Sequence< css::beans::PropertyValue>()); + } + + // deregister drag&drop helper + if (m_xDropTargetListener.is()) + { + css::uno::Reference< css::awt::XDataTransferProviderAccess > xTransfer(m_xSMGR->createInstance(SERVICENAME_VCLTOOLKIT), css::uno::UNO_QUERY); + if (xTransfer.is()) + { + css::uno::Reference< css::datatransfer::dnd::XDropTarget > xDropTarget = xTransfer->getDropTarget(m_xWindow); + if (xDropTarget.is()) + { + xDropTarget->removeDropTargetListener(m_xDropTargetListener); + xDropTarget->setActive(sal_False); + } + } + m_xDropTargetListener = css::uno::Reference< css::datatransfer::dnd::XDropTargetListener >(); + } + + // stop listening at the window + if (m_xWindow.is()) + { + css::uno::Reference< css::lang::XComponent > xBroadcaster(m_xWindow, css::uno::UNO_QUERY); + if (xBroadcaster.is()) + { + css::uno::Reference< css::lang::XEventListener > xEventThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + xBroadcaster->removeEventListener(xEventThis); + } + css::uno::Reference< css::awt::XKeyListener > xKeyThis(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + m_xWindow->removeKeyListener(xKeyThis); + m_xWindow = css::uno::Reference< css::awt::XWindow >(); + } + + // forget all other used references + m_xFrame = css::uno::Reference< css::frame::XFrame >(); + m_xSMGR = css::uno::Reference< css::lang::XMultiServiceFactory >(); + m_xStatus = css::uno::Reference< css::task::XStatusIndicatorFactory >(); + + aWriteLock.unlock(); + /* } SAFE */ +} + +//_______________________________________________ + +/** not supported. + + @param xListener + not used. + + @throw ::com::sun::star::uno::RuntimeException + because the listener expect to be holded alive by this container. + We must inform it about this unsupported feature. + */ + +void SAL_CALL BackingComp::addEventListener( /*IN*/ const css::uno::Reference< css::lang::XEventListener >& xListener ) + throw(css::uno::RuntimeException) +{ + throw css::uno::RuntimeException( + ::rtl::OUString::createFromAscii("not supported"), + static_cast< ::cppu::OWeakObject* >(this)); +} + +//_______________________________________________ + +/** not supported. + + Because registration is not supported too, we must do nothing here. Nobody can call this method realy. + + @param xListener + not used. + */ + +void SAL_CALL BackingComp::removeEventListener( /*IN*/ const css::uno::Reference< css::lang::XEventListener >& xListener ) + throw(css::uno::RuntimeException) +{ +} + +//_______________________________________________ + +/** + force initialiation for this component. + + Inside attachFrame() we created our component window. But it was not allowed there, to + initialitze it. E.g. the menu must be set at the container window of the frame, which + is our parent window. But may at that time another component used it. + That's why our creator has to inform us, when it's time to initialize us realy. + Currently only calling of this method must be done. But further implementatoins + can use special in parameter to configure this initialization ... + + @param lArgs + currently not used + + @throw com::sun::star::uno::RuntimeException + if some ressources are missing + Means if may be attachedFrame() wasn't called before. + */ + +void SAL_CALL BackingComp::initialize( /*IN*/ const css::uno::Sequence< css::uno::Any >& lArgs ) + throw(css::uno::Exception, css::uno::RuntimeException) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + + if (m_xWindow.is()) + throw css::uno::Exception( + ::rtl::OUString::createFromAscii("already initialized"), + static_cast< ::cppu::OWeakObject* >(this)); + + css::uno::Reference< css::awt::XWindow > xParentWindow; + if ( + (lArgs.getLength()!=1 ) || + (!(lArgs[0] >>= xParentWindow)) || + (!xParentWindow.is() ) + ) + { + throw css::uno::Exception( + ::rtl::OUString::createFromAscii("wrong or corrupt argument list"), + static_cast< ::cppu::OWeakObject* >(this)); + } + + // create the component window + Window* pParent = VCLUnoHelper::GetWindow(xParentWindow); + Window* pWindow = new Window(pParent, WB_BORDER); + m_xWindow = VCLUnoHelper::GetInterface(pWindow); + + if (!m_xWindow.is()) + throw css::uno::RuntimeException( + ::rtl::OUString::createFromAscii("couldn't create component window"), + static_cast< ::cppu::OWeakObject* >(this)); + + // start listening for window disposing + // It's set at our owner frame as component window later too. So it will may be disposed there ... + css::uno::Reference< css::lang::XComponent > xBroadcaster(m_xWindow, css::uno::UNO_QUERY); + if (xBroadcaster.is()) + xBroadcaster->addEventListener(static_cast< css::lang::XEventListener* >(this)); + + aWriteLock.unlock(); + /* } SAFE */ +} + +//_______________________________________________ + +/** + */ + +css::uno::Reference< css::task::XStatusIndicator > SAL_CALL BackingComp::getStatusIndicator() throw(css::uno::RuntimeException) +{ + css::uno::Reference< css::task::XStatusIndicator > xStatus; + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + if (m_xStatus.is()) + xStatus = m_xStatus->createStatusIndicator(); + aReadLock.unlock(); + /* } SAFE */ + + return xStatus; +} + +KeyCode impl_KeyCodeAWT2VCL( /*IN*/ const css::awt::KeyEvent& rAWTEvent ) +{ + BOOL bShift = ((rAWTEvent.Modifiers & css::awt::KeyModifier::SHIFT) == css::awt::KeyModifier::SHIFT ); + BOOL bMod1 = ((rAWTEvent.Modifiers & css::awt::KeyModifier::MOD1 ) == css::awt::KeyModifier::MOD1 ); + BOOL bMod2 = ((rAWTEvent.Modifiers & css::awt::KeyModifier::MOD2 ) == css::awt::KeyModifier::MOD2 ); + USHORT nKey = (USHORT)rAWTEvent.KeyCode; + return KeyCode(nKey, bShift, bMod1, bMod2); +} + +//_______________________________________________ + +/** + */ + +void SAL_CALL BackingComp::keyPressed( /*IN*/ const css::awt::KeyEvent& aEvent ) + throw(css::uno::RuntimeException) +{ + ::rtl::OUString sURL = GetCommandURLFromKeyCode(impl_KeyCodeAWT2VCL(aEvent)); + if (sURL.getLength()>0) + { + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + m_lAsyncQueue.push(sURL); + m_aAsyncCallback.Call(0, sal_True); + aWriteLock.unlock(); + /* } SAFE */ + } +} + +//_______________________________________________ + +/** + */ + +void SAL_CALL BackingComp::keyReleased( /*IN*/ const css::awt::KeyEvent& aEvent ) + throw(css::uno::RuntimeException) +{ + /* Attention + Please use keyPressed() instead of this method. Otherwhise it would be possible, that + - a key input may be first switch to the backing mode + - and this component register itself as key listener too + - and it's first event will be a keyRealeased() for the already well known event, which switched to the backing mode! + So it will be handled twice! document => backing mode => exit app ... + */ +} + +IMPL_LINK( BackingComp, impl_asyncCallback, void*, pVoid ) +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + ::rtl::OUString sURL = m_lAsyncQueue.front(); + m_lAsyncQueue.pop(); + aReadLock.unlock(); + /* } SAFE */ + + css::util::URL aURL; + aURL.Complete = sURL; + css::uno::Reference< css::util::XURLTransformer > xParser(m_xSMGR->createInstance(SERVICENAME_URLTRANSFORMER), css::uno::UNO_QUERY); + if (xParser.is()) + xParser->parseStrict(aURL); + + css::uno::Reference< css::frame::XDispatchProvider > xProvider(m_xFrame, css::uno::UNO_QUERY); + if (xProvider.is()) + { + css::uno::Reference< css::frame::XDispatch > xDispatch = xProvider->queryDispatch(aURL, SPECIALTARGET_SELF, 0); + if (xDispatch.is()) + xDispatch->dispatch(aURL, css::uno::Sequence< css::beans::PropertyValue>()); + } + + return 0; +} + +} // namespace framework diff --git a/framework/source/services/desktop.cxx b/framework/source/services/desktop.cxx index 936549a7080d..9b8da16a4e25 100644 --- a/framework/source/services/desktop.cxx +++ b/framework/source/services/desktop.cxx @@ -2,9 +2,9 @@ * * $RCSfile: desktop.cxx,v $ * - * $Revision: 1.48 $ + * $Revision: 1.49 $ * - * last change: $Author: mba $ $Date: 2002-10-24 12:25:53 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:50 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -111,6 +111,10 @@ #include <general.h> #endif +#ifndef __FRAMEWORK_PROPERTIES_H_ +#include <properties.h> +#endif + #include <services/documentlist.hxx> //_________________________________________________________________________________________________________________ @@ -161,6 +165,10 @@ #include <com/sun/star/task/XInteractionAbort.hpp> #endif +#ifndef _COM_SUN_STAR_TASK_XINTERACTIONAPPROVE_HPP_ +#include <com/sun/star/task/XInteractionApprove.hpp> +#endif + #ifndef _COM_SUN_STAR_DOCUMENT_XINTERACTIONFILTERSELECT_HPP_ #include <com/sun/star/document/XInteractionFilterSelect.hpp> #endif @@ -169,6 +177,10 @@ #include <com/sun/star/document/AmbigousFilterRequest.hpp> #endif +#ifndef _COM_SUN_STAR_TASK_ERRORCODEREQUEST_HPP_ +#include <com/sun/star/task/ErrorCodeRequest.hpp> +#endif + #ifndef _COM_SUN_STAR_UCB_INTERACTIVEIOEXCEPTION_HPP_ #include <com/sun/star/ucb/InteractiveIOException.hpp> #endif @@ -233,6 +245,10 @@ #include <vcl/svapp.hxx> #endif +#ifndef __RSC +#include <tools/errinf.hxx> +#endif + #ifndef _COMPHELPER_EXTRACT_HXX_ #include <comphelper/extract.hxx> #endif @@ -247,21 +263,6 @@ namespace framework{ // non exported const //_________________________________________________________________________________________________________________ -// names of properties -#define PROPERTYNAME_ACTIVECOMPONENT DECLARE_ASCII("ActiveComponent" ) -#define PROPERTYNAME_ACTIVEFRAME DECLARE_ASCII("ActiveFrame" ) -#define PROPERTYNAME_ISPLUGGED DECLARE_ASCII("IsPlugged" ) -#define PROPERTYNAME_SUSPENDQUICKSTARTVETO DECLARE_ASCII("SuspendQuickstartVeto" ) - -// handle of properties -#define PROPERTYHANDLE_ACTIVECOMPONENT 1 -#define PROPERTYHANDLE_ACTIVEFRAME 2 -#define PROPERTYHANDLE_ISPLUGGED 3 -#define PROPERTYHANDLE_SUSPENDQUICKSTARTVETO 4 - -// count of ALL properties -#define PROPERTYCOUNT 4 - //_________________________________________________________________________________________________________________ // non exported definitions //_________________________________________________________________________________________________________________ @@ -958,7 +959,7 @@ css::uno::Reference< css::lang::XComponent > SAL_CALL Desktop::loadComponentFrom css::uno::Reference< css::frame::XNotifyingDispatch > xNotifyer( xDispatcher, css::uno::UNO_QUERY ); if ( xNotifyer.is() ) - xNotifyer->dispatchWithNotification( aURL, lArguments, this ); + xNotifyer->dispatchWithNotification( aURL, aAnalyzer.getArgumentsConst(), this ); else { // We can't work without any notification! @@ -1775,8 +1776,10 @@ void SAL_CALL Desktop::handle( const css::uno::Reference< css::task::XInteractio // extract continuations from request css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > lContinuations = xRequest->getContinuations(); - css::uno::Reference< css::task::XInteractionAbort > xAbort ; - css::uno::Reference< css::document::XInteractionFilterSelect > xSelect; + css::uno::Reference< css::task::XInteractionAbort > xAbort ; + css::uno::Reference< css::task::XInteractionApprove > xApprove ; + css::uno::Reference< css::document::XInteractionFilterSelect > xFilterSelect ; + sal_Bool bAbort = sal_False; sal_Int32 nCount=lContinuations.getLength(); for( sal_Int32 nStep=0; nStep<nCount; ++nStep ) @@ -1784,35 +1787,56 @@ void SAL_CALL Desktop::handle( const css::uno::Reference< css::task::XInteractio if( ! xAbort.is() ) xAbort = css::uno::Reference< css::task::XInteractionAbort >( lContinuations[nStep], css::uno::UNO_QUERY ); - if( ! xSelect.is() ) - xSelect = css::uno::Reference< css::document::XInteractionFilterSelect >( lContinuations[nStep], css::uno::UNO_QUERY ); + if( ! xApprove.is() ) + xApprove = css::uno::Reference< css::task::XInteractionApprove >( lContinuations[nStep], css::uno::UNO_QUERY ); + + if( ! xFilterSelect.is() ) + xFilterSelect = css::uno::Reference< css::document::XInteractionFilterSelect >( lContinuations[nStep], css::uno::UNO_QUERY ); } // differ between abortable interactions (error, unknown filter ...) // and other ones (ambigous but not unknown filter ...) + css::task::ErrorCodeRequest aErrorCodeRequest ; css::document::AmbigousFilterRequest aAmbigousFilterRequest; if( aRequest >>= aAmbigousFilterRequest ) { - if( xSelect.is() ) + if( xFilterSelect.is() ) { - xSelect->setFilter( aAmbigousFilterRequest.SelectedFilter ); // user selected filter wins! - xSelect->select(); + xFilterSelect->setFilter( aAmbigousFilterRequest.SelectedFilter ); // user selected filter wins! + xFilterSelect->select(); } } else + if( aRequest >>= aErrorCodeRequest ) { - if( xAbort.is() ) + sal_Bool bWarning = (aErrorCodeRequest.ErrCode & ERRCODE_WARNING_MASK == ERRCODE_WARNING_MASK); + if (xApprove.is() && bWarning) + xApprove->select(); + else + if (xAbort.is()) { xAbort->select(); + bAbort = sal_True; } } + else + if( xAbort.is() ) + { + xAbort->select(); + bAbort = sal_True; + } /* SAFE AREA ------------------------------------------------------------------------------------------- */ - WriteGuard aWriteLock( m_aLock ); - // Ok now it's time to break yield loop of loadComponentFromURL()! - m_eLoadState = E_INTERACTION; - m_aInteractionRequest = aRequest ; - aWriteLock.unlock(); + // Ok now it's time to break yield loop of loadComponentFromURL(). + // But only for realy aborted requests! + // For example warnings will be approved and we wait for any success story ... + if (bAbort) + { + WriteGuard aWriteLock( m_aLock ); + m_eLoadState = E_INTERACTION; + m_aInteractionRequest = aRequest ; + aWriteLock.unlock(); + } /* UNSAFE AREA ----------------------------------------------------------------------------------------- */ } @@ -1820,7 +1844,7 @@ void SAL_CALL Desktop::handle( const css::uno::Reference< css::task::XInteractio @short try to convert a property value @descr This method is called from helperclass "OPropertySetHelper". Don't use this directly! - You must try to convert the value of given propertyhandle and + You must try to convert the value of given DESKTOP_PROPHANDLE and return results of this operation. This will be used to ask vetoable listener. If no listener has a veto, we will change value realy! ( in method setFastPropertyValue_NoBroadcast(...) ) @@ -1830,7 +1854,6 @@ void SAL_CALL Desktop::handle( const css::uno::Reference< css::task::XInteractio @seealso class OPropertySetHelper @seealso method setFastPropertyValue_NoBroadcast() - @seealso method impl_tryToChangeProperty() @param "aConvertedValue" new converted value of property @param "aOldValue" old value of property @@ -1850,20 +1873,33 @@ sal_Bool SAL_CALL Desktop::convertFastPropertyValue( css::uno::Any& aCon // Register transaction and reject wrong calls. TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); - // Attention: Method "impl_tryToChangeProperty()" can throw the IllegalArgumentException for us !!! - // Initialize state with FALSE !!! // (Handle can be invalid) sal_Bool bReturn = sal_False; switch( nHandle ) { - case PROPERTYHANDLE_ACTIVECOMPONENT : - case PROPERTYHANDLE_ACTIVEFRAME : - case PROPERTYHANDLE_ISPLUGGED : bReturn = sal_False; // These variables are readonly(!) and can't be changed. - break; - case PROPERTYHANDLE_SUSPENDQUICKSTARTVETO: bReturn = impl_tryToChangeProperty( m_bSuspendQuickstartVeto, aValue, aOldValue, aConvertedValue ); - break; + case DESKTOP_PROPHANDLE_SUSPENDQUICKSTARTVETO: + bReturn = PropHelper::willPropertyBeChanged( + css::uno::makeAny(m_bSuspendQuickstartVeto), + aValue, + aOldValue, + aConvertedValue); + break; + case DESKTOP_PROPHANDLE_DISPATCHRECORDERSUPPLIER : + bReturn = PropHelper::willPropertyBeChanged( + css::uno::makeAny(m_xDispatchRecorderSupplier), + aValue, + aOldValue, + aConvertedValue); + break; + case DESKTOP_PROPHANDLE_TITLE : + bReturn = PropHelper::willPropertyBeChanged( + css::uno::makeAny(m_sTitle), + aValue, + aOldValue, + aConvertedValue); + break; } // Return state of operation. @@ -1895,11 +1931,11 @@ void SAL_CALL Desktop::setFastPropertyValue_NoBroadcast( sal_Int32 switch( nHandle ) { - case PROPERTYHANDLE_ACTIVECOMPONENT : - case PROPERTYHANDLE_ACTIVEFRAME : - case PROPERTYHANDLE_ISPLUGGED : LOG_ERROR( "Desktop::setFastPropertyValue_NoBroadcast()", "Set of readonly property not allowed." ) + case DESKTOP_PROPHANDLE_SUSPENDQUICKSTARTVETO: aValue >>= m_bSuspendQuickstartVeto; + break; + case DESKTOP_PROPHANDLE_DISPATCHRECORDERSUPPLIER: aValue >>= m_xDispatchRecorderSupplier; break; - case PROPERTYHANDLE_SUSPENDQUICKSTARTVETO: aValue >>= m_bSuspendQuickstartVeto; + case DESKTOP_PROPHANDLE_TITLE: aValue >>= m_sTitle; break; } } @@ -1929,14 +1965,15 @@ void SAL_CALL Desktop::getFastPropertyValue( css::uno::Any& aValue , switch( nHandle ) { - case PROPERTYHANDLE_ACTIVECOMPONENT : //aValue <<= getCurrentComponent(); ... not available in const method :-( - aValue <<= css::uno::Reference< css::lang::XComponent >(); + case DESKTOP_PROPHANDLE_ACTIVEFRAME : aValue <<= m_aChildTaskContainer.getActive(); + break; + case DESKTOP_PROPHANDLE_ISPLUGGED : aValue <<= impl_checkPlugInState(); break; - case PROPERTYHANDLE_ACTIVEFRAME : aValue <<= m_aChildTaskContainer.getActive(); + case DESKTOP_PROPHANDLE_SUSPENDQUICKSTARTVETO: aValue <<= m_bSuspendQuickstartVeto; break; - case PROPERTYHANDLE_ISPLUGGED : aValue <<= impl_checkPlugInState(); + case DESKTOP_PROPHANDLE_DISPATCHRECORDERSUPPLIER: aValue <<= m_xDispatchRecorderSupplier; break; - case PROPERTYHANDLE_SUSPENDQUICKSTARTVETO: aValue <<= m_bSuspendQuickstartVeto; + case DESKTOP_PROPHANDLE_TITLE: aValue <<= m_sTitle; break; } } @@ -2087,60 +2124,6 @@ css::uno::Reference< css::lang::XComponent > Desktop::impl_getFrameComponent( co } /*-************************************************************************************************************//** - @short test, if a property will change his value - @descr These methods will test, if a property will change his current value, with given parameter. - We use a helperclass for properties. These class promote this behaviour. - We implement a helper function for every property-type! - - @seealso method convertFastPropertyValue() - - @param "...Property" , the property with his current value - @param "aNewValue" , new value for property - @param "aOldValue" , old value of property as Any for convertFastPropertyValue - @param "aConvertedValue" , new value of property as Any for convertFastPropertyValue(it can be the old one, if nothing is changed!) - @return sal_True ,if value will be changed - @return sal_FALSE ,otherwise. - - @onerror IllegalArgumentException, if convert failed. - @threadsafe yes -*//*-*************************************************************************************************************/ -sal_Bool Desktop::impl_tryToChangeProperty( sal_Bool bProperty , - const css::uno::Any& aNewValue , - css::uno::Any& aOldValue , - css::uno::Any& aConvertedValue ) throw( css::lang::IllegalArgumentException ) -{ - /* UNSAFE AREA --------------------------------------------------------------------------------------------- */ - // Register transaction and reject wrong calls. - TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); - - // Set default return value. - sal_Bool bReturn = sal_False; - - // Clear information of return parameter! - aOldValue.clear(); - aConvertedValue.clear(); - - // Get new value from any. - // IllegalArgumentException() can be thrown! - sal_Bool bNewValue; - ::cppu::convertPropertyValue( bNewValue, aNewValue ); - - // If value change ... - if( bNewValue != bProperty ) - { - // ... set information of change. - // Attention: Use setValue and getCppuBooleanType to set value in any! - // It's necessary, if BOOL can be int or char. - aOldValue.setValue ( &bProperty, ::getCppuBooleanType() ); - aConvertedValue.setValue( &bNewValue, ::getCppuBooleanType() ); - // Return OK - "value will be change ..." - bReturn = sal_True; - } - - return bReturn; -} - -/*-************************************************************************************************************//** @short create table with information about properties @descr We use a helper class to support properties. These class need some information about this. These method create a new static description table with name, type, r/w-flags and so on ... @@ -2165,13 +2148,14 @@ const css::uno::Sequence< css::beans::Property > Desktop::impl_getStaticProperty static const css::beans::Property pProperties[] = { - css::beans::Property( PROPERTYNAME_ACTIVECOMPONENT , PROPERTYHANDLE_ACTIVECOMPONENT , ::getCppuType((const css::uno::Reference< css::lang::XComponent >*)NULL), css::beans::PropertyAttribute::TRANSIENT | css::beans::PropertyAttribute::READONLY ), - css::beans::Property( PROPERTYNAME_ACTIVEFRAME , PROPERTYHANDLE_ACTIVEFRAME , ::getCppuType((const css::uno::Reference< css::lang::XComponent >*)NULL), css::beans::PropertyAttribute::TRANSIENT | css::beans::PropertyAttribute::READONLY ), - css::beans::Property( PROPERTYNAME_ISPLUGGED , PROPERTYHANDLE_ISPLUGGED , ::getBooleanCppuType() , css::beans::PropertyAttribute::TRANSIENT | css::beans::PropertyAttribute::READONLY ), - css::beans::Property( PROPERTYNAME_SUSPENDQUICKSTARTVETO, PROPERTYHANDLE_SUSPENDQUICKSTARTVETO , ::getBooleanCppuType() , css::beans::PropertyAttribute::TRANSIENT ), + css::beans::Property( DESKTOP_PROPNAME_ACTIVEFRAME , DESKTOP_PROPHANDLE_ACTIVEFRAME , ::getCppuType((const css::uno::Reference< css::lang::XComponent >*)NULL) , css::beans::PropertyAttribute::TRANSIENT | css::beans::PropertyAttribute::READONLY ), + css::beans::Property( DESKTOP_PROPNAME_DISPATCHRECORDERSUPPLIER , DESKTOP_PROPHANDLE_DISPATCHRECORDERSUPPLIER, ::getCppuType((const css::uno::Reference< css::frame::XDispatchRecorderSupplier >*)NULL), css::beans::PropertyAttribute::TRANSIENT ), + css::beans::Property( DESKTOP_PROPNAME_ISPLUGGED , DESKTOP_PROPHANDLE_ISPLUGGED , ::getBooleanCppuType() , css::beans::PropertyAttribute::TRANSIENT | css::beans::PropertyAttribute::READONLY ), + css::beans::Property( DESKTOP_PROPNAME_SUSPENDQUICKSTARTVETO , DESKTOP_PROPHANDLE_SUSPENDQUICKSTARTVETO , ::getBooleanCppuType() , css::beans::PropertyAttribute::TRANSIENT ), + css::beans::Property( DESKTOP_PROPNAME_TITLE , DESKTOP_PROPHANDLE_TITLE , ::getCppuType((const ::rtl::OUString*)NULL) , css::beans::PropertyAttribute::TRANSIENT ), }; // Use it to initialize sequence! - static const css::uno::Sequence< css::beans::Property > lPropertyDescriptor( pProperties, PROPERTYCOUNT ); + static const css::uno::Sequence< css::beans::Property > lPropertyDescriptor( pProperties, DESKTOP_PROPCOUNT ); // Return static "PropertyDescriptor" return lPropertyDescriptor; } diff --git a/framework/source/services/dispatchhelper.cxx b/framework/source/services/dispatchhelper.cxx new file mode 100644 index 000000000000..8b05a1d3a079 --- /dev/null +++ b/framework/source/services/dispatchhelper.cxx @@ -0,0 +1,285 @@ +/************************************************************************* + * + * $RCSfile: dispatchhelper.cxx,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:21:50 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//_______________________________________________ +// my own includes + +#ifndef __FRAMEWORK_SERVICES_DISPATCHHELPER_HXX_ +#include <services/dispatchhelper.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +#ifndef __FRAMEWORK_SERVICES_H_ +#include <services.h> +#endif + +//_______________________________________________ +// interface includes + +#ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_ +#include <com/sun/star/util/XURLTransformer.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XNOTIFYINGDISPATCH_HPP_ +#include <com/sun/star/frame/XNotifyingDispatch.hpp> +#endif + +//_______________________________________________ +// includes of other projects + +//_______________________________________________ +// namespace + +namespace framework{ + +//_______________________________________________ +// non exported const + +//_______________________________________________ +// non exported definitions + +//_______________________________________________ +// declarations + +//_______________________________________________ +// XInterface, XTypeProvider, XServiceInfo + +DEFINE_XINTERFACE_4(DispatchHelper , + OWeakObject , + DIRECT_INTERFACE(css::lang::XTypeProvider ), + DIRECT_INTERFACE(css::lang::XServiceInfo ), + DIRECT_INTERFACE(css::frame::XDispatchHelper ), + DIRECT_INTERFACE(css::frame::XDispatchResultListener)) + +DEFINE_XTYPEPROVIDER_4(DispatchHelper , + css::lang::XTypeProvider , + css::lang::XServiceInfo , + css::frame::XDispatchHelper , + css::frame::XDispatchResultListener) + +DEFINE_XSERVICEINFO_MULTISERVICE(DispatchHelper , + ::cppu::OWeakObject , + SERVICENAME_DISPATCHHELPER , + IMPLEMENTATIONNAME_DISPATCHHELPER) + +DEFINE_INIT_SERVICE( DispatchHelper, {} ) + +//_______________________________________________ + +/** ctor. + + @param xSMGR the global uno service manager, which can be used to create own needed services. +*/ +DispatchHelper::DispatchHelper( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ) + : ThreadHelpBase( ) + , OWeakObject ( ) + // Init member + , m_xSMGR (xSMGR) +{ +} + +//_______________________________________________ + +/** dtor. +*/ +DispatchHelper::~DispatchHelper() +{ +} + +//_______________________________________________ + +/** capsulate all steps of a dispatch request and provide so an easy way for dispatches. + + @param xDispatchProvider + identifies the object, which provides may be valid dispatch objects for this execute. + + @param sURL + describes the requested feature. + + @param sTargetFrameName + points to the frame, which must be used (or may be created) for this dispatch. + + @param nSearchFlags + in case the <var>sTargetFrameName</var> isn't unique, these flags regulate further searches. + + @param lArguments + optional arguments for this request. + + @return An Any which capsulate a possible result of the internal wrapped dispatch. + */ +css::uno::Any SAL_CALL DispatchHelper::executeDispatch( + const css::uno::Reference< css::frame::XDispatchProvider >& xDispatchProvider , + const ::rtl::OUString& sURL , + const ::rtl::OUString& sTargetFrameName , + sal_Int32 nSearchFlags , + const css::uno::Sequence< css::beans::PropertyValue >& lArguments ) + throw(css::uno::RuntimeException) +{ + css::uno::Reference< css::uno::XInterface > xTHIS(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY); + + // check for valid parameters + if ( + (!xDispatchProvider.is()) || + (sURL.getLength()<1 ) + ) + { + throw css::uno::RuntimeException(DECLARE_ASCII("called with invalid parameters"), xTHIS); + } + + // parse given URL + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + css::uno::Reference< css::util::XURLTransformer > xParser(m_xSMGR->createInstance(SERVICENAME_URLTRANSFORMER), css::uno::UNO_QUERY); + aReadLock.unlock(); + /* } SAFE */ + + if (!xParser.is()) + throw css::uno::RuntimeException(DECLARE_ASCII("couldn't create neccessary URL parser"), xTHIS); + + css::util::URL aURL; + aURL.Complete = sURL; + xParser->parseStrict(aURL); + + // search dispatcher + css::uno::Reference< css::frame::XDispatch > xDispatch = xDispatchProvider->queryDispatch(aURL, sTargetFrameName, nSearchFlags); + css::uno::Reference< css::frame::XNotifyingDispatch > xNotifyDispatch (xDispatch, css::uno::UNO_QUERY); + + if (!xDispatch.is()) + throw css::uno::RuntimeException(DECLARE_ASCII("no dispatch available"), xTHIS); + + css::uno::Any aResult; + if (xNotifyDispatch.is()) + { + // dispatch it with guaranteed notification + // Here we can hope for a result ... instead of the normal dispatch. + css::uno::Reference< css::frame::XDispatchResultListener > xListener(xTHIS, css::uno::UNO_QUERY); + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + m_xBroadcaster = css::uno::Reference< css::uno::XInterface >(xNotifyDispatch, css::uno::UNO_QUERY); + m_aResult = css::uno::Any(); + m_aBlock.reset(); + aWriteLock.unlock(); + /* } SAFE */ + + // dispatch it and wait for a notification + xNotifyDispatch->dispatchWithNotification(aURL, lArguments, xListener); + m_aBlock.wait(); + aResult = m_aResult; + } + else + if (xDispatch.is()) + { + // dispatch it without any chance to get a result + xDispatch->dispatch(aURL,lArguments); + } + + return aResult; +} + +//_______________________________________________ + +/** callback for started dispatch with guaranteed notifications. + + We must save the result, so the method executeDispatch() can return it. + Further we must release the broadcaster (otherwhise it can't die) + and unblock the waiting executeDispatch() request. + + @param aResult + describes the result of the dispatch operation + */ +void SAL_CALL DispatchHelper::dispatchFinished( const css::frame::DispatchResultEvent& aResult ) + throw(css::uno::RuntimeException) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + m_aResult = aResult.Result; + m_xBroadcaster = css::uno::Reference< css::uno::XInterface >(); + m_aBlock.set(); + aWriteLock.unlock(); + /* } SAFE */ +} + +//_______________________________________________ + +/** we has to realease our broadcaster reference. + + @param aEvent + describe the source of this event and MUST be our save broadcaster! + */ +void SAL_CALL DispatchHelper::disposing( const css::lang::EventObject& aEvent ) + throw(css::uno::RuntimeException) +{ + /* SAFE { */ + WriteGuard aWriteLock(m_aLock); + if (aEvent.Source == m_xBroadcaster) + m_xBroadcaster = css::uno::Reference< css::uno::XInterface >(); + aWriteLock.unlock(); + /* } SAFE */ +} + +} diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx index 90ee4acf623d..877aa5efec68 100644 --- a/framework/source/services/frame.cxx +++ b/framework/source/services/frame.cxx @@ -2,9 +2,9 @@ * * $RCSfile: frame.cxx,v $ * - * $Revision: 1.63 $ + * $Revision: 1.64 $ * - * last change: $Author: mba $ $Date: 2002-10-24 12:25:54 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:51 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -107,6 +107,10 @@ #include <classes/taskcreator.hxx> #endif +#ifndef __FRAMEWORK_CLASSES_FRAMELISTANALYZER_HXX_ +#include <classes/framelistanalyzer.hxx> +#endif + #ifndef __FRAMEWORK_THREADHELP_TRANSACTIONGUARD_HXX_ #include <threadhelp/transactionguard.hxx> #endif @@ -115,6 +119,10 @@ #include <services.h> #endif +#ifndef __FRAMEWORK_PROPERTIES_H_ +#include <properties.h> +#endif + //_________________________________________________________________________________________________________________ // interface includes //_________________________________________________________________________________________________________________ @@ -123,6 +131,10 @@ #include <com/sun/star/task/XJobExecutor.hpp> #endif +#ifndef _COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_ +#include <com/sun/star/util/XURLTransformer.hpp> +#endif + #ifndef _COM_SUN_STAR_MOZILLA_XPLUGININSTANCE_HPP_ #include <com/sun/star/mozilla/XPluginInstance.hpp> #endif @@ -261,18 +273,14 @@ namespace framework{ // non exported const //_________________________________________________________________________________________________________________ -#define PROPERTYNAME_TITLE DECLARE_ASCII("Title" ) -#define PROPERTYNAME_DISPATCHRECORDERSUPPLIER DECLARE_ASCII("DispatchRecorderSupplier") - -#define PROPERTYHANDLE_TITLE 1 -#define PROPERTYHANDLE_DISPATCHRECORDERSUPPLIER 2 - -#define PROPERTYCOUNT 2 +//#define ENABLE_DEFMODALDIALOGPARENT //_________________________________________________________________________________________________________________ // non exported definitions //_________________________________________________________________________________________________________________ +css::uno::WeakReference< css::frame::XFrame > Frame::m_xCloserFrame = css::uno::WeakReference< css::frame::XFrame >(); + //_________________________________________________________________________________________________________________ // declarations //_________________________________________________________________________________________________________________ @@ -280,7 +288,7 @@ namespace framework{ //***************************************************************************************************************** // XInterface, XTypeProvider, XServiceInfo //***************************************************************************************************************** -DEFINE_XINTERFACE_20 ( Frame , +DEFINE_XINTERFACE_19 ( Frame , OWeakObject , DIRECT_INTERFACE(css::lang::XTypeProvider ), DIRECT_INTERFACE(css::lang::XServiceInfo ), @@ -289,7 +297,6 @@ DEFINE_XINTERFACE_20 ( Frame DIRECT_INTERFACE(css::lang::XComponent ), DIRECT_INTERFACE(css::task::XStatusIndicatorFactory ), DIRECT_INTERFACE(css::frame::XDispatchProvider ), - DIRECT_INTERFACE(dcss::frame::XDispatchInformationProvider ), DIRECT_INTERFACE(css::frame::XDispatchProviderInterception ), DIRECT_INTERFACE(css::beans::XMultiPropertySet ), DIRECT_INTERFACE(css::beans::XFastPropertySet ), @@ -304,7 +311,7 @@ DEFINE_XINTERFACE_20 ( Frame DIRECT_INTERFACE(css::frame::XComponentLoader ) ) -DEFINE_XTYPEPROVIDER_19 ( Frame , +DEFINE_XTYPEPROVIDER_18 ( Frame , css::lang::XTypeProvider , css::lang::XServiceInfo , css::frame::XFramesSupplier , @@ -315,7 +322,6 @@ DEFINE_XTYPEPROVIDER_19 ( Frame css::beans::XFastPropertySet , css::beans::XPropertySet , css::frame::XDispatchProvider , - dcss::frame::XDispatchInformationProvider , css::frame::XDispatchProviderInterception , css::awt::XWindowListener , css::awt::XTopWindowListener , @@ -423,6 +429,8 @@ Frame::Frame( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFac , m_bSelfClose ( sal_False ) // Important! , m_bIsPlugIn ( sal_False ) , m_aPoster ( LINK( this, Frame, implts_windowClosing ) ) + , m_bIsHidden ( sal_True ) + , m_bIsBackingMode ( sal_False ) { // Check incoming parameter to avoid against wrong initialization. LOG_ASSERT2( implcp_ctor( xFactory ), "Frame::Frame()", "Invalid parameter detected!" ) @@ -672,7 +680,7 @@ void SAL_CALL Frame::initialize( const css::uno::Reference< css::awt::XWindow >& // Initialize helper. if( m_xContainerWindow.is() == sal_True ) { - StatusIndicatorFactory* pIndicatorFactoryHelper = new StatusIndicatorFactory( m_xFactory, this, m_xContainerWindow ); + StatusIndicatorFactory* pIndicatorFactoryHelper = new StatusIndicatorFactory( m_xFactory, m_xContainerWindow, sal_False ); m_xIndicatorFactoryHelper = css::uno::Reference< css::task::XStatusIndicatorFactory >( static_cast< ::cppu::OWeakObject* >( pIndicatorFactoryHelper ), css::uno::UNO_QUERY ); } @@ -806,8 +814,8 @@ void SAL_CALL Frame::setName( const ::rtl::OUString& sName ) throw( css::uno::Ru WriteGuard aWriteLock( m_aLock ); // Set new name ... but look for invalid special target names! // They are not allowed to set. - m_sName = sName; - impl_filterSpecialTargets( m_sName ); + if (TargetCheck::isValidFrameName(sName)) + m_sName = sName; aWriteLock.unlock(); /* } SAFE */ } @@ -869,6 +877,7 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Frame::findFrame( const ::rtl ReadGuard aReadLock( m_aLock ); css::uno::Reference< css::frame::XFrame > xParent ( m_xParent, css::uno::UNO_QUERY ); css::uno::Reference< css::lang::XMultiServiceFactory > xFactory = m_xFactory; + sal_Bool bIsTop = m_bIsFrameTop; aReadLock.unlock(); /* } SAFE */ @@ -902,7 +911,7 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Frame::findFrame( const ::rtl else if ( sTargetFrameName==SPECIALTARGET_TOP ) { - if (isTop()) + if (bIsTop) xTarget = this; else if (xParent.is()) // If we are not top - the parent MUST exist. But may it's better to check it again .-) @@ -932,7 +941,7 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Frame::findFrame( const ::rtl if ( sTargetFrameName==SPECIALTARGET_BEAMER ) { // We are a task => search or create the beamer - if (isTop()) + if (bIsTop) { xTarget = m_aChildFrameContainer.searchOnDirectChildrens(SPECIALTARGET_BEAMER); if ( ! xTarget.is() ) @@ -1003,8 +1012,8 @@ css::uno::Reference< css::frame::XFrame > SAL_CALL Frame::findFrame( const ::rtl // or we can ignore it if we have no valid parent. //------------------------------------------------------------------------------------------------- if ( - ( isTop() && (nSearchFlags & css::frame::FrameSearchFlag::TASKS) ) || - ( !isTop() ) + ( bIsTop && (nSearchFlags & css::frame::FrameSearchFlag::TASKS) ) || + ( !bIsTop ) ) { //------------------------------------------------------------------------------------------------- @@ -1167,6 +1176,7 @@ void SAL_CALL Frame::activate() throw( css::uno::RuntimeException ) css::uno::Reference< css::frame::XFrame > xThis ( static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY ); css::uno::Reference< css::awt::XWindow > xComponentWindow( m_xComponentWindow, css::uno::UNO_QUERY ) ; EActiveState eState = m_eActiveState ; + sal_Bool bIsTop = m_bIsFrameTop ; aWriteLock.unlock(); /* UNSAFE AREA --------------------------------------------------------------------------------------------- */ @@ -1230,16 +1240,19 @@ void SAL_CALL Frame::activate() throw( css::uno::RuntimeException ) m_eActiveState = eState; aWriteLock.unlock(); implts_sendFrameActionEvent( css::frame::FrameAction_FRAME_UI_ACTIVATED ); + +#ifdef ENABLE_DEFMODALDIALOGPARENT ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() ); Window* pWindow = VCLUnoHelper::GetWindow( xComponentWindow ); if ( !pWindow ) pWindow = VCLUnoHelper::GetWindow( m_xContainerWindow ); - if( pWindow != NULL && isTop() && m_xController.is() ) + if( pWindow != NULL && bisTop && m_xController.is() ) { Application::SetDefModalDialogParent( pWindow ); } aSolarGuard.clear(); +#endif // ENABLE_DEFMODALDIALOGPARENT } } @@ -1433,6 +1446,7 @@ sal_Bool SAL_CALL Frame::setComponent( const css::uno::Reference< css::awt::X aReadLock.unlock(); /* } SAFE */ +#ifdef ENABLE_DEFMODALDIALOGPARENT // Before dispose() of this window we must search another def modal dialog parent. // Set the container window of this frame as the new one - but do it only if our old // component window was this special dialog parent realy. @@ -1451,7 +1465,7 @@ sal_Bool SAL_CALL Frame::setComponent( const css::uno::Reference< css::awt::X aGlobalSolarLock.clear(); /* } SAFE */ - +#endif //_____________________________________________________________________________________________________ // stop listening on old window // May it produce some trouble. @@ -1543,6 +1557,7 @@ sal_Bool SAL_CALL Frame::setComponent( const css::uno::Reference< css::awt::X if ( bHadFocus ) xComponentWindow->setFocus(); +#ifdef ENABLE_DEFMODALDIALOGPARENT /* SOLAR SAFE { */ ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() ); Window* pWindow = VCLUnoHelper::GetWindow( xComponentWindow ); @@ -1550,6 +1565,7 @@ sal_Bool SAL_CALL Frame::setComponent( const css::uno::Reference< css::awt::X Application::SetDefModalDialogParent( pWindow ); aSolarGuard.clear(); /* } SOLAR SAFE */ +#endif } // If it was a new component window - we must resize it to fill out @@ -1560,6 +1576,26 @@ sal_Bool SAL_CALL Frame::setComponent( const css::uno::Reference< css::awt::X // OK - start listening on new window again - or do nothing if it is an empty one. implts_startWindowListening(); + // We have to reset the backing component state property! + // It was set from outside ... but it can't be true for a new component. + // So we have to reset it. The outside code must restore this state again. + // Bute note: + // Because the backing component doesn't show the closer ... + // but every other document frame have it (if it's the last opened document) ... + // we have to update this state her too. The frame will may be recycled and switch + // from backing mode to a document mode. + /* SAFE { */ + aWriteLock.lock(); + if (m_bIsBackingMode) + { + m_bIsBackingMode = sal_False; + impl_checkMenuCloser(); + } + aWriteLock.unlock(); + /* } SAFE */ + + + return sal_True; } @@ -1754,6 +1790,13 @@ void SAL_CALL Frame::close( sal_Bool bDeliverOwnerShip ) throw( css::util::Close } } + /* SAFE { */ + WriteGuard aWriteLock( m_aLock ); + m_bIsHidden = sal_True; + aWriteLock.unlock(); + /* } SAFE */ + impl_checkMenuCloser(); + // Attention: We must release our own registered transaction here. Otherwhise following dispose() call // wait for us too .... aTransaction.stop(); @@ -1911,6 +1954,19 @@ void SAL_CALL Frame::dispose() throw( css::uno::RuntimeException ) m_xDropTargetListener = NULL; m_xDispatchRecorderSupplier = NULL; + // It's important to set default values here! + // If may be later somewhere change the disposed-behaviour of this implementation + // and doesn't throw any DisposedExceptions we must guarantee best matching default values ... + m_eActiveState = E_INACTIVE; + m_sName = ::rtl::OUString(); + m_bIsFrameTop = sal_False; + m_bConnected = sal_False; + m_nExternalLockCount = 0; + m_bSelfClose = sal_False; + m_bIsHidden = sal_True; + m_bIsBackingMode = sal_False; + m_bIsPlugIn = sal_False; + // Disable this instance for further working realy! m_aTransactionManager.setWorkingMode( E_CLOSE ); @@ -2006,87 +2062,6 @@ css::uno::Reference< css::task::XStatusIndicator > SAL_CALL Frame::createStatusI } /*-****************************************************************************************************//** - @interface XDispatchInformationProvider - @short get informations about supported dispatch commands - @descr Use this interface to get informations about possibility to dispatch special commands. - ( e.g. "print", "close" ... ) - In current implmentation we forward requests to our internal controller ... - but in following implementaions we could add own infos to returned values. - - @seealso interface XDispatchInformationProvider - - @param "sURL" , queried command - @param "lURLs" , list of commands for faster access - @param "lDescriptions" , result set if more then one URLs was queried - @return Configuration of dispatch informations at method getConfigurableDispatchInformation(). - - @onerror - - @threadsafe yes -*//*-*****************************************************************************************************/ -::rtl::OUString SAL_CALL Frame::queryDescription( const ::rtl::OUString& sURL ) throw( css::uno::RuntimeException ) -{ - /* UNSAFE AREA ----------------------------------------------------------------------------------------- */ - // Look for rejected calls! - TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); - - // Declare default return value if method failed. - ::rtl::OUString sInfo; - - /* SAFE AREA ----------------------------------------------------------------------------------------------- */ - ReadGuard aReadLock( m_aLock ); - css::uno::Reference< dcss::frame::XDispatchInformationProvider > xProvider( m_xController, css::uno::UNO_QUERY ); - aReadLock.unlock(); - /* UNSAFE AREA ----------------------------------------------------------------------------------------- */ - - if( xProvider.is() == sal_True ) - { - sInfo = xProvider->queryDescription( sURL ); - } - return sInfo; -} - -//***************************************************************************************************************** -void SAL_CALL Frame::queryDescriptions( const css::uno::Sequence< ::rtl::OUString >& lURLs , - css::uno::Sequence< ::rtl::OUString >& lDescriptions ) throw( css::uno::RuntimeException ) -{ - /* UNSAFE AREA ----------------------------------------------------------------------------------------- */ - // Look for rejected calls! - TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); - - /* SAFE AREA ----------------------------------------------------------------------------------------------- */ - ReadGuard aReadLock( m_aLock ); - css::uno::Reference< dcss::frame::XDispatchInformationProvider > xProvider( m_xController, css::uno::UNO_QUERY ); - aReadLock.unlock(); - /* UNSAFE AREA ----------------------------------------------------------------------------------------- */ - - if( xProvider.is() == sal_True ) - { - xProvider->queryDescriptions( lURLs, lDescriptions ); - } -} - -//***************************************************************************************************************** -css::uno::Sequence< dcss::frame::DispatchInformation > SAL_CALL Frame::getConfigurableDispatchInformation() throw( css::uno::RuntimeException ) -{ - /* UNSAFE AREA ----------------------------------------------------------------------------------------- */ - // Look for rejected calls! - TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); - - /* SAFE AREA ----------------------------------------------------------------------------------------------- */ - ReadGuard aReadLock( m_aLock ); - css::uno::Reference< dcss::frame::XDispatchInformationProvider > xProvider( m_xController, css::uno::UNO_QUERY ); - aReadLock.unlock(); - /* UNSAFE AREA ----------------------------------------------------------------------------------------- */ - - css::uno::Sequence< dcss::frame::DispatchInformation > lInfos; - if( xProvider.is() == sal_True ) - { - lInfos = xProvider->getConfigurableDispatchInformation(); - } - return lInfos; -} - -/*-****************************************************************************************************//** @short search for target to load URL @descr This method searches for a dispatch for the specified DispatchDescriptor. The FrameSearchFlags and the FrameName of the DispatchDescriptor are @@ -2274,7 +2249,7 @@ void SAL_CALL Frame::windowActivated( const css::lang::EventObject& aEvent ) thr // Activate the new active path from here to top. if( eState == E_INACTIVE ) { - CheckMenuCloser_Impl(); +// CheckMenuCloser_Impl(); setActiveFrame( css::uno::Reference< css::frame::XFrame >() ); activate(); } @@ -2305,7 +2280,7 @@ void SAL_CALL Frame::windowDeactivated( const css::lang::EventObject& aEvent ) t // Only if no activation is done, deactivations have to be processed if the activated window // is a parent window of the last active Window! ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() ); - CheckMenuCloser_Impl(); +// CheckMenuCloser_Impl(); Window* pFocusWindow = Application::GetFocusWindow(); if ( ( xContainerWindow.is() == sal_True ) && @@ -2368,7 +2343,15 @@ IMPL_LINK( Frame, implts_windowClosing, void*, pVoid ) if ( xController.is() && !xController->suspend(sal_True) ) return 0; - close( sal_False ); + css::util::URL aURL; + aURL.Complete = DECLARE_ASCII(".uno:CloseFrame"); + css::uno::Reference< css::util::XURLTransformer > xParser(m_xFactory->createInstance(SERVICENAME_URLTRANSFORMER), css::uno::UNO_QUERY); + if (xParser.is()) + xParser->parseStrict(aURL); + css::uno::Reference< css::frame::XDispatch > xCloser = queryDispatch(aURL,SPECIALTARGET_TOP,0); + if (xCloser.is()) + xCloser->dispatch(aURL,css::uno::Sequence< css::beans::PropertyValue >()); +// close( sal_False ); } catch( css::util::CloseVetoException& ) { @@ -2405,10 +2388,15 @@ void SAL_CALL Frame::windowShown( const css::lang::EventObject& aEvent ) throw(c static sal_Bool bFirstVisibleTask = sal_True; /* SAFE { */ + ReadGuard aReadLock(m_aLock); css::uno::Reference< css::frame::XDesktop > xDesktopCheck( m_xParent, css::uno::UNO_QUERY ); css::uno::Reference< css::lang::XMultiServiceFactory > xFactory = m_xFactory; + m_bIsHidden = sal_False; + aReadLock.unlock(); /* } SAFE */ + impl_checkMenuCloser(); + if (xDesktopCheck.is()) { /* STATIC SAFE { */ @@ -2429,6 +2417,17 @@ void SAL_CALL Frame::windowShown( const css::lang::EventObject& aEvent ) throw(c } } +void SAL_CALL Frame::windowHidden( const css::lang::EventObject& aEvent ) throw(css::uno::RuntimeException) +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + m_bIsHidden = sal_True; + aReadLock.unlock(); + /* } SAFE */ + + impl_checkMenuCloser(); +} + /*-****************************************************************************************************//** @short called by dispose of our windows! @descr This object is forced to release all references to the interfaces given @@ -2553,7 +2552,7 @@ sal_Int16 SAL_CALL Frame::resetActionLocks() throw( css::uno::RuntimeException ) @short try to convert a property value @descr This method is calling from helperclass "OPropertySetHelper". Don't use this directly! - You must try to convert the value of given propertyhandle and + You must try to convert the value of given FRAME_PROPHANDLE and return results of this operation. This will be use to ask vetoable listener. If no listener have a veto, we will change value realy! ( in method setFastPropertyValue_NoBroadcast(...) ) @@ -2581,8 +2580,6 @@ sal_Bool SAL_CALL Frame::convertFastPropertyValue( css::uno::Any& // Check, if value of property will changed in method "setFastPropertyValue_NoBroadcast()". // Return TRUE, if changed - else return FALSE. - // Attention: - // Method "impl_tryToChangeProperty()" can throw the IllegalArgumentException !!! // Initialize state with FALSE !!! // (Handle can be invalid) @@ -2590,12 +2587,24 @@ sal_Bool SAL_CALL Frame::convertFastPropertyValue( css::uno::Any& switch( nHandle ) { - case PROPERTYHANDLE_TITLE : - bReturn = impl_tryToChangeProperty( implts_getTitleFromWindow(), aValue, aOldValue, aConvertedValue ); + case FRAME_PROPHANDLE_TITLE : + bReturn = PropHelper::willPropertyBeChanged( + css::uno::makeAny(implts_getTitleFromWindow()), aValue, aOldValue, aConvertedValue ); + break; + + case FRAME_PROPHANDLE_DISPATCHRECORDERSUPPLIER : + bReturn = PropHelper::willPropertyBeChanged( + css::uno::makeAny(m_xDispatchRecorderSupplier), aValue, aOldValue, aConvertedValue ); + break; + + case FRAME_PROPHANDLE_ISHIDDEN : + bReturn = PropHelper::willPropertyBeChanged( + css::uno::makeAny(m_bIsHidden), aValue, aOldValue, aConvertedValue ); break; - case PROPERTYHANDLE_DISPATCHRECORDERSUPPLIER : - bReturn = impl_tryToChangeProperty( m_xDispatchRecorderSupplier, aValue, aOldValue, aConvertedValue ); + case FRAME_PROPHANDLE_ISBACKINGMODE : + bReturn = PropHelper::willPropertyBeChanged( + css::uno::makeAny(m_bIsBackingMode), aValue, aOldValue, aConvertedValue ); break; #ifdef ENABLE_WARNINGS @@ -2634,7 +2643,7 @@ void SAL_CALL Frame::setFastPropertyValue_NoBroadcast( sal_Int32 // Search for right handle ... and try to set property value. switch ( nHandle ) { - case PROPERTYHANDLE_TITLE : + case FRAME_PROPHANDLE_TITLE : { ::rtl::OUString sTitle; aValue >>= sTitle; @@ -2642,10 +2651,14 @@ void SAL_CALL Frame::setFastPropertyValue_NoBroadcast( sal_Int32 } break; - case PROPERTYHANDLE_DISPATCHRECORDERSUPPLIER : + case FRAME_PROPHANDLE_DISPATCHRECORDERSUPPLIER : aValue >>= m_xDispatchRecorderSupplier; break; + case FRAME_PROPHANDLE_ISBACKINGMODE : + aValue >>= m_bIsBackingMode; + break; + #ifdef ENABLE_WARNINGS default : LOG_WARNING( "Frame::setFastPropertyValue_NoBroadcast()", "Invalid handle detected!" ) @@ -2678,14 +2691,22 @@ void SAL_CALL Frame::getFastPropertyValue( css::uno::Any& aValue , // Search for right handle ... and try to set property value. switch( nHandle ) { - case PROPERTYHANDLE_TITLE : + case FRAME_PROPHANDLE_TITLE : aValue <<= implts_getTitleFromWindow(); break; - case PROPERTYHANDLE_DISPATCHRECORDERSUPPLIER : + case FRAME_PROPHANDLE_DISPATCHRECORDERSUPPLIER : aValue <<= m_xDispatchRecorderSupplier; break; + case FRAME_PROPHANDLE_ISHIDDEN : + aValue <<= m_bIsHidden; + break; + + case FRAME_PROPHANDLE_ISBACKINGMODE : + aValue <<= m_bIsBackingMode; + break; + #ifdef ENABLE_WARNINGS default : LOG_WARNING( "Frame::getFastPropertyValue()", "Invalid handle detected!" ) @@ -2793,81 +2814,17 @@ const css::uno::Sequence< css::beans::Property > Frame::impl_getStaticPropertyDe static const css::beans::Property pPropertys[] = { - css::beans::Property( PROPERTYNAME_DISPATCHRECORDERSUPPLIER, PROPERTYHANDLE_DISPATCHRECORDERSUPPLIER, ::getCppuType((const css::uno::Reference< css::frame::XDispatchRecorderSupplier >*)NULL), css::beans::PropertyAttribute::TRANSIENT ), - css::beans::Property( PROPERTYNAME_TITLE , PROPERTYHANDLE_TITLE , ::getCppuType((const ::rtl::OUString*)NULL) , css::beans::PropertyAttribute::TRANSIENT ), + css::beans::Property( FRAME_PROPNAME_DISPATCHRECORDERSUPPLIER, FRAME_PROPHANDLE_DISPATCHRECORDERSUPPLIER, ::getCppuType((const css::uno::Reference< css::frame::XDispatchRecorderSupplier >*)NULL), css::beans::PropertyAttribute::TRANSIENT ), + css::beans::Property( FRAME_PROPNAME_ISBACKINGMODE , FRAME_PROPHANDLE_ISBACKINGMODE , ::getBooleanCppuType() , css::beans::PropertyAttribute::TRANSIENT ), + css::beans::Property( FRAME_PROPNAME_ISHIDDEN , FRAME_PROPHANDLE_ISHIDDEN , ::getBooleanCppuType() , css::beans::PropertyAttribute::TRANSIENT | css::beans::PropertyAttribute::READONLY ), + css::beans::Property( FRAME_PROPNAME_TITLE , FRAME_PROPHANDLE_TITLE , ::getCppuType((const ::rtl::OUString*)NULL) , css::beans::PropertyAttribute::TRANSIENT ), }; // Use it to initialize sequence! - static const css::uno::Sequence< css::beans::Property > lPropertyDescriptor( pPropertys, PROPERTYCOUNT ); + static const css::uno::Sequence< css::beans::Property > lPropertyDescriptor( pPropertys, FRAME_PROPCOUNT ); // Return static "PropertyDescriptor" return lPropertyDescriptor; } -//***************************************************************************************************************** -// private method -//***************************************************************************************************************** -sal_Bool Frame::impl_tryToChangeProperty( const ::rtl::OUString& sProperty , - const css::uno::Any& aValue , - css::uno::Any& aOldValue , - css::uno::Any& aConvertedValue ) throw( css::lang::IllegalArgumentException ) -{ - // Set default return value. - sal_Bool bReturn = sal_False; - - // Clear information of return parameter! - aOldValue.clear(); - aConvertedValue.clear(); - - // Get new value from any. - // IllegalArgumentException() can be thrown! - ::rtl::OUString sNewValue; - ::cppu::convertPropertyValue( sNewValue, aValue ); - - // If value change ... - if( sNewValue != sProperty ) - { - // ... set information of change. - aOldValue.setValue ( &sProperty, ::getCppuType((const ::rtl::OUString*)NULL) ); - aConvertedValue.setValue( &sNewValue, ::getCppuType((const ::rtl::OUString*)NULL) ); - // Return OK - "value will be change ..." - bReturn = sal_True; - } - - return bReturn; -} - -//***************************************************************************************************************** -// private method -//***************************************************************************************************************** -sal_Bool Frame::impl_tryToChangeProperty( const css::uno::Reference< css::frame::XDispatchRecorderSupplier >& xProperty , - const css::uno::Any& aValue , - css::uno::Any& aOldValue , - css::uno::Any& aConvertedValue ) throw( css::lang::IllegalArgumentException ) -{ - // Set default return value. - sal_Bool bReturn = sal_False; - - // Clear information of return parameter! - aOldValue.clear(); - aConvertedValue.clear(); - - // Get new value from any. - // IllegalArgumentException() can be thrown! - css::uno::Reference< css::frame::XDispatchRecorderSupplier > xNewValue; - ::cppu::convertPropertyValue( xNewValue, aValue ); - - // If value change ... - if( xNewValue != xProperty ) - { - // ... set information of change. - aOldValue.setValue ( &xProperty, ::getCppuType((const css::uno::Reference< css::frame::XDispatchRecorderSupplier >*)NULL) ); - aConvertedValue.setValue( &xNewValue, ::getCppuType((const css::uno::Reference< css::frame::XDispatchRecorderSupplier >*)NULL) ); - // Return OK - "value will be change ..." - bReturn = sal_True; - } - - return bReturn; -} - /*-****************************************************************************************************//** @short dispose old container window and forget his reference @descr Sometimes we must repair our "modal dialog parent mechanism" too! @@ -2884,8 +2841,7 @@ void Frame::impl_disposeContainerWindow( css::uno::Reference< css::awt::XWindow { if( xWindow.is() == sal_True ) { - // All VclComponents are XComponents; so call dispose before discarding - // a css::uno::Reference< XVclComponent >, because this frame is the owner of the window +#ifdef ENABLE_DEFMODALDIALOGPARENT ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() ); Window* pWindow = VCLUnoHelper::GetWindow( xWindow ); if ( @@ -2896,8 +2852,10 @@ void Frame::impl_disposeContainerWindow( css::uno::Reference< css::awt::XWindow Application::SetDefModalDialogParent( NULL ); } aSolarGuard.clear(); - +#endif xWindow->setVisible( sal_False ); + // All VclComponents are XComponents; so call dispose before discarding + // a css::uno::Reference< XVclComponent >, because this frame is the owner of the window xWindow->dispose(); xWindow = css::uno::Reference< css::awt::XWindow >(); } @@ -3172,26 +3130,6 @@ void Frame::implts_setIconOnWindow() } /*-************************************************************************************************************//** - @short filter special names - @attention If somewhere have a name value ... but don't know if he can set it on a frame ... - he should call this helper to clear all questions. - Some special target names are not allowed as frame name! -*//*-*************************************************************************************************************/ -void Frame::impl_filterSpecialTargets( ::rtl::OUString& sTarget ) -{ - if ( - ( sTarget == SPECIALTARGET_SELF ) || - ( sTarget == SPECIALTARGET_PARENT ) || - ( sTarget == SPECIALTARGET_TOP ) || - ( sTarget == SPECIALTARGET_DEFAULT ) || - ( sTarget == SPECIALTARGET_BLANK ) - ) - { - sTarget = ::rtl::OUString(); - } -} - -/*-************************************************************************************************************//** @short helper to start/stop listeneing for window events on container window @descr If we get a new container window, we must set it on internal memeber ... and stop listening at old one ... and start listening on new one! @@ -3308,13 +3246,14 @@ void Frame::implts_stopWindowListening() *//*-*****************************************************************************************************/ void Frame::implts_checkSuicide() { - sal_Bool bSuicide = sal_False; - /* SAFE */{ - // in case of lock==0 and safed state of previous close() request m_bSelfClose - // we must force close() again. Because we had disagreed with that before. - bSuicide = (m_nExternalLockCount==0 && m_bSelfClose); - m_bSelfClose = sal_False; - } + /* SAFE */ + ReadGuard aReadLock(m_aLock); + // in case of lock==0 and safed state of previous close() request m_bSelfClose + // we must force close() again. Because we had disagreed with that before. + sal_Bool bSuicide = (m_nExternalLockCount==0 && m_bSelfClose); + m_bSelfClose = sal_False; + aReadLock.unlock(); + /* } SAFE */ // force close and deliver owner ship to source of possible throwed veto exception // Attention: Because this method isn't designed to throw such exception we must supress // it for outside code! @@ -3328,50 +3267,131 @@ void Frame::implts_checkSuicide() } } -void Frame::CheckMenuCloser_Impl() -{ - // checks if there is more than one "real" (not help) task window - // in this case a close button is inserted into the menubar - if ( !getController().is() ) - // dummy component - return; +//_______________________________________________________________ + +/** little helper to enable/disable the menu closer at the menubar of the given frame. - css::uno::Reference < ::com::sun::star::frame::XFramesSupplier > xDesktop( getCreator(), css::uno::UNO_QUERY ); - if ( !xDesktop.is() ) - // test only for task windows + @param xFrame + we use it's container window + + @param bState + <TRUE/> enable; <FALSE/> disable this state + */ + +void Frame::impl_setCloser( /*IN*/ const css::uno::Reference< css::frame::XFrame >& xFrame , + /*IN*/ sal_Bool bState ) +{ + if (!xFrame.is()) return; - sal_Bool bLastTask = sal_False; - css::uno::Reference < ::com::sun::star::container::XIndexAccess > - xList ( xDesktop->getFrames(), ::com::sun::star::uno::UNO_QUERY ); - sal_Int32 nCount = xList->getCount(); - if ( nCount<=1 ) - // only one task - bLastTask = sal_True; - else if ( nCount==2 ) + try { - // if we have to tasks, one can be the help task, that should be ignored - for( sal_Int32 i=0; i<nCount; ++i ) + css::uno::Reference< css::awt::XWindow > xWindow = xFrame->getContainerWindow(); + /* SOLAR SAFE { */ + ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() ); + Window* pWindow = VCLUnoHelper::GetWindow( xWindow ); + if ( pWindow && pWindow->IsSystemWindow() ) { - css::uno::Reference < ::com::sun::star::frame::XFrame > xTask; - ::com::sun::star::uno::Any aVal = xList->getByIndex(i); - if ( (aVal>>=xTask) && xTask.is() && xTask->getName().compareToAscii("OFFICE_HELP_TASK") == COMPARE_EQUAL ) - { - // one of the two open tasks was the help task -> ignored - bLastTask = sal_True; - break; - } + MenuBar* pMenu = ((SystemWindow*)pWindow)->GetMenuBar(); + if (pMenu) + pMenu->ShowCloser(bState); } + aSolarGuard.clear(); + /* } SOLAR SAFE */ + } + catch( css::uno::Exception& ) + { + return; + } +} + +//_______________________________________________________________ + +/** it checks, which of the top level task frames must have the special menu closer for + switching to the backing window mode. + + It analyze the current list of visible top level frames. Only the last real document + frame can have this symbol. Not the help frame nor the backing task itself. + Here we do anything related to this closer. We remove it from the old frame and set it + for the new one. + */ + +void Frame::impl_checkMenuCloser() +{ + /* SAFE { */ + ReadGuard aReadLock(m_aLock); + + // only top frames, which are part of our desktop hierarchy, can + // do so! By the way - we need the desktop instance to have acess + // to all other top level frames too. + css::uno::Reference< css::frame::XDesktop > xDesktop (m_xParent, css::uno::UNO_QUERY); + css::uno::Reference< css::frame::XFramesSupplier > xTaskSupplier(xDesktop , css::uno::UNO_QUERY); + sal_Bool bHidden = m_bIsHidden; + if ( !xDesktop.is() || !xTaskSupplier.is() ) + return; + + aReadLock.unlock(); + /* } SAFE */ + + // analyze the list of current open tasks + // Suppress search for other views to the same model ... + // It's not needed here and can be very expensive. + FrameListAnalyzer aAnalyzer( + xTaskSupplier, + this, + FrameListAnalyzer::E_HIDDEN | FrameListAnalyzer::E_HELP | FrameListAnalyzer::E_BACKINGCOMPONENT); + + // specify the new frame, which must have this special state ... + css::uno::Reference< css::frame::XFrame > xNewCloserFrame; + + // ----------------------------- + // a) + // If there exist ate least one other frame - there are two frames currently open. + // But we can enable this closer only, if one of these two tasks includes the help module. + // The "other frame" couldn't be the help. Because then it wouldn't be part of this "other list". + // In such case it will be seperated to the reference aAnalyzer.m_xHelp! + // But we must check, if weself includes the help ... + // Check aAnalyzer.m_bReferenceIsHelp! + if ( + (aAnalyzer.m_lOtherVisibleFrames.getLength()==1) && + ( + (aAnalyzer.m_bReferenceIsHelp ) || + (aAnalyzer.m_bReferenceIsHidden) + ) + ) + { + xNewCloserFrame = aAnalyzer.m_lOtherVisibleFrames[0]; + } + else + // ----------------------------- + // b) + // There is no other frame ... means no other document frame. The help module + // will be handled seperatly and must(!) be ignored here ... excepting weself includes the help. + if ( + (aAnalyzer.m_lOtherVisibleFrames.getLength()==0) && + (!aAnalyzer.m_bReferenceIsHelp ) && + (!aAnalyzer.m_bReferenceIsHidden ) + ) + { + xNewCloserFrame = this; } - ::vos::OGuard aSolarGuard( Application::GetSolarMutex() ); - Window* pWindow = VCLUnoHelper::GetWindow( getContainerWindow() ); - if ( pWindow && pWindow->IsSystemWindow() ) + // Look for neccessary actions ... + // Only if the closer state must be moved from one frame to another one + // or must be enabled/disabled at all. + /* STATIC SAFE { */ + WriteGuard aStaticWriteLock(LockHelper::getGlobalLock()); + css::uno::Reference< css::frame::XFrame > xCloserFrame (m_xCloserFrame.get(), css::uno::UNO_QUERY); + if (xCloserFrame!=xNewCloserFrame) { - MenuBar* pMenu = ((SystemWindow*)pWindow)->GetMenuBar(); - if ( pMenu ) - pMenu->ShowCloser(bLastTask); + if (xCloserFrame.is()) + impl_setCloser(xCloserFrame, sal_False); + if (xNewCloserFrame.is()) + impl_setCloser(xNewCloserFrame, sal_True); + m_xCloserFrame = xNewCloserFrame; } + aStaticWriteLock.unlock(); + /* } STATIC SAFE */ } //_________________________________________________________________________________________________________________ diff --git a/framework/source/services/makefile.mk b/framework/source/services/makefile.mk index f8b15a72b738..60415617870b 100644 --- a/framework/source/services/makefile.mk +++ b/framework/source/services/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.12 $ +# $Revision: 1.13 $ # -# last change: $Author: cd $ $Date: 2002-08-20 10:20:35 $ +# last change: $Author: hr $ $Date: 2003-03-25 18:21:52 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -92,9 +92,11 @@ SLOFILES= \ $(SLO)$/attributelist.obj \ $(SLO)$/saxnamespacefilter.obj \ $(SLO)$/contenthandlerfactory.obj \ - $(SLO)$/jobexecutor.obj \ $(SLO)$/substitutepathvars.obj \ - $(SLO)$/pathsettings.obj + $(SLO)$/pathsettings.obj \ + $(SLO)$/backingcomp.obj \ + $(SLO)$/dispatchhelper.obj + SRCFILES= logindialog.src \ documentlist.src diff --git a/framework/source/services/mediatypedetectionhelper.cxx b/framework/source/services/mediatypedetectionhelper.cxx index 31d8e3a62289..f7c6482814ba 100644 --- a/framework/source/services/mediatypedetectionhelper.cxx +++ b/framework/source/services/mediatypedetectionhelper.cxx @@ -2,9 +2,9 @@ * * $RCSfile: mediatypedetectionhelper.cxx,v $ * - * $Revision: 1.5 $ + * $Revision: 1.6 $ * - * last change: $Author: as $ $Date: 2001-07-04 13:32:38 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -167,32 +167,4 @@ sal_Bool SAL_CALL MediaTypeDetectionHelper::mapStrings( } } // namespace framework -/*------------------------------------------------------------------------- - $Log: not supported by cvs2svn $ - Revision 1.4 2001/03/29 13:17:15 as - no TF_FILTER, split defines.hxx, namespaces, new thread helper, some threadsafe code - - Revision 1.3 2001/01/26 06:42:14 as - change baeh_services/BAEHSERVICES to services/SERVICES - - Revision 1.2 2000/11/28 14:45:30 as - #79040# new version of new type detection - - Revision 1.1 2000/11/23 14:52:10 as - #79040# implement new filter detection - use TF_FILTER to enable - - Revision 1.1.1.1 2000/09/18 16:29:23 hr - initial import - - Revision 1.4 2000/09/15 15:08:57 willem.vandorp - OpenOffice header added. - - Revision 1.3 2000/09/01 13:05:41 as - new targeting, new macros, new dispatching ... - - Revision 1.2 2000/07/31 10:13:38 iha - typemapping - - --------------------------------------------------------------------------*/ diff --git a/framework/source/services/menudocumenthandler.cxx b/framework/source/services/menudocumenthandler.cxx index dd090fca441a..826603b7fe34 100644 --- a/framework/source/services/menudocumenthandler.cxx +++ b/framework/source/services/menudocumenthandler.cxx @@ -2,9 +2,9 @@ * * $RCSfile: menudocumenthandler.cxx,v $ * - * $Revision: 1.7 $ + * $Revision: 1.8 $ * - * last change: $Author: cd $ $Date: 2001-08-03 17:14:54 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -186,7 +186,7 @@ throw( SAXException, RuntimeException ) if ( m_xLocator.is() ) { - sprintf( buffer, "Line: %ld - ", m_xLocator->getLineNumber() ); + snprintf( buffer, sizeof(buffer), "Line: %ld - ", m_xLocator->getLineNumber() ); return OUString::createFromAscii( buffer ); } else diff --git a/framework/source/services/pathsettings.cxx b/framework/source/services/pathsettings.cxx index a144aafc91c4..0a7bece7a26a 100644 --- a/framework/source/services/pathsettings.cxx +++ b/framework/source/services/pathsettings.cxx @@ -2,9 +2,9 @@ * * $RCSfile: pathsettings.cxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: cd $ $Date: 2002-08-20 10:13:34 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -59,517 +59,678 @@ * ************************************************************************/ -//_________________________________________________________________________________________________________________ -// my own includes -//_________________________________________________________________________________________________________________ +// ______________________________________________ +// my own includes + +/** Attention: stl headers must(!) be included at first. Otherwhise it can make trouble + with solaris headers ... +*/ +#include <vector> #ifndef __FRAMEWORK_SERVICES_PATHSETTINGS_HXX_ #include <services/pathsettings.hxx> #endif -#ifndef __FRAMEWORK_THREADHELP_RESETABLEGUARD_HXX_ -#include <threadhelp/resetableguard.hxx> +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> #endif #ifndef __FRAMEWORK_SERVICES_H_ #include <services.h> #endif -//_________________________________________________________________________________________________________________ -// interface includes -//_________________________________________________________________________________________________________________ +// ______________________________________________ +// interface includes #ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_ #include <com/sun/star/beans/PropertyAttribute.hpp> #endif -//_________________________________________________________________________________________________________________ -// includes of other projects -//_________________________________________________________________________________________________________________ - -#ifndef _CPPUHELPER_QUERYINTERFACE_HXX_ -#include <cppuhelper/queryinterface.hxx> -#endif - -#ifndef _CPPUHELPER_TYPEPROVIDER_HXX_ -#include <cppuhelper/typeprovider.hxx> -#endif - -#ifndef _CPPUHELPER_FACTORY_HXX_ -#include <cppuhelper/factory.hxx> -#endif - -#ifndef _CPPUHELPER_PROPTYPEHLP_HXX -#include <cppuhelper/proptypehlp.hxx> -#endif - -#ifndef _UTL_CONFIGITEM_HXX_ -#include <unotools/configitem.hxx> -#endif - -#ifndef _TOOLS_DEBUG_HXX -#include <tools/debug.hxx> -#endif - -#ifndef _TOOLS_STRING_HXX -#include <tools/string.hxx> -#endif +// ______________________________________________ +// includes of other projects #ifndef _URLOBJ_HXX #include <tools/urlobj.hxx> #endif -#include <vector> +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif -//_________________________________________________________________________________________________________________ +// ______________________________________________ // non exported const -//_________________________________________________________________________________________________________________ - -// ascii strings of the properties -#define STRING_ASCII_ADDIN "Addin" -#define STRING_ASCII_AUTOCORRECT "AutoCorrect" -#define STRING_ASCII_AUTOTEXT "AutoText" -#define STRING_ASCII_BACKUP "Backup" -#define STRING_ASCII_BASIC "Basic" -#define STRING_ASCII_BITMAP "Bitmap" -#define STRING_ASCII_CONFIG "Config" -#define STRING_ASCII_DICTIONARY "Dictionary" -#define STRING_ASCII_FAVORITES "Favorite" -#define STRING_ASCII_FILTER "Filter" -#define STRING_ASCII_GALLERY "Gallery" -#define STRING_ASCII_GRAPHIC "Graphic" -#define STRING_ASCII_HELP "Help" -#define STRING_ASCII_LINGUISTIC "Linguistic" -#define STRING_ASCII_MODULE "Module" -#define STRING_ASCII_PALETTE "Palette" -#define STRING_ASCII_PLUGIN "Plugin" -#define STRING_ASCII_STORAGE "Storage" -#define STRING_ASCII_TEMP "Temp" -#define STRING_ASCII_TEMPLATE "Template" -#define STRING_ASCII_UICONFIG "UIConfig" -#define STRING_ASCII_USERCONFIG "UserConfig" -#define STRING_ASCII_USERDICTIONARY "UserDictionary" -#define STRING_ASCII_WORK "Work" - -// name of properties -#define PROPERTYNAME_ADDIN DECLARE_ASCII(STRING_ASCII_ADDIN) -#define PROPERTYNAME_AUTOCORRECT DECLARE_ASCII(STRING_ASCII_AUTOCORRECT) -#define PROPERTYNAME_AUTOTEXT DECLARE_ASCII(STRING_ASCII_AUTOTEXT) -#define PROPERTYNAME_BACKUP DECLARE_ASCII(STRING_ASCII_BACKUP) -#define PROPERTYNAME_BASIC DECLARE_ASCII(STRING_ASCII_BASIC) -#define PROPERTYNAME_BITMAP DECLARE_ASCII(STRING_ASCII_BITMAP) -#define PROPERTYNAME_CONFIG DECLARE_ASCII(STRING_ASCII_CONFIG) -#define PROPERTYNAME_DICTIONARY DECLARE_ASCII(STRING_ASCII_DICTIONARY) -#define PROPERTYNAME_FAVORITES DECLARE_ASCII(STRING_ASCII_FAVORITES) -#define PROPERTYNAME_FILTER DECLARE_ASCII(STRING_ASCII_FILTER) -#define PROPERTYNAME_GALLERY DECLARE_ASCII(STRING_ASCII_GALLERY) -#define PROPERTYNAME_GRAPHIC DECLARE_ASCII(STRING_ASCII_GRAPHIC) -#define PROPERTYNAME_HELP DECLARE_ASCII(STRING_ASCII_HELP) -#define PROPERTYNAME_LINGUISTIC DECLARE_ASCII(STRING_ASCII_LINGUISTIC) -#define PROPERTYNAME_MODULE DECLARE_ASCII(STRING_ASCII_MODULE) -#define PROPERTYNAME_PALETTE DECLARE_ASCII(STRING_ASCII_PALETTE) -#define PROPERTYNAME_PLUGIN DECLARE_ASCII(STRING_ASCII_PLUGIN) -#define PROPERTYNAME_STORAGE DECLARE_ASCII(STRING_ASCII_STORAGE) -#define PROPERTYNAME_TEMP DECLARE_ASCII(STRING_ASCII_TEMP) -#define PROPERTYNAME_TEMPLATE DECLARE_ASCII(STRING_ASCII_TEMPLATE) -#define PROPERTYNAME_UICONFIG DECLARE_ASCII(STRING_ASCII_UICONFIG) -#define PROPERTYNAME_USERCONFIG DECLARE_ASCII(STRING_ASCII_USERCONFIG) -#define PROPERTYNAME_USERDICTIONARY DECLARE_ASCII(STRING_ASCII_USERDICTIONARY) -#define PROPERTYNAME_WORK DECLARE_ASCII(STRING_ASCII_WORK) - - -// handle of properties -#define PROPERTYHANDLE_ADDIN PathSettingsData::PS_ADDINPATH -#define PROPERTYHANDLE_AUTOCORRECT PathSettingsData::PS_AUTOCORRECTPATH -#define PROPERTYHANDLE_AUTOTEXT PathSettingsData::PS_AUTOTEXTPATH -#define PROPERTYHANDLE_BACKUP PathSettingsData::PS_BACKUPPATH -#define PROPERTYHANDLE_BASIC PathSettingsData::PS_BASICPATH -#define PROPERTYHANDLE_BITMAP PathSettingsData::PS_BITMAPPATH -#define PROPERTYHANDLE_CONFIG PathSettingsData::PS_CONFIGPATH -#define PROPERTYHANDLE_DICTIONARY PathSettingsData::PS_DICTIONARYPATH -#define PROPERTYHANDLE_FAVORITES PathSettingsData::PS_FAVORITESPATH -#define PROPERTYHANDLE_FILTER PathSettingsData::PS_FILTERPATH -#define PROPERTYHANDLE_GALLERY PathSettingsData::PS_GALLERYPATH -#define PROPERTYHANDLE_GRAPHIC PathSettingsData::PS_GRAPHICPATH -#define PROPERTYHANDLE_HELP PathSettingsData::PS_HELPPATH -#define PROPERTYHANDLE_LINGUISTIC PathSettingsData::PS_LINGUISTICPATH -#define PROPERTYHANDLE_MODULE PathSettingsData::PS_MODULEPATH -#define PROPERTYHANDLE_PALETTE PathSettingsData::PS_PALETTEPATH -#define PROPERTYHANDLE_PLUGIN PathSettingsData::PS_PLUGINPATH -#define PROPERTYHANDLE_STORAGE PathSettingsData::PS_STORAGEPATH -#define PROPERTYHANDLE_TEMP PathSettingsData::PS_TEMPPATH -#define PROPERTYHANDLE_TEMPLATE PathSettingsData::PS_TEMPLATEPATH -#define PROPERTYHANDLE_UICONFIG PathSettingsData::PS_UICONFIGPATH -#define PROPERTYHANDLE_USERCONFIG PathSettingsData::PS_USERCONFIGPATH -#define PROPERTYHANDLE_USERDICTIONARY PathSettingsData::PS_USERDICTIONARYPATH -#define PROPERTYHANDLE_WORK PathSettingsData::PS_WORKPATH - -// count of ALL properties -#define PROPERTYCOUNT PathSettingsData::PS_COUNT - -using namespace com::sun::star::uno; -using namespace com::sun::star::beans; -using namespace com::sun::star::lang; -using namespace com::sun::star::util; - -//_________________________________________________________________________________________________________________ + +#define CFG_READONLY_DEFAULT sal_False + +// ______________________________________________ // namespace -//_________________________________________________________________________________________________________________ namespace framework { -static const char* aPropNames[] = +const ::rtl::OUString PathSettingsCfg::PropNames[] = { - STRING_ASCII_ADDIN, // PS_ADDIN - STRING_ASCII_AUTOCORRECT, // PS_AUTOCORRECT - STRING_ASCII_AUTOTEXT, // PS_AUTOTEXT - STRING_ASCII_BACKUP, // PS_BACKUP - STRING_ASCII_BASIC, // PS_BASIC - STRING_ASCII_BITMAP, // PS_BITMAP - STRING_ASCII_CONFIG, // PS_CONFIG - STRING_ASCII_DICTIONARY, // PS_DICTIONARY - STRING_ASCII_FAVORITES, // PS_FAVORITES - STRING_ASCII_FILTER, // PS_FILTER - STRING_ASCII_GALLERY, // PS_GALLERY - STRING_ASCII_GRAPHIC, // PS_GRAPHIC - STRING_ASCII_HELP, // PS_HELP - STRING_ASCII_LINGUISTIC, // PS_LINGUISTIC - STRING_ASCII_MODULE, // PS_MODULE - STRING_ASCII_PALETTE, // PS_PALETTE - STRING_ASCII_PLUGIN, // PS_PLUGIN - STRING_ASCII_STORAGE, // PS_STORAGE - STRING_ASCII_TEMP, // PS_TEMP - STRING_ASCII_TEMPLATE, // PS_TEMPLATE - STRING_ASCII_UICONFIG, // PS_USERCONFIG - STRING_ASCII_USERCONFIG, // PS_USERDICTIONARY - STRING_ASCII_USERDICTIONARY, // PS_UICONFIG - STRING_ASCII_WORK // PS_WORK + PATHSETTINGS_PROPNAME_ADDIN , + PATHSETTINGS_PROPNAME_AUTOCORRECT , + PATHSETTINGS_PROPNAME_AUTOTEXT , + PATHSETTINGS_PROPNAME_BACKUP , + PATHSETTINGS_PROPNAME_BASIC , + PATHSETTINGS_PROPNAME_BITMAP , + PATHSETTINGS_PROPNAME_CONFIG , + PATHSETTINGS_PROPNAME_DICTIONARY , + PATHSETTINGS_PROPNAME_FAVORITE , + PATHSETTINGS_PROPNAME_FILTER , + PATHSETTINGS_PROPNAME_GALLERY , + PATHSETTINGS_PROPNAME_GRAPHIC , + PATHSETTINGS_PROPNAME_HELP , + PATHSETTINGS_PROPNAME_LINGUISTIC , + PATHSETTINGS_PROPNAME_MODULE , + PATHSETTINGS_PROPNAME_PALETTE , + PATHSETTINGS_PROPNAME_PLUGIN , + PATHSETTINGS_PROPNAME_STORAGE , + PATHSETTINGS_PROPNAME_TEMP , + PATHSETTINGS_PROPNAME_TEMPLATE , + PATHSETTINGS_PROPNAME_UICONFIG , + PATHSETTINGS_PROPNAME_USERCONFIG , + PATHSETTINGS_PROPNAME_USERDICTIONARY, + PATHSETTINGS_PROPNAME_WORK }; -Sequence< rtl::OUString > GetPathPropertyNames() +const css::beans::Property PathSettingsCfg::Properties[] = { - const int nCount = sizeof( aPropNames ) / sizeof( const char* ); - Sequence< rtl::OUString > aNames( nCount ); - rtl::OUString* pNames = aNames.getArray(); - for ( int i = 0; i < nCount; i++ ) - pNames[i] = rtl::OUString::createFromAscii( aPropNames[i] ); + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_ADDIN], + PathSettingsCfg::E_ADDIN, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_AUTOCORRECT], + PathSettingsCfg::E_AUTOCORRECT, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_AUTOTEXT], + PathSettingsCfg::E_AUTOTEXT, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_BACKUP], + PathSettingsCfg::E_BACKUP, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_BASIC], + PathSettingsCfg::E_BASIC, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_BITMAP], + PathSettingsCfg::E_BITMAP, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_CONFIG], + PathSettingsCfg::E_CONFIG, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_DICTIONARY], + PathSettingsCfg::E_DICTIONARY, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_FAVORITE], + PathSettingsCfg::E_FAVORITE, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_FILTER], + PathSettingsCfg::E_FILTER, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_GALLERY], + PathSettingsCfg::E_GALLERY, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_GRAPHIC], + PathSettingsCfg::E_GRAPHIC, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_HELP], + PathSettingsCfg::E_HELP, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_LINGUISTIC], + PathSettingsCfg::E_LINGUISTIC, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_MODULE], + PathSettingsCfg::E_MODULE, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_PALETTE], + PathSettingsCfg::E_PALETTE, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_PLUGIN], + PathSettingsCfg::E_PLUGIN, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_STORAGE], + PathSettingsCfg::E_STORAGE, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_TEMP], + PathSettingsCfg::E_TEMP, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_TEMPLATE], + PathSettingsCfg::E_TEMPLATE, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_UICONFIG], + PathSettingsCfg::E_UICONFIG, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_USERCONFIG], + PathSettingsCfg::E_USERCONFIG, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_USERDICTIONARY], + PathSettingsCfg::E_USERDICTIONARY, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND), + + css::beans::Property( + PathSettingsCfg::PropNames[PathSettingsCfg::E_WORK], + PathSettingsCfg::E_WORK, + ::getCppuType((rtl::OUString*)NULL), + css::beans::PropertyAttribute::BOUND) +}; - return aNames; -} +// ______________________________________________ -//_________________________________________________________________________________________________________________ -// Implementation helper class -//_________________________________________________________________________________________________________________ -// +/** it fill this new cache instance and prepare all neccessary structures. + Note: It's very important for our work, that another helper service PathSubstitution could be created here. + It's needed later .. and without its work the pathes which are provided here will not valid. + That's why we throw a RuntimeException in case this service couldn't be created! + */ -void PathSettingsData::SetValue( PathSettingsId nId, rtl::OUString& aValue ) +PathSettingsCfg::PathSettingsCfg( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ) + : ::utl::ConfigItem( DECLARE_ASCII("Office.Common/Path/Current") ) { - switch ( nId ) + // create the needed substitution service. + // We must replace all used variables inside readed path values. + // In case we can't do so ... the whole office can't work realy. + // That's why it seams to be OK to throw a RuntimeException then. + if (xSMGR.is()) { - case PathSettingsData::PS_ADDINPATH: m_aAddinPath = aValue; break; - case PathSettingsData::PS_AUTOCORRECTPATH: m_aAutoCorrectPath = aValue; break; - case PathSettingsData::PS_AUTOTEXTPATH: m_aAutoTextPath = aValue; break; - case PathSettingsData::PS_BACKUPPATH: m_aBackupPath = aValue; break; - case PathSettingsData::PS_BASICPATH: m_aBasicPath = aValue; break; - case PathSettingsData::PS_BITMAPPATH: m_aBitmapPath = aValue; break; - case PathSettingsData::PS_CONFIGPATH: m_aConfigPath = aValue; break; - case PathSettingsData::PS_DICTIONARYPATH: m_aDictionaryPath = aValue; break; - case PathSettingsData::PS_FAVORITESPATH: m_aFavoritesPath = aValue; break; - case PathSettingsData::PS_FILTERPATH: m_aFilterPath = aValue; break; - case PathSettingsData::PS_GALLERYPATH: m_aGalleryPath = aValue; break; - case PathSettingsData::PS_GRAPHICPATH: m_aGraphicPath = aValue; break; - case PathSettingsData::PS_HELPPATH: m_aHelpPath = aValue; break; - case PathSettingsData::PS_LINGUISTICPATH: m_aLinguisticPath = aValue; break; - case PathSettingsData::PS_MODULEPATH: m_aModulePath = aValue; break; - case PathSettingsData::PS_PALETTEPATH: m_aPalettePath = aValue; break; - case PathSettingsData::PS_PLUGINPATH: m_aPluginPath = aValue; break; - case PathSettingsData::PS_STORAGEPATH: m_aStoragePath = aValue; break; - case PathSettingsData::PS_TEMPPATH: m_aTempPath = aValue; break; - case PathSettingsData::PS_TEMPLATEPATH: m_aTemplatePath = aValue; break; - case PathSettingsData::PS_USERCONFIGPATH: m_aUserConfigPath = aValue; break; - case PathSettingsData::PS_USERDICTIONARYPATH: m_aUserDictionaryPath = aValue; break; - case PathSettingsData::PS_WORKPATH: m_aWorkPath = aValue; break; - case PathSettingsData::PS_UICONFIGPATH: m_aUIConfigPath = aValue; break; - - default: - DBG_ERRORFILE( "invalid index to load a path" ); + m_xSubstitution = css::uno::Reference< css::util::XStringSubstitution >( + xSMGR->createInstance(SERVICENAME_SUBSTITUTEPATHVARIABLES), + css::uno::UNO_QUERY); } + if (!m_xSubstitution.is()) + throw css::uno::RuntimeException(DECLARE_ASCII("Could not create substitution service. Path settings will not work."),css::uno::Reference< css::uno::XInterface >()); + + // create mapping for path names to her ID's + // This hash content is fix and already defined by some fix arrays of the class PathSettingsCfg. + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_ADDIN ]] = PathSettingsCfg::E_ADDIN ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_AUTOCORRECT ]] = PathSettingsCfg::E_AUTOCORRECT ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_AUTOTEXT ]] = PathSettingsCfg::E_AUTOTEXT ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_BACKUP ]] = PathSettingsCfg::E_BACKUP ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_BASIC ]] = PathSettingsCfg::E_BASIC ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_BITMAP ]] = PathSettingsCfg::E_BITMAP ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_CONFIG ]] = PathSettingsCfg::E_CONFIG ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_DICTIONARY ]] = PathSettingsCfg::E_DICTIONARY ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_FAVORITE ]] = PathSettingsCfg::E_FAVORITE ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_FILTER ]] = PathSettingsCfg::E_FILTER ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_GALLERY ]] = PathSettingsCfg::E_GALLERY ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_GRAPHIC ]] = PathSettingsCfg::E_GRAPHIC ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_HELP ]] = PathSettingsCfg::E_HELP ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_LINGUISTIC ]] = PathSettingsCfg::E_LINGUISTIC ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_MODULE ]] = PathSettingsCfg::E_MODULE ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_PALETTE ]] = PathSettingsCfg::E_PALETTE ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_PLUGIN ]] = PathSettingsCfg::E_PLUGIN ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_STORAGE ]] = PathSettingsCfg::E_STORAGE ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_TEMP ]] = PathSettingsCfg::E_TEMP ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_TEMPLATE ]] = PathSettingsCfg::E_TEMPLATE ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_UICONFIG ]] = PathSettingsCfg::E_UICONFIG ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_USERCONFIG ]] = PathSettingsCfg::E_USERCONFIG ; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_USERDICTIONARY]] = PathSettingsCfg::E_USERDICTIONARY; + m_lIDMap[PathSettingsCfg::PropNames[PathSettingsCfg::E_WORK ]] = PathSettingsCfg::E_WORK ; + + // use fix list of all needed path names to read her values from the configuration. + // Call impl_read() method mit optimization parameter "bSearchID=sal_False"! + // So hash map isn't used to map from given property name to the corresponding ID. + // It's not neccessary here. Because we have a fix list of names, which correspond + // directly to an ID by it's position inside the array ... + const css::uno::Sequence< ::rtl::OUString > lNames(PathSettingsCfg::PropNames,PATHSETTINGS_PROPCOUNT); + impl_read(lNames,sal_False); } -const rtl::OUString& PathSettingsData::GetValue( PathSettingsId nId ) const +// ______________________________________________ + +/** nothing to do here ... + Because we are a write-through cache ... all items should be already saved. + But may it's better to check it for debug purposes. + */ + +PathSettingsCfg::~PathSettingsCfg() { - switch ( nId ) - { - case PathSettingsData::PS_ADDINPATH: return m_aAddinPath; - case PathSettingsData::PS_AUTOCORRECTPATH: return m_aAutoCorrectPath; - case PathSettingsData::PS_AUTOTEXTPATH: return m_aAutoTextPath; - case PathSettingsData::PS_BACKUPPATH: return m_aBackupPath; - case PathSettingsData::PS_BASICPATH: return m_aBasicPath; - case PathSettingsData::PS_BITMAPPATH: return m_aBitmapPath; - case PathSettingsData::PS_CONFIGPATH: return m_aConfigPath; - case PathSettingsData::PS_DICTIONARYPATH: return m_aDictionaryPath; - case PathSettingsData::PS_FAVORITESPATH: return m_aFavoritesPath; - case PathSettingsData::PS_FILTERPATH: return m_aFilterPath; - case PathSettingsData::PS_GALLERYPATH: return m_aGalleryPath; - case PathSettingsData::PS_GRAPHICPATH: return m_aGraphicPath; - case PathSettingsData::PS_HELPPATH: return m_aHelpPath; - case PathSettingsData::PS_LINGUISTICPATH: return m_aLinguisticPath; - case PathSettingsData::PS_MODULEPATH: return m_aModulePath; - case PathSettingsData::PS_PALETTEPATH: return m_aPalettePath; - case PathSettingsData::PS_PLUGINPATH: return m_aPluginPath; - case PathSettingsData::PS_STORAGEPATH: return m_aStoragePath; - case PathSettingsData::PS_TEMPPATH: return m_aTempPath; - case PathSettingsData::PS_TEMPLATEPATH: return m_aTemplatePath; - case PathSettingsData::PS_USERCONFIGPATH: return m_aUserConfigPath; - case PathSettingsData::PS_USERDICTIONARYPATH: return m_aUserDictionaryPath; - case PathSettingsData::PS_WORKPATH: return m_aWorkPath; - case PathSettingsData::PS_UICONFIGPATH: return m_aUIConfigPath; - - default: - DBG_ERRORFILE( "invalid index to load a path" ); - return m_aEmptyStr; - } + LOG_ASSERT(!IsModified(), "PathSettingsCfg::~PathSettingsCfg()\nModified state of a write-through cache shouldn't be possible at the end of lifetime.\n") } +// ______________________________________________ -PathSettings_Impl::PathSettings_Impl( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& xSMgr, const Link& aNotifyLink ) : - utl::ConfigItem( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Office.Common/Path/Current" ))), - m_aListenerNotify( aNotifyLink ), - m_xFactory( xSMgr ) -{ - m_xPathVariableSubstitution = Reference< XStringSubstitution >( m_xFactory->createInstance( - rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.PathSubstitution" ))), UNO_QUERY ); +/** There are some outside changed items, which should be updated inside this cache too. + */ - // Create a hash map to have a quick way to find the handle of a property name! - for ( sal_Int32 n = 0; n < PROPERTYCOUNT; n++ ) - m_aPropNameToHandleMap.insert( PropToHandleHashMap::value_type( - rtl::OUString::createFromAscii( aPropNames[n] ), (PathSettingsData::PathSettingsId)n ) ); +void PathSettingsCfg::Notify( const com::sun::star::uno::Sequence< rtl::OUString >& lPropertyNames ) +{ + // Attention: These list of pathes isn't well known nor fix. We can't use our optimization here, + // that the prop ID/Handle is the same as the current array position. + // That's why we must use our special hash for mapping path names to her corresponding ID. + // => second parameter bSearchID=sal_True must be used here + impl_read(lPropertyNames,sal_True); } -PathSettings_Impl::~PathSettings_Impl() +// ______________________________________________ + +/** return the current path value for this entry. + */ + +::rtl::OUString PathSettingsCfg::getPath( EPropHandle nID ) const { + // SAFE { + ReadGuard aReadLock(m_aLock); + return m_lPathes[nID].sValue; } -int PathSettings_Impl::GetHandleFromPropertyName( const rtl::OUString& aPropertyName ) -{ +// ______________________________________________ - PropToHandleHashMap::const_iterator pIter = m_aPropNameToHandleMap.find( aPropertyName ); - if ( pIter != m_aPropNameToHandleMap.end() ) - return pIter->second; - else - return -1; -} +/** set he new path value for this entry. + But it's done only, if it will change realy. + And because this class is implemented as a write through cache, + this new value is written immediatly to the configuration. + */ -sal_Bool PathSettings_Impl::ReadConfigurationData( PathSettingsData& rSettingsData, const Sequence< rtl::OUString >& aNames ) +void PathSettingsCfg::setPath( EPropHandle nID , + const ::rtl::OUString& sValue ) { - Sequence< Any > aValues = GetProperties( aNames ); - const rtl::OUString* pNames = aNames.getConstArray(); - const Any* pValues = aValues.getConstArray(); - - DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" ); - if ( aValues.getLength() == aNames.getLength() ) + // SAFE { + WriteGuard aWriteLock(m_aLock); + + // has somthing changed? + if (m_lPathes[nID].sValue.equals(sValue)) + return; + + // is it readonly? + // It's an implementation error if this method is called for readonly properties! + // Our helper class OPropertySetHelper throws normaly a PropertyVetoExceptio, if somehwere + // tries to call setPropertyValue() for readonly properties. + if (m_lPathes[nID].bReadOnly) { - rtl::OUString aTempStr, aFullPath; + LOG_WARNING("PathSettingsCfg::setPath()", "Unexpected set call for readonly path detected!") + return; + } - for ( int n = 0; n < aNames.getLength(); n++ ) + // take over the new value into our cache structures + m_lPathes[nID].sValue = sValue; + + aWriteLock.unlock(); + // } SAFE + + // update the configuration immediatly + sal_Bool bMultiPath = isMultiPath(nID); + + css::uno::Sequence< ::rtl::OUString > lNames (1); + css::uno::Sequence< css::uno::Any > lValues (1); + ::rtl::OUString* pNames = lNames.getArray(); + css::uno::Any* pValues = lValues.getArray(); + ::rtl::OUString sReSubst; + + // SAFE { + ReadGuard aReadLock(m_aLock); + if (bMultiPath) + { + css::uno::Sequence< ::rtl::OUString > lMulti; + sal_Int32 nToken = 0; + do { - if ( pValues[n].hasValue() ) + ::rtl::OUString sToken = m_lPathes[nID].sValue.getToken(0, ';', nToken); + if (sToken.getLength()) { - switch ( pValues[n].getValueTypeClass() ) - { - case ::com::sun::star::uno::TypeClass_STRING : - { - // single pathes - if ( pValues[n] >>= aTempStr ) - aFullPath = m_xPathVariableSubstitution->substituteVariables( aTempStr, sal_False ); - else - { - DBG_ERRORFILE( "any operator >>= failed" ); - } - break; - } - - case ::com::sun::star::uno::TypeClass_SEQUENCE : - { - // multi pathes - aFullPath = rtl::OUString(); - Sequence < rtl::OUString > aList; - if ( pValues[n] >>= aList ) - { - sal_Int32 nCount = aList.getLength(); - for ( sal_Int32 nPosition = 0; nPosition < nCount; ++nPosition ) - { - aTempStr = m_xPathVariableSubstitution->substituteVariables( aList[ nPosition ], sal_False ); - aFullPath += aTempStr; - if ( nPosition < nCount-1 ) - aFullPath += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(";") ); - } - } - else - { - DBG_ERROR( "Unknown property name used!!" ); - } - break; - } - - default: - { - DBG_ERROR( "Unknown property name used!!" ); - } - } - - // Get property handle for the property name and set value - int nProp = GetHandleFromPropertyName( pNames[n] ); - if ( nProp >= 0 ) - rSettingsData.SetValue( (PathSettingsData::PathSettingsId)nProp, aFullPath ); - else - DBG_ERROR( "Unknown property name used!!" ); + sReSubst = m_xSubstitution->reSubstituteVariables(sToken); + lMulti.realloc(lMulti.getLength()+1); + lMulti[lMulti.getLength()-1] = sReSubst; } } + while(nToken>=0); + pNames[0] = m_lPathes[nID].sPath; + pValues[0] <<= lMulti; + } + else + { + pNames[0] = m_lPathes[nID].sPath; + sReSubst = m_xSubstitution->reSubstituteVariables(m_lPathes[nID].sValue); + pValues[0] <<= sReSubst; } + aReadLock.unlock(); + // } SAFE - return sal_True; + PutProperties(lNames, lValues); } -sal_Bool PathSettings_Impl::WriteConfigurationData( const PathSettingsData& rSettingsData, const Sequence< rtl::OUString >& aNames ) +// ______________________________________________ + +/** return the readonly state of a path entry. + */ + +sal_Bool PathSettingsCfg::isReadOnly( EPropHandle nID ) const { - rtl::OUString aTempStr; - const rtl::OUString* pNames = aNames.getConstArray(); - Sequence< Any > aValues( aNames.getLength() ); - Any* pValues = aValues.getArray(); - const Type& rType = ::getBooleanCppuType(); + // SAFE { + ReadGuard aReadLock(m_aLock); + return m_lPathes[nID].bReadOnly; +} + +// ______________________________________________ + +/** return information about the path type of a path entry. + We know single and multi paths. + */ - for ( int n = 0; n < aNames.getLength(); n++ ) +sal_Bool PathSettingsCfg::isMultiPath( EPropHandle nID ) const +{ + // multi paths are fix be definition! + sal_Bool bKnownMulti = (nID == PathSettingsCfg::E_AUTOCORRECT|| + nID == PathSettingsCfg::E_AUTOTEXT || + nID == PathSettingsCfg::E_BASIC || + nID == PathSettingsCfg::E_GALLERY || + nID == PathSettingsCfg::E_PLUGIN || + nID == PathSettingsCfg::E_TEMPLATE || + nID == PathSettingsCfg::E_UICONFIG ); + #ifdef ENABLE_ASSERTIONS + // But we detected it during reading from the configuration too. + // We should use this information to check if something was changed for this definition. + // May our method returns the wrong state then! + // SAFE { + ReadGuard aReadLock(m_aLock); + LOG_ASSERT(bKnownMulti==m_lPathes[nID].bMultiPath, "PathSettingsCfg::isMultiPath()\nThere seams to be a difference between known and detected multi pathes!\n") + aReadLock.unlock(); + // } SAFE + #endif + return bKnownMulti; +} + +// ______________________________________________ + +/** return a descriptor for all supported properties. + Normaly this descriptor is fix. So you can use the static const value "Properties". + But the readonly state of a property must be detected during runtime. + So we must path this structure on demand. + */ + +const css::uno::Sequence< css::beans::Property > PathSettingsCfg::getPropertyDescriptor() const +{ + sal_Int32 nCount = PATHSETTINGS_PROPCOUNT; + css::uno::Sequence< css::beans::Property > lDesc (Properties,nCount); + css::beans::Property* pDesc = lDesc.getArray(); + + // SAFE { + ReadGuard aReadLock(m_aLock); + for (sal_Int32 p=0; p<nCount; ++p) { - sal_Bool bList = sal_False; + if (m_lPathes[p].bReadOnly) + pDesc[p].Attributes |= css::beans::PropertyAttribute::READONLY; + else + pDesc[p].Attributes &= ~css::beans::PropertyAttribute::READONLY; + } + aReadLock.unlock(); + // } SAFE + return lDesc; +} - // Get property handle for the property name - int nProp = GetHandleFromPropertyName( pNames[n] ); - if ( nProp >= 0 ) +// ______________________________________________ + +/** return the corresponding property handle for the given property name. + We use an internal fix hash map to do so. + Attention: If you call this method e.g. with an unknown property name + the returned ID will be undefined! Please check the returned boolean + state of this method everytimes. Otherwhise we try to let it crash then :-) + */ + +sal_Bool PathSettingsCfg::mapName2Handle( const ::rtl::OUString& sName , + EPropHandle& rID ) const +{ + // SAFE { + ReadGuard aReadLock(m_aLock); + NameToHandleHash::const_iterator pIt = m_lIDMap.find(sName); + sal_Bool bSuccess = (pIt!=m_lIDMap.end()); + aReadLock.unlock(); + // } SAFE + + if (bSuccess) + rID = (EPropHandle)(pIt->second); + else + // let it crash :-) Better to find wrong using of this method! + rID = (EPropHandle)-1; + return bSuccess; +} + +// ______________________________________________ + +/** read the path values from the configuration. + The special parameter bSearchID enable/disable optional mapping of + property names to her property handle. As optimization it can be disabled + if the caller is hure, that the array index inside the parameter lNames + can be used as such handle without any check. That can be true for + sorted, fix and full filled lists of properties only! See struct PropNames/EPropHandle too! + */ + +void PathSettingsCfg::impl_read( const css::uno::Sequence< ::rtl::OUString >& lNames , + sal_Bool bSearchID ) +{ + sal_Int32 nCount = lNames.getLength(); + const css::uno::Sequence< css::uno::Any > lValues = ConfigItem::GetProperties(lNames); + const css::uno::Sequence< sal_Bool > lROStates = ConfigItem::GetReadOnlyStates(lNames); + const ::rtl::OUString* pNames = lNames.getConstArray(); + const css::uno::Any* pValues = lValues.getConstArray(); + const sal_Bool* pROStates = lROStates.getConstArray(); + + // All getted list (names, values, readonly states) must work together. + // They must have the same size. Otherwhise combination of it can produce wrong results! + if ( lValues.getLength()!=lNames.getLength() || lROStates.getLength()!=lNames.getLength() ) + { + LOG_WARNING("PathSettingsCfg::impl_read()", "GetProperties() or GetReadOnlyStates does not return valid count of items.") + return; + } + + for (sal_Int32 n=0; n<nCount; ++n) + { + // Dont define these variables outside of this loop scope! + // Otherwhise you have to be shure that they will be reseted for every new loop ... + ::rtl::OUString sTempVal; + ::rtl::OUString sPathVal; + sal_Bool bMulti = sal_False; + + if (!pValues[n].hasValue()) + { + LOG_WARNING("PathSettingsCfg::impl_read()", "Missing a path value. Item will be ignored.") + continue; + } + + // get the path value + switch (pValues[n].getValueTypeClass()) { - switch ( nProp ) + // single pathes + case ::com::sun::star::uno::TypeClass_STRING : { - // multi pathes - case PathSettingsData::PS_AUTOCORRECTPATH: - case PathSettingsData::PS_AUTOTEXTPATH: - case PathSettingsData::PS_BASICPATH: - case PathSettingsData::PS_GALLERYPATH: - case PathSettingsData::PS_PLUGINPATH: - case PathSettingsData::PS_TEMPLATEPATH: - case PathSettingsData::PS_UICONFIGPATH: - bList = sal_True; - } + if (!(pValues[n]>>=sTempVal)) + { + LOG_WARNING("PathSettingsCfg::impl_read()", "Could not unpack path value.") + continue; + } - aTempStr = rSettingsData.GetValue( (PathSettingsData::PathSettingsId)nProp ); + sPathVal = m_xSubstitution->substituteVariables(sTempVal,sal_False); + bMulti = sal_False; + break; + } - if ( bList ) + // multi pathes + case ::com::sun::star::uno::TypeClass_SEQUENCE : { - String aFullPath( aTempStr ); - USHORT nCount = aFullPath.GetTokenCount(), nIdx = 0; - if ( nCount > 0 ) + css::uno::Sequence< ::rtl::OUString > lMulti; + if (!(pValues[n]>>=lMulti)) + { + LOG_WARNING("PathSettingsCfg::impl_read()", "Could not unpack multi path value.") + continue; + } + + ::rtl::OUStringBuffer sBuffer (256); + const ::rtl::OUString* pMulti = lMulti.getConstArray(); + sal_Int32 nMultiCount = lMulti.getLength(); + for (sal_Int32 m=0; m<nMultiCount; ++m) { - sal_Int32 nPos = 0; - Sequence < rtl::OUString > aList( nCount ); - while ( STRING_NOTFOUND != nIdx ) - aList[nPos++] = m_xPathVariableSubstitution->reSubstituteVariables( aFullPath.GetToken( 0, ';', nIdx ) ); - pValues[n] <<= aList; + sTempVal = m_xSubstitution->substituteVariables(pMulti[m],sal_False); + sBuffer.append(sTempVal); + if (m<nMultiCount-1) + sBuffer.appendAscii(";"); } + sPathVal = sBuffer.makeStringAndClear(); + bMulti = sal_True; + break; } - else + + // unknown! + default: { - pValues[n] <<= m_xPathVariableSubstitution->reSubstituteVariables( aTempStr ); + LOG_WARNING("PathSettingsCfg::impl_read()", "Unknown path type detected!") + continue; } } - else + + // insert new value inside internal structures + EPropHandle nID = (EPropHandle)n; + if (bSearchID) { - DBG_ERROR( "Unknown property name used!!" ); - return sal_False; + if (!mapName2Handle(pNames[n],nID)) + { + LOG_WARNING("PathSettingsCfg::impl_read()", "Mapping from name to ID failed!") + continue; + } } - } - PutProperties( aNames, aValues ); - return sal_True; + m_lPathes[nID].sPath = pNames[n]; + m_lPathes[nID].sValue = sPathVal; + m_lPathes[nID].bReadOnly = pROStates[n]; + m_lPathes[nID].bMultiPath = bMulti; + } } -sal_Bool PathSettings_Impl::CheckPath( PathSettingsData::PathSettingsId nId, const rtl::OUString& aNewPathValue ) -{ - // Check the new path value - sal_Bool bList = sal_False; - sal_Bool bValueOk = sal_False; +// ______________________________________________ - switch ( nId ) - { - // multi pathes - case PathSettingsData::PS_AUTOCORRECTPATH: - case PathSettingsData::PS_AUTOTEXTPATH: - case PathSettingsData::PS_BASICPATH: - case PathSettingsData::PS_GALLERYPATH: - case PathSettingsData::PS_PLUGINPATH: - case PathSettingsData::PS_TEMPLATEPATH: - case PathSettingsData::PS_UICONFIGPATH: - bList = sal_True; - } +/** check if the given path value seams to be a valid URL or system path. + */ + +sal_Bool PathSettingsCfg::isValidValue( const ::rtl::OUString& sValue , + sal_Bool bMultiPath ) const +{ + sal_Bool bOk = sal_True; - if ( bList ) + if (bMultiPath) { - String aFullPath( aNewPathValue ); - USHORT nCount = aFullPath.GetTokenCount(), nIdx = 0; - if ( nCount > 0 ) + sal_Int32 nToken = 0; + do { - bValueOk = sal_True; - while ( STRING_NOTFOUND != nIdx && bValueOk ) - bValueOk = !( INetURLObject( aFullPath.GetToken( 0, ';', nIdx ) ).HasError() ); + ::rtl::OUString sToken = sValue.getToken(0, ';', nToken); + if (sToken.getLength()) + bOk = !INetURLObject(sToken).HasError(); } + while(nToken>=0 && bOk); } else - bValueOk = !( INetURLObject( aNewPathValue ).HasError() ); + { + bOk = !INetURLObject(sValue).HasError(); + } - return bValueOk; + return bOk; } -// Checks if we have a valid URL otherwise it tries to substitute the value to support variables setting for a path setting! -sal_Bool PathSettings_Impl::CheckAndReplaceNewPathValue( PathSettingsData::PathSettingsId nId, rtl::OUString& aNewPathValue ) +// ______________________________________________ + +/** it checks the given path value and tries to correct it. + Correction can be done by substitution of variables. + May the user tried to set a value which includes such variables. + */ + +sal_Bool PathSettingsCfg::checkAndSubstituteValue( ::rtl::OUString& sValue , + sal_Bool bMultiPath ) const { - sal_Bool bValueOk = CheckPath( nId, aNewPathValue ); + sal_Bool bOk = isValidValue(sValue,bMultiPath); - if ( !bValueOk ) + if (!bOk) { - rtl::OUString aResult; - - // Support the usage of path variables set through setPropertyValue try { - aResult = m_xPathVariableSubstitution->substituteVariables( aNewPathValue, sal_True ); + // SAFE { + ReadGuard aReadLock(m_aLock); + ::rtl::OUString sSubst = m_xSubstitution->substituteVariables(sValue,sal_True); + aReadLock.unlock(); + // } SAFE + bOk = PathSettingsCfg::isValidValue(sSubst,bMultiPath); + if (bOk) + sValue = sSubst; } - catch( com::sun::star::container::NoSuchElementException& ) + catch(const css::container::NoSuchElementException&) { - // Substitution doesn't work => don't try further and give up - bValueOk = sal_False; - } - - if ( bValueOk ) - { - bValueOk = CheckPath( nId, aResult ); - if ( bValueOk ) - aNewPathValue = aResult; + bOk = sal_False; } } - return bValueOk; -} - -void PathSettings_Impl::Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ) -{ - if ( m_aListenerNotify.IsSet() ) - m_aListenerNotify.Call( this ); + return bOk; } - -//_________________________________________________________________________________________________________________ -// Implementation service class -//_________________________________________________________________________________________________________________ -// +// ______________________________________________ +// XInterface, XTypeProvider, XServiceInfo DEFINE_XINTERFACE_5 ( PathSettings , OWeakObject , @@ -625,24 +786,20 @@ DEFINE_INIT_SERVICE ( PathSettings, @onerror We throw an ASSERT in debug version or do nothing in relaese version. *//*-*************************************************************************************************************/ -PathSettings::PathSettings( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory ) +PathSettings::PathSettings( const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ) // Init baseclasses first // Attention: Don't change order of initialization! // ThreadHelpBase is a struct with a lock as member. We can't use a lock as direct member! // We must garant right initialization and a valid value of this to initialize other baseclasses! - : ThreadHelpBase ( ) + : PathSettingsCfg ( xSMGR ) , ::cppu::OBroadcastHelperVar< ::cppu::OMultiTypeInterfaceContainerHelper, ::cppu::OMultiTypeInterfaceContainerHelper::keyType > ( m_aLock.getShareableOslMutex() ) - , ::cppu::OPropertySetHelper ( *(static_cast< ::cppu::OBroadcastHelper* >(this)) ) - , ::cppu::OWeakObject ( ) + , ::cppu::OPropertySetHelper ( *(static_cast< ::cppu::OBroadcastHelper* >(this)) ) + , ::cppu::OWeakObject ( ) // Init member - , m_xFactory ( xFactory ) - , m_aImpl ( xFactory, LINK( this, PathSettings, implts_ConfigurationNotify ) ) + , m_xSMGR ( xSMGR ) { - // Read initialy the configuration data - m_aImpl.ReadConfigurationData( m_aPathSettingsData, GetPathPropertyNames() ); } - /*-************************************************************************************************************//** @short standard destructor @descr This one do NOTHING! Use dispose() instaed of this. @@ -688,66 +845,12 @@ sal_Bool SAL_CALL PathSettings::convertFastPropertyValue( css::uno::Any& sal_Int32 nHandle , const css::uno::Any& aValue ) throw( css::lang::IllegalArgumentException ) { - // Attention: Method "impl_tryToChangeProperty()" can throw the IllegalArgumentException for us !!! - - // Initialize state with FALSE !!! - // (Handle can be invalid) - sal_Bool bReturn = sal_False; - - switch( nHandle ) - { - case PROPERTYHANDLE_ADDIN : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aAddinPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_AUTOCORRECT : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aAutoCorrectPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_AUTOTEXT : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aAutoTextPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_BACKUP : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aBackupPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_BASIC : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aBasicPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_BITMAP : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aBitmapPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_CONFIG : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aConfigPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_DICTIONARY : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aDictionaryPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_FAVORITES : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aFavoritesPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_FILTER : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aFilterPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_GALLERY : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aGalleryPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_GRAPHIC : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aGraphicPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_HELP : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aHelpPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_LINGUISTIC : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aLinguisticPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_MODULE : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aModulePath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_PALETTE : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aPalettePath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_PLUGIN : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aPluginPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_STORAGE : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aStoragePath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_TEMP : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aTempPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_TEMPLATE : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aTemplatePath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_UICONFIG : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aUIConfigPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_USERCONFIG : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aUserConfigPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_USERDICTIONARY: bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aUserDictionaryPath, aValue, aOldValue, aConvertedValue ); - break; - case PROPERTYHANDLE_WORK : bReturn = impl_tryToChangeProperty( m_aPathSettingsData.m_aWorkPath, aValue, aOldValue, aConvertedValue ); - break; - } - - // Return state of operation. - return bReturn ; + EPropHandle nID = (EPropHandle)nHandle; + return PropHelper::willPropertyBeChanged( + css::uno::makeAny(getPath(nID)), + aValue, + aOldValue, + aConvertedValue); } /*-************************************************************************************************************//** @@ -768,100 +871,31 @@ sal_Bool SAL_CALL PathSettings::convertFastPropertyValue( css::uno::Any& *//*-*************************************************************************************************************/ void SAL_CALL PathSettings::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle , const css::uno::Any& aValue ) -throw( css::uno::Exception ) + throw( css::uno::Exception ) { - sal_Bool bValueValid = sal_False; - rtl::OUString aPropertyName; - rtl::OUString aNewValue; - - // Check value before setting it - aValue >>= aNewValue; - if ( !m_aImpl.CheckAndReplaceNewPathValue( (PathSettingsData::PathSettingsId)nHandle, aNewValue )) - { - rtl::OUString aInvalidURL( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "This is not a valid file URL: " ))); - aInvalidURL += aNewValue; - throw css::lang::IllegalArgumentException( aInvalidURL, (cppu::OWeakObject *)this, 0 ); - } - - switch( nHandle ) + EPropHandle nID = (EPropHandle)nHandle; + sal_Bool bReadOnly = isReadOnly(nID); + sal_Bool bMultiPath = isMultiPath(nID); + ::rtl::OUString sValue ; + + // Is this value a valid one? + if ( + (!(aValue >>= sValue )) || + !(checkAndSubstituteValue(sValue,bMultiPath)) + ) { - case PROPERTYHANDLE_ADDIN : m_aPathSettingsData.m_aAddinPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_ADDIN] ); - break; - case PROPERTYHANDLE_AUTOCORRECT : m_aPathSettingsData.m_aAutoCorrectPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_AUTOCORRECT] ); - break; - case PROPERTYHANDLE_AUTOTEXT : m_aPathSettingsData.m_aAutoTextPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_AUTOTEXT] ); - break; - case PROPERTYHANDLE_BACKUP : m_aPathSettingsData.m_aBackupPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_BACKUP] ); - break; - case PROPERTYHANDLE_BASIC : m_aPathSettingsData.m_aBasicPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_BASIC] ); - break; - case PROPERTYHANDLE_BITMAP : m_aPathSettingsData.m_aBitmapPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_BITMAP] ); - break; - case PROPERTYHANDLE_CONFIG : m_aPathSettingsData.m_aConfigPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_CONFIG] ); - break; - case PROPERTYHANDLE_DICTIONARY : m_aPathSettingsData.m_aDictionaryPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_DICTIONARY] ); - break; - case PROPERTYHANDLE_FAVORITES : m_aPathSettingsData.m_aFavoritesPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_FAVORITES] ); - break; - case PROPERTYHANDLE_FILTER : m_aPathSettingsData.m_aFilterPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_FILTER] ); - break; - case PROPERTYHANDLE_GALLERY : m_aPathSettingsData.m_aGalleryPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_GALLERY] ); - break; - case PROPERTYHANDLE_GRAPHIC : m_aPathSettingsData.m_aGraphicPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_GRAPHIC] ); - break; - case PROPERTYHANDLE_HELP : m_aPathSettingsData.m_aHelpPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_HELP] ); - break; - case PROPERTYHANDLE_LINGUISTIC : m_aPathSettingsData.m_aLinguisticPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_LINGUISTIC] ); - break; - case PROPERTYHANDLE_MODULE : m_aPathSettingsData.m_aModulePath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_MODULE] ); - break; - case PROPERTYHANDLE_PALETTE : m_aPathSettingsData.m_aPalettePath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_PALETTE] ); - break; - case PROPERTYHANDLE_PLUGIN : m_aPathSettingsData.m_aPluginPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_PLUGIN] ); - break; - case PROPERTYHANDLE_STORAGE : m_aPathSettingsData.m_aStoragePath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_STORAGE] ); - break; - case PROPERTYHANDLE_TEMP : m_aPathSettingsData.m_aTempPath = aNewValue; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_TEMP] ); - break; - case PROPERTYHANDLE_TEMPLATE : aValue >>= m_aPathSettingsData.m_aTemplatePath; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_TEMPLATE] ); - break; - case PROPERTYHANDLE_UICONFIG : aValue >>= m_aPathSettingsData.m_aUIConfigPath; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_UICONFIG] ); - break; - case PROPERTYHANDLE_USERCONFIG : aValue >>= m_aPathSettingsData.m_aUserConfigPath; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_USERCONFIG] ); - break; - case PROPERTYHANDLE_USERDICTIONARY: aValue >>= m_aPathSettingsData.m_aUserDictionaryPath; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_USERDICTIONARY] ); - break; - case PROPERTYHANDLE_WORK : aValue >>= m_aPathSettingsData.m_aWorkPath; - aPropertyName = rtl::OUString::createFromAscii( aPropNames[PROPERTYHANDLE_WORK] ); - break; + ::rtl::OUStringBuffer sBuffer(256); + sBuffer.appendAscii("\"" ); + sBuffer.append (sValue ); + sBuffer.appendAscii("\" is not a valid URL!"); + throw css::lang::IllegalArgumentException( + sBuffer.makeStringAndClear(), + static_cast< cppu::OWeakObject *>(this), + 0); } - Sequence< rtl::OUString > aProperties( 1 ); - aProperties[0] = aPropertyName; - m_aImpl.WriteConfigurationData( m_aPathSettingsData, aProperties ); + // update cache and config + setPath(nID, sValue); } /*-************************************************************************************************************//** @@ -883,109 +917,8 @@ throw( css::uno::Exception ) void SAL_CALL PathSettings::getFastPropertyValue( css::uno::Any& aValue , sal_Int32 nHandle ) const { - switch( nHandle ) - { - case PROPERTYHANDLE_ADDIN : aValue <<= m_aPathSettingsData.m_aAddinPath; - break; - case PROPERTYHANDLE_AUTOCORRECT : aValue <<= m_aPathSettingsData.m_aAutoCorrectPath; - break; - case PROPERTYHANDLE_AUTOTEXT : aValue <<= m_aPathSettingsData.m_aAutoTextPath; - break; - case PROPERTYHANDLE_BACKUP : aValue <<= m_aPathSettingsData.m_aBackupPath; - break; - case PROPERTYHANDLE_BASIC : aValue <<= m_aPathSettingsData.m_aBasicPath; - break; - case PROPERTYHANDLE_BITMAP : aValue <<= m_aPathSettingsData.m_aBitmapPath; - break; - case PROPERTYHANDLE_CONFIG : aValue <<= m_aPathSettingsData.m_aConfigPath; - break; - case PROPERTYHANDLE_DICTIONARY : aValue <<= m_aPathSettingsData.m_aDictionaryPath; - break; - case PROPERTYHANDLE_FAVORITES : aValue <<= m_aPathSettingsData.m_aFavoritesPath; - break; - case PROPERTYHANDLE_FILTER : aValue <<= m_aPathSettingsData.m_aFilterPath; - break; - case PROPERTYHANDLE_GALLERY : aValue <<= m_aPathSettingsData.m_aGalleryPath; - break; - case PROPERTYHANDLE_GRAPHIC : aValue <<= m_aPathSettingsData.m_aGraphicPath; - break; - case PROPERTYHANDLE_HELP : aValue <<= m_aPathSettingsData.m_aHelpPath; - break; - case PROPERTYHANDLE_LINGUISTIC : aValue <<= m_aPathSettingsData.m_aLinguisticPath; - break; - case PROPERTYHANDLE_MODULE : aValue <<= m_aPathSettingsData.m_aModulePath; - break; - case PROPERTYHANDLE_PALETTE : aValue <<= m_aPathSettingsData.m_aPalettePath; - break; - case PROPERTYHANDLE_PLUGIN : aValue <<= m_aPathSettingsData.m_aPluginPath; - break; - case PROPERTYHANDLE_STORAGE : aValue <<= m_aPathSettingsData.m_aStoragePath; - break; - case PROPERTYHANDLE_TEMP : aValue <<= m_aPathSettingsData.m_aTempPath; - break; - case PROPERTYHANDLE_TEMPLATE : aValue <<= m_aPathSettingsData.m_aTemplatePath; - break; - case PROPERTYHANDLE_UICONFIG : aValue <<= m_aPathSettingsData.m_aUIConfigPath; - break; - case PROPERTYHANDLE_USERCONFIG : aValue <<= m_aPathSettingsData.m_aUserConfigPath; - break; - case PROPERTYHANDLE_USERDICTIONARY: aValue <<= m_aPathSettingsData.m_aUserDictionaryPath; - break; - case PROPERTYHANDLE_WORK : aValue <<= m_aPathSettingsData.m_aWorkPath; - break; - } -} - -/*-************************************************************************************************************//** - @short test, if a property will change his value - @descr These methods will test, if a property will change his current value, with given parameter. - We use a helperclass for properties. These class promote this behaviour. - We implement a helper function for every property-type! - - @seealso method convertFastPropertyValue() - - @param "...Property" , the property with his current value - @param "aNewValue" , new value for property - @param "aOldValue" , old value of property as Any for convertFastPropertyValue - @param "aConvertedValue" , new value of property as Any for convertFastPropertyValue(it can be the old one, if nothing is changed!) - @return sal_True ,if value will be changed - @return sal_FALSE ,otherwise. - - @onerror IllegalArgumentException, if convert failed. - @threadsafe yes -*//*-*************************************************************************************************************/ -sal_Bool PathSettings::impl_tryToChangeProperty( rtl::OUString sCurrentValue , - const css::uno::Any& aNewValue , - css::uno::Any& aOldValue , - css::uno::Any& aConvertedValue ) -throw( css::lang::IllegalArgumentException ) -{ - // Set default return value if method failed. - sal_Bool bReturn = sal_False; - // Get new value from any. - // IllegalArgumentException() can be thrown! - rtl::OUString sValue ; - cppu::convertPropertyValue( sValue, aNewValue ); - - // If value change ... - if( sValue != sCurrentValue ) - { - // ... set information of change. - aOldValue <<= sCurrentValue ; - aConvertedValue <<= sValue ; - // Return OK - "value will be change ..." - bReturn = sal_True; - } - else - { - // ... clear information of return parameter! - aOldValue.clear () ; - aConvertedValue.clear () ; - // Return NOTHING - "value will not be change ..." - bReturn = sal_False; - } - - return bReturn; + PathSettingsCfg::EPropHandle nID = (PathSettingsCfg::EPropHandle)nHandle; + aValue <<= getPath(nID); } /*-************************************************************************************************************//** @@ -1020,9 +953,11 @@ throw( css::lang::IllegalArgumentException ) if( pInfoHelper == NULL ) { // Define static member to give structure of properties to baseclass "OPropertySetHelper". - // "impl_getStaticPropertyDescriptor" is a non exported and static funtion, who will define a static propertytable. - // "sal_True" say: Table is sorted by name. - static ::cppu::OPropertyArrayHelper aInfoHelper( impl_getStaticPropertyDescriptor(), sal_True ); + // "getPropertyDescriptor" is a non exported function of our base class PathSettingsCfg + // which creates the right descriptor on demand and patch against some fix informations + // e.g. the readonly attribute! + // Last parameter set to "sal_True" indicates => table is sorted by name. + static ::cppu::OPropertyArrayHelper aInfoHelper(getPropertyDescriptor(), sal_True); pInfoHelper = &aInfoHelper; } } @@ -1073,94 +1008,4 @@ css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL PathSettings::getPr return (*pInfo); } -/*-************************************************************************************************************//** - @short create table with information about properties - @descr We use a helper class to support properties. These class need some information about this. - These method create a new static description table with name, type, r/w-flags and so on ... - - @seealso class OPropertySetHelper - @seealso method getInfoHelper() - - @param - - @return Static table with information about properties. - - @onerror - - @threadsafe yes -*//*-*************************************************************************************************************/ -const css::uno::Sequence< css::beans::Property > PathSettings::impl_getStaticPropertyDescriptor() -{ - // Create a new static property array to initialize sequence! - // Table of all predefined properties of this class. Its used from OPropertySetHelper-class! - // Don't forget to change the defines (see begin of this file), if you add, change or delete a property in this list!!! - // It's necessary for methods of OPropertySetHelper. - // ATTENTION: - // YOU MUST SORT FOLLOW TABLE BY NAME ALPHABETICAL !!! - static const css::beans::Property pProperties[] = - { - css::beans::Property( PROPERTYNAME_ADDIN , PROPERTYHANDLE_ADDIN , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_AUTOCORRECT , PROPERTYHANDLE_AUTOCORRECT , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_AUTOTEXT , PROPERTYHANDLE_AUTOTEXT , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_BACKUP , PROPERTYHANDLE_BACKUP , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_BASIC , PROPERTYHANDLE_BASIC , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_BITMAP , PROPERTYHANDLE_BITMAP , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_CONFIG , PROPERTYHANDLE_CONFIG , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_DICTIONARY , PROPERTYHANDLE_DICTIONARY , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_FAVORITES , PROPERTYHANDLE_FAVORITES , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_FILTER , PROPERTYHANDLE_FILTER , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_GALLERY , PROPERTYHANDLE_GALLERY , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_GRAPHIC , PROPERTYHANDLE_GRAPHIC , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_HELP , PROPERTYHANDLE_HELP , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_LINGUISTIC , PROPERTYHANDLE_LINGUISTIC , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_MODULE , PROPERTYHANDLE_MODULE , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_PALETTE , PROPERTYHANDLE_PALETTE , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_PLUGIN , PROPERTYHANDLE_PLUGIN , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_STORAGE , PROPERTYHANDLE_STORAGE , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_TEMP , PROPERTYHANDLE_TEMP , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_TEMPLATE , PROPERTYHANDLE_TEMPLATE , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_UICONFIG , PROPERTYHANDLE_UICONFIG , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_USERCONFIG , PROPERTYHANDLE_USERCONFIG , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_USERDICTIONARY , PROPERTYHANDLE_USERDICTIONARY , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ), - css::beans::Property( PROPERTYNAME_WORK , PROPERTYHANDLE_WORK , ::getCppuType((rtl::OUString*)NULL), css::beans::PropertyAttribute::BOUND ) - }; - - // Use it to initialize sequence! - static const css::uno::Sequence< css::beans::Property > lPropertyDescriptor( pProperties, PROPERTYCOUNT ); - // Return static "PropertyDescriptor" - return lPropertyDescriptor; -} - -IMPL_LINK( PathSettings, implts_ConfigurationNotify, PathSettingsNotify*, pPathSettingsNotify ) -{ - if ( pPathSettingsNotify != NULL ) - { - Sequence< ::rtl::OUString >& rSettingsChanged = pPathSettingsNotify->aPathSettingsChanged; - std::vector< int > aHandleVector( rSettingsChanged.getLength() ); - PathSettingsData aNewPathSettings; - - { - // Thread-safe reading from configuration - ResetableGuard aGuard( m_aLock ); - m_aImpl.ReadConfigurationData( aNewPathSettings, rSettingsChanged ); - - const rtl::OUString* pNames = rSettingsChanged.getConstArray(); - for ( sal_Int32 i = 0; i < rSettingsChanged.getLength(); i++ ) - { - int nHandle = m_aImpl.GetHandleFromPropertyName( pNames[i] ); - if ( nHandle >= 0 ) - aHandleVector.push_back( nHandle ); - } - } - - // Set the values through our API implementation to have automically listener notifications - for ( sal_uInt32 i = 0; i < aHandleVector.size(); i++ ) - { - Any aAny; - aAny <<= aNewPathSettings.GetValue( (PathSettingsData::PathSettingsId)aHandleVector[i] ); - setPropertyValue( rtl::OUString::createFromAscii( aPropNames[ aHandleVector[i] ]), aAny ); - } - } - - return 0; -} - } // namespace framework diff --git a/framework/source/services/substitutepathvars.cxx b/framework/source/services/substitutepathvars.cxx index 841117f5594f..f2825b2cff46 100644 --- a/framework/source/services/substitutepathvars.cxx +++ b/framework/source/services/substitutepathvars.cxx @@ -2,9 +2,9 @@ * * $RCSfile: substitutepathvars.cxx,v $ * - * $Revision: 1.1 $ + * $Revision: 1.2 $ * - * last change: $Author: cd $ $Date: 2002-08-20 10:13:34 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:21:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -614,7 +614,7 @@ void SubstitutePathVariables_Impl::ReadSharePointRuleSetFromConfiguration( const rtl::OUString& aSharePointNodeName, SubstituteRuleVector& rRuleSet ) { - Sequence< rtl::OUString > aSharePointMappingsNodeNames = GetNodeNames( aSharePointNodeName ); + Sequence< rtl::OUString > aSharePointMappingsNodeNames = GetNodeNames( aSharePointNodeName, utl::CONFIG_NAME_LOCAL_PATH ); sal_Int32 nSharePointMapping = 0; while ( nSharePointMapping < aSharePointMappingsNodeNames.getLength() ) @@ -624,8 +624,6 @@ void SubstitutePathVariables_Impl::ReadSharePointRuleSetFromConfiguration( aSharePointMapping += aSharePointMappingsNodeNames[ nSharePointMapping ]; // Read SharePointMapping - Sequence< rtl::OUString > aSharePointMappingNodeNames = GetNodeNames( aSharePointMapping ); - rtl::OUString aDirValue; rtl::OUString aDirProperty( aSharePointMapping ); aDirProperty += m_aDirPropertyName; @@ -1051,10 +1049,11 @@ throw ( NoSuchElementException, RuntimeException ) sal_Int32 nReplaceLength = 0; rtl::OUString aReplacement; rtl::OUString aSubString = aWorkText.copy( nPosition, nLength ); + rtl::OUString aSubVarString; // Path variables are not case sensitive! - aSubString = aSubString.toAsciiLowerCase(); - VarNameToIndexMap::const_iterator pIter = m_aPreDefVarMap.find( aSubString ); + aSubVarString = aSubString.toAsciiLowerCase(); + VarNameToIndexMap::const_iterator pIter = m_aPreDefVarMap.find( aSubVarString ); if ( pIter != m_aPreDefVarMap.end() ) { // Fixed/Predefined variable found diff --git a/framework/source/unotypes/fwk.xml b/framework/source/unotypes/fwk.xml index 2facf1dd1317..29f513a1c0ae 100644 --- a/framework/source/unotypes/fwk.xml +++ b/framework/source/unotypes/fwk.xml @@ -82,7 +82,7 @@ <loader-name> com.sun.star.loader.SharedLibrary </loader-name> <language> c++ </language> <status value="final"/> - <supported-service> com.sun.star.document.Handler </supported-service> + <supported-service> com.sun.star.frame.ContentHandler </supported-service> </component-description> <component-description> diff --git a/framework/source/unotypes/fwl.xml b/framework/source/unotypes/fwl.xml index ea96ecd4c661..4d652ef7b0ec 100644 --- a/framework/source/unotypes/fwl.xml +++ b/framework/source/unotypes/fwl.xml @@ -51,7 +51,7 @@ <loader-name> com.sun.star.loader.SharedLibrary </loader-name> <language> c++ </language> <status value="final"/> - <supported-service> com.sun.star.document.ContentHandlerFactory </supported-service> + <supported-service> com.sun.star.frame.ContentHandlerFactory </supported-service> </component-description> <component-description> diff --git a/framework/test/makefile.mk b/framework/test/makefile.mk index 7671f82f8fe9..4a0f6503cb87 100644 --- a/framework/test/makefile.mk +++ b/framework/test/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.9 $ +# $Revision: 1.10 $ # -# last change: $Author: as $ $Date: 2002-08-13 12:20:58 $ +# last change: $Author: hr $ $Date: 2003-03-25 18:21:59 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -61,8 +61,9 @@ #************************************************************************* PRJ=.. -PRJNAME= framework -TARGET= test +PRJNAME= framework +TARGET= test +LIBTARGET= NO ENABLE_EXCEPTIONS= TRUE USE_DEFFILE= TRUE NO_BSYMBOLIC= TRUE @@ -77,33 +78,64 @@ NO_BSYMBOLIC= TRUE LINKFLAGS+=/SEGMENTS:1024 /PACKD:32768 .ENDIF -CDEFS += -DENABLE_COMPONENT_SELF_CHECK +# --- applikation: "test" -------------------------------------------------- -# --- debug lib: "fwkdbg.dll" -------------------------------------------------- +#APP1TARGET= test -SHL1TARGET= fwkdbg +#APP1OBJS= $(SLO)$/test.obj -SHL1IMPLIB= ifwkdbg +#APP1LIBS= $(SLB)$/fwk_classes.lib \ +# $(SLB)$/fwk_helper.lib -SHL1OBJS= $(SLO)$/debugservice.obj \ - $(SLO)$/register.obj \ - $(SLO)$/argumentanalyzer.obj +#APP1STDLIBS= $(CPPULIB) \ +# $(CPPUHELPERLIB) \ +# $(OSLLIB) \ +# $(SALLIB) \ +# $(VOSLIB) \ +# $(TOOLSLIB) \ +# $(SVTOOLLIB) \ +# $(TKLIB) \ +# $(COMPHELPERLIB) \ +# $(SVLIB) -SHL1STDLIBS= $(CPPULIB) \ - $(CPPUHELPERLIB) \ - $(COMPHELPERLIB) \ - $(UNOTOOLSLIB) \ - $(TOOLSLIB) \ - $(VOSLIB) \ - $(SVLLIB) \ - $(SALLIB) \ - $(FWILIB) +#APP1DEPN= $(SLB)$/fwk_helper.lib \ +# $(SLB)$/fwk_classes.lib -SHL1DEF= $(MISC)$/$(SHL1TARGET).def +#.IF "$(GUI)"=="WIN" || "$(GUI)"=="OS2" +#APP1DEF= $(MISC)$/test.def +#.ENDIF -DEF1NAME= $(SHL1TARGET) +# --- application: "threadtest" -------------------------------------------------- -DEF1EXPORTFILE= exports.dxp +APP2TARGET= threadtest + +APP2OBJS= $(SLO)$/threadtest.obj \ + $(SLO)$/transactionmanager.obj \ + $(SLO)$/transactionguard.obj \ + $(SLO)$/fairrwlock.obj \ + $(SLO)$/resetableguard.obj \ + $(SLO)$/gate.obj \ + $(SLO)$/readguard.obj \ + $(SLO)$/writeguard.obj + +APP2STDLIBS= $(CPPULIB) \ + $(CPPUHELPERLIB) \ + $(OSLLIB) \ + $(SALLIB) \ + $(VOSLIB) \ + $(SVLIB) + +APP2DEPN= $(SLO)$/fairrwlock.obj \ + $(SLO)$/transactionmanager.obj \ + $(SLO)$/transactionguard.obj \ + $(SLO)$/resetableguard.obj \ + $(SLO)$/gate.obj \ + $(SLO)$/readguard.obj \ + $(SLO)$/writeguard.obj + +.IF "$(GUI)"=="WIN" || "$(GUI)"=="OS2" +APP2DEF= $(MISC)$/threadtest.def +.ENDIF # --- Targets ------------------------------------------------------ diff --git a/framework/test/test.cxx b/framework/test/test.cxx new file mode 100644 index 000000000000..ab0105f42abe --- /dev/null +++ b/framework/test/test.cxx @@ -0,0 +1,1482 @@ +/************************************************************************* + * + * $RCSfile: test.cxx,v $ + * + * $Revision: 1.11 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:22:01 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//_________________________________________________________________________________________________________________ +// my own includes +//_________________________________________________________________________________________________________________ + +#ifndef __FRAMEWORK_CLASSES_SERVICEMANAGER_HXX_ +#include <classes/servicemanager.hxx> +#endif + +#ifndef __FRAMEWORK_CLASSES_FILTERCACHE_HXX_ +#include <classes/filtercache.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_GENERIC_HXX_ +#include <macros/generic.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +#ifndef __FRAMEWORK_SERVICES_H_ +#include <services.h> +#endif + +//_________________________________________________________________________________________________________________ +// interface includes +//_________________________________________________________________________________________________________________ + +#ifndef _COM_SUN_STAR_FRAME_XDESKTOP_HPP_ +#include <com/sun/star/frame/XDesktop.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XFRAME_HPP_ +#include <com/sun/star/frame/XFrame.hpp> +#endif + +#ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_ +#include <com/sun/star/awt/XWindow.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XFRAMELOADER_HPP_ +#include <com/sun/star/frame/XFrameLoader.hpp> +#endif + +#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ +#include <com/sun/star/beans/PropertyValue.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XLOADEVENTLISTENER_HPP_ +#include <com/sun/star/frame/XLoadEventListener.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDER_HPP_ +#include <com/sun/star/frame/XDispatchProvider.hpp> +#endif + +#ifndef _COM_SUN_STAR_UTIL_URL_HPP_ +#include <com/sun/star/util/URL.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_FRAMESEARCHFLAG_HPP_ +#include <com/sun/star/frame/FrameSearchFlag.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XFRAMES_HPP_ +#include <com/sun/star/frame/XFrames.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XCOMPONENTLOADER_HPP_ +#include <com/sun/star/frame/XComponentLoader.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XTASKSSUPPLIER_HPP_ +#include <com/sun/star/frame/XTasksSupplier.hpp> +#endif + +#ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATORFACTORY_HPP_ +#include <com/sun/star/task/XStatusIndicatorFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_BEANS_XMULTIPROPERTYSET_HPP_ +#include <com/sun/star/beans/XMultiPropertySet.hpp> +#endif + +#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XSingleServiceFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_MOZILLA_XPLUGININSTANCEPEER_HPP_ +#include <com/sun/star/mozilla/XPluginInstancePeer.hpp> +#endif + +#ifndef _COM_SUN_STAR_BRIDGE_XINSTANCEPROVIDER_HPP_ +#include <com/sun/star/bridge/XInstanceProvider.hpp> +#endif + +#ifndef _COM_SUN_STAR_DOCUMENT_XTYPEDETECTION_HPP_ +#include <com/sun/star/document/XTypeDetection.hpp> +#endif + +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include <com/sun/star/container/XNameAccess.hpp> +#endif + +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include <com/sun/star/container/XNameContainer.hpp> +#endif + +#ifndef _COM_SUN_STAR_CONTAINER_XELEMENTACCESS_HPP_ +#include <com/sun/star/container/XElementAccess.hpp> +#endif + +#ifndef _COM_SUN_STAR_FRAME_XCONFIGMANAGER_HPP_ +#include <com/sun/star/frame/XConfigManager.hpp> +#endif + +//_________________________________________________________________________________________________________________ +// other includes +//_________________________________________________________________________________________________________________ + +#ifndef _COMPHELPER_PROCESSFACTORY_HXX_ +#include <comphelper/processfactory.hxx> +#endif + +#ifndef _COM_SUN_STAR_UNO_REFERENCE_H_ +#include <com/sun/star/uno/Reference.h> +#endif + +#ifndef _RTL_USTRING_ +#include <rtl/ustring.hxx> +#endif + +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif + +#ifndef _TOOLKIT_HELPER_VCLUNOHELPER_HXX_ +#include <toolkit/helper/vclunohelper.hxx> +#endif + +#ifndef _SVT_UNOIFACE_HXX +#include <svtools/unoiface.hxx> +#endif + +#ifndef _URLOBJ_HXX +#include <tools/urlobj.hxx> +#endif + +#include <vcl/event.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wrkwin.hxx> +#include <vcl/msgbox.hxx> +#include <stdio.h> + +//_________________________________________________________________________________________________________________ +// const +//_________________________________________________________________________________________________________________ + +#define APPLICATIONNAME "FrameWork - Testapplication" + +//_________________________________________________________________________________________________________________ +// namespace +//_________________________________________________________________________________________________________________ + +using namespace ::rtl ; +using namespace ::comphelper ; +using namespace ::framework ; +using namespace ::cppu ; +using namespace ::com::sun::star::uno ; +using namespace ::com::sun::star::lang ; +using namespace ::com::sun::star::frame ; +using namespace ::com::sun::star::awt ; +using namespace ::com::sun::star::beans ; +using namespace ::com::sun::star::util ; +using namespace ::com::sun::star::task ; +using namespace ::com::sun::star::mozilla ; +using namespace ::com::sun::star::bridge ; +using namespace ::com::sun::star::document ; +using namespace ::com::sun::star::container ; + +//_________________________________________________________________________________________________________________ +// defines +//_________________________________________________________________________________________________________________ + +//_________________________________________________________________________________________________________________ +// declarations +//_________________________________________________________________________________________________________________ + +/*-***************************************************************************************************************/ +class TestApplication : public Application +{ + //************************************************************************************************************* + public: + + void Main(); + + //************************************************************************************************************* + private: + + #ifdef TEST_DESKTOP + void impl_testDesktop ( const Reference< XDesktop >& xDesktop ); + void impl_buildTree ( const Reference< XDesktop >& xDesktop ); + void impl_logTree ( const Reference< XDesktop >& xDesktop ); + + #endif + + #ifdef TEST_PLUGIN + void impl_testPlugIn ( const Reference< XDesktop >& xDesktop, const Reference< XMultiServiceFactory >& xFactory ); + #endif + + #ifdef TEST_LOGINDIALOG + void impl_testLoginDialog(); + #endif + + #ifdef TEST_FILTERCACHE + void impl_testFilterCache(); + #endif + + #ifdef TEST_TYPEDETECTION + void impl_testTypeDetection(); + #endif + + #ifdef TEST_FILTERREGISTRATION + void impl_testFilterRegistration(); + #endif + + #ifdef TEST_TREESEARCH + sal_Bool impl_testTreeSearch(); + #endif + + //************************************************************************************************************* + private: + + //************************************************************************************************************* + private: + + Reference< XMultiServiceFactory > m_xFactory; + +}; // class TestApplication + +//_________________________________________________________________________________________________________________ +// global variables +//_________________________________________________________________________________________________________________ + +TestApplication aTestApplication ; + +//_________________________________________________________________________________________________________________ +// main +//_________________________________________________________________________________________________________________ + +void TestApplication::Main() +{ +// RegistryCache aCache; + + /**-*********************************************************************************************************** + initialize program + **************************************************************************************************************/ + + // Init global servicemanager and set it. + ServiceManager aManager; + m_xFactory = aManager.getGlobalUNOServiceManager(); + setProcessServiceFactory( m_xFactory ); + + // Control sucess of operation. + LOG_ASSERT( !(m_xFactory.is() ==sal_False ), "TestApplication::Main()\nCan't create global service manager.\n\n" ) + LOG_ASSERT( !(getProcessServiceFactory()!=m_xFactory), "TestApplication::Main()\nGlobal servicemanager not set in UNOTOOLS.\n\n" ) + + /**-*********************************************************************************************************** + test area + **************************************************************************************************************/ + + sal_Bool bState = sal_True; + + //------------------------------------------------------------------------------------------------------------- + #ifdef TEST_FILTERCACHE + impl_testFilterCache(); + #endif + + //------------------------------------------------------------------------------------------------------------- + #ifdef TEST_TYPEDETECTION + impl_testTypeDetection(); + #endif + + //------------------------------------------------------------------------------------------------------------- + #ifdef TEST_LOGINDIALOG + ResMgr* pRessourceManager = CREATEVERSIONRESMGR( lgd ); + Resource::SetResManager( pRessourceManager ); + impl_testLoginDialog(); + #endif + + //------------------------------------------------------------------------------------------------------------- + #ifdef TEST_DESKTOP + Reference< XDesktop > xDesktop( xGlobalServiceManager->createInstance( SERVICENAME_DESKTOP ), UNO_QUERY ); + impl_testDesktop( xDesktop ); + #endif + + //------------------------------------------------------------------------------------------------------------- + #ifdef TEST_PLUGIN + impl_testPlugIn( xDesktop, xGlobalServiceManager ); + #endif + + //------------------------------------------------------------------------------------------------------------- + #ifdef TEST_FILTERREGISTRATION + impl_testFilterRegistration(); + #endif + + //------------------------------------------------------------------------------------------------------------- + #ifdef TEST_TREESEARCH + bState = impl_testTreeSearch(); + #endif + +// Execute(); +// xFrame->dispose(); +// delete pMainWindow; + if( bState = sal_True ) + { + LOG_ERROR( "TestApplication::Main()", "Test successful ..." ) + } + else + { + LOG_ERROR( "TestApplication::Main()", "Test failed ..." ) + } +} + +//_________________________________________________________________________________________________________________ +// test method +//_________________________________________________________________________________________________________________ +#ifdef TEST_TYPEDETECTION +void TestApplication::impl_testTypeDetection() +{ + // We use a string buffer to log important informations and search results. + // Errors are shown directly by an assert! + OUStringBuffer sBuffer( 100000 ); + + // Create a new type detection service. + Reference< XTypeDetection > xTypeDetection( getProcessServiceFactory()->createInstance( SERVICENAME_TYPEDETECTION ), UNO_QUERY ); + LOG_ASSERT( !(xTypeDetection.is()==sal_False), "TestApplication::impl_testTypeDetection()\nCouldn't create the type detection service.\n" ); + + if( xTypeDetection.is() == sal_True ) + { + // a) Check his implementation and his supported interfaces first. + Reference< XInterface > xInterface ( xTypeDetection, UNO_QUERY ); + Reference< XTypeProvider > xTypeProvider ( xTypeDetection, UNO_QUERY ); + Reference< XServiceInfo > xServiceInfo ( xTypeDetection, UNO_QUERY ); + Reference< XNameAccess > xNameAccess ( xTypeDetection, UNO_QUERY ); + Reference< XElementAccess > xElementAccess ( xTypeDetection, UNO_QUERY ); + + LOG_ASSERT( !( xInterface.is() == sal_False || + xTypeProvider.is() == sal_False || + xServiceInfo.is() == sal_False || + xNameAccess.is() == sal_False || + xElementAccess.is() == sal_False ), "TestApplication::impl_testTypeDetection()\nMiss supported for searched interface!\n" ) + + // b) Check OneInstance mode of service. + Reference< XTypeDetection > xTypeDetection2( getProcessServiceFactory()->createInstance( SERVICENAME_TYPEDETECTION ), UNO_QUERY ); + LOG_ASSERT( !(xTypeDetection!=xTypeDetection2), "TestApplication::impl_testTypeDetection()\nService isn't \"OneInstance\" ...!\n" ) + xTypeDetection2 = Reference< XTypeDetection >(); + + // c) Check "XTypeDetection" ... flat by URL + // Define list of URLs for checking. + OUString pURLs[] = + { + DECLARE_ASCII("file://c|/temp/test.sdw" ), + DECLARE_ASCII("private:factory/scalc" ), + DECLARE_ASCII("file://c|/temp/test.txt" ), + DECLARE_ASCII("slot:5000" ), + }; + sal_uInt32 nCount = 4; + Sequence< OUString > seqURLs( pURLs, nCount ); + + Reference< XMultiServiceFactory > xFilterFactory( getProcessServiceFactory()->createInstance( SERVICENAME_FILTERFACTORY ), UNO_QUERY ); + Reference< XMultiServiceFactory > xLoaderFactory( getProcessServiceFactory()->createInstance( SERVICENAME_FRAMELOADERFACTORY), UNO_QUERY ); + LOG_ASSERT( !(xFilterFactory.is()==sal_False), "TestApplication::impl_testTypeDetection()\nCouldn't create filter factory!\n" ) + LOG_ASSERT( !(xLoaderFactory.is()==sal_False), "TestApplication::impl_testTypeDetection()\nCouldn't create loader factory!\n" ) + + // Step over these list. + for( sal_uInt32 nURL=0; nURL<nCount; ++nURL ) + { + // Try to get a type name for every URL from list and log search result. + OUString sTypeName = xTypeDetection->queryTypeByURL( seqURLs[nURL] ); + sBuffer.appendAscii ( "queryTypeByURL( \"" ); + sBuffer.append ( seqURLs[nURL] ); + sBuffer.appendAscii ( "\" ) returns type \"" ); + sBuffer.append ( sTypeName ); + sBuffer.appendAscii ( "\"\n" ); + // If a type was found - try to get a filter and a frame loader for it. + if( sTypeName.getLength() > 0 ) + { + Reference< XInterface > xFilter = xFilterFactory->createInstance( sTypeName ); + Reference< XInterface > xLoader = xLoaderFactory->createInstance( sTypeName ); + if( xFilter.is() == sal_False ) + { + sBuffer.appendAscii( "Couldn't find an filter.\n" ); + } + else + { + Reference< XPropertySet > xFilterProperties( xFilter, UNO_QUERY ); + LOG_ASSERT( !(xFilterProperties.is()==sal_False), "TestApplication::impl_testTypeDetection()\nFilter don't support XPropertySet!\n" ) + if( xFilterProperties.is() == sal_True ) + { + OUString sUIName; + xFilterProperties->getPropertyValue( DECLARE_ASCII("UIName") ) >>= sUIName; + sBuffer.appendAscii ( "Found filter \"" ); + sBuffer.append ( sUIName ); + sBuffer.appendAscii ( "\"\n" ); + } + + Reference< XPropertySet > xLoaderProperties( xLoader, UNO_QUERY ); + LOG_ASSERT( !(xLoaderProperties.is()==sal_False), "TestApplication::impl_testTypeDetection()\nLoader don't support XPropertySet!\n" ) + if( xLoaderProperties.is() == sal_True ) + { + OUString sUIName; + xLoaderProperties->getPropertyValue( DECLARE_ASCII("UIName") ) >>= sUIName; + sBuffer.appendAscii ( "Found loader \"" ); + sBuffer.append ( sUIName ); + sBuffer.appendAscii ( "\"\n" ); + } + } + } + } + } + + WRITE_LOGFILE( "testTypeDetection.log", U2B(sBuffer.makeStringAndClear()) ) +} +#endif + +//_________________________________________________________________________________________________________________ +// test method +//_________________________________________________________________________________________________________________ +#ifdef TEST_FILTERCACHE +void TestApplication::impl_testFilterCache() +{ + FilterCache aCache; + + OUStringBuffer sBuffer( 100000 ); + if( aCache.isValid() == sal_False ) + { + sBuffer.appendAscii( "Cache isn't valid!\n" ); + } + else + { +/* + // Step over all types and log his values. + // These simulate a XNameAccess! + const Sequence< OUString > seqAllTypeNames = aCache.getAllTypeNames(); + sal_uInt32 nCount = seqAllTypeNames.getLength(); + for( sal_uInt32 nPosition=0; nPosition<nCount; ++nPosition ) + { + sBuffer.appendAscii( "--------------------------------------------------------------------------------\n" ); + const TType* pType = aCache.getTypeByName( seqAllTypeNames[nPosition] ); + if( pType == NULL ) + { + sBuffer.appendAscii ( "Type [" ); + sBuffer.append ( (sal_Int32)nPosition ); + sBuffer.appendAscii ( "] \"" ); + sBuffer.append ( seqAllTypeNames[nPosition]); + sBuffer.appendAscii ( "\" isn't valid!" ); + } + else + { + sBuffer.appendAscii ( "Type [" ); + sBuffer.append ( (sal_Int32)nPosition ); + sBuffer.appendAscii ( "] \"" ); + sBuffer.append ( seqAllTypeNames[nPosition] ); + sBuffer.appendAscii ( "\"\n\t\tUIName\t=\t" ); + sBuffer.append ( pType->sUIName ); + sBuffer.appendAscii ( "\n\t\tMediaType\t=\t" ); + sBuffer.append ( pType->sMediaType ); + sBuffer.appendAscii ( "\n\t\tClipboardFormat\t=\t" ); + sBuffer.append ( pType->sClipboardFormat ); + sBuffer.appendAscii ( "\n\t\tURLPattern\t=\t{" ); + for( TConstStringIterator aIterator=pType->lURLPattern.begin(); aIterator!=pType->lURLPattern.end(); ++aIterator ) + { + sBuffer.append ( *aIterator ); + sBuffer.appendAscii ( ";\n\t\t" ); + } + sBuffer.appendAscii( "}\nExtensions\t=\t" ); + for( aIterator=pType->lExtensions.begin(); aIterator!=pType->lExtensions.end(); ++aIterator ) + { + sBuffer.append ( *aIterator ); + sBuffer.appendAscii ( ";\n\t\t" ); + } + sBuffer.appendAscii ( "}\nDocumentIconID\t=\t" ); + sBuffer.append ( (sal_Int32)pType->nDocumentIconID ); + } + } +*/ + // searchFirstType( URL, MediaType, ClipboardFormat, startEntry ) + TCheckedTypeIterator aIterator; + sBuffer.appendAscii( "search type for \"file://c|/temp/test.sdw\"; no media type; no clipboard format\n" ); + OUString sURL = DECLARE_ASCII("file://c|/temp/test.sdw"); + const OUString* pType = aCache.searchFirstType( &sURL, NULL, NULL, aIterator ); + while( pType != NULL ) + { + sBuffer.appendAscii ( "\tfound \"" ); + sBuffer.append ( *pType ); + sBuffer.appendAscii ( "\"\n" ); + pType = aCache.searchType( &sURL, NULL, NULL, aIterator ); + } + } + + WRITE_LOGFILE( "test_FilterCache.log", U2B(sBuffer.makeStringAndClear()) ) +} +#endif + +//_________________________________________________________________________________________________________________ +// test method +//_________________________________________________________________________________________________________________ +#ifdef TEST_LOGINDIALOG +void TestApplication::impl_testLoginDialog() +{ + // Get global servicemanager to create service "LoginDialog". + Reference< XMultiServiceFactory > xFactory = getProcessServiceFactory(); + LOG_ASSERT( !(xFactory.is()==sal_False), "TestApplication::impl_testLoginDialog()\nServicemanager not valid.\n" ) + // Create LoginDialog. + Reference< XDialog > xDialog( xFactory->createInstance( DECLARE_ASCII("com.sun.star.framework.LoginDialog") ), UNO_QUERY ); + LOG_ASSERT( !(xDialog.is()==sal_False), "TestApplication::impl_testLoginDialog()\nCould not create login dialog.\n" ) + // Check set/getTitle() + /* not implemented yet! */ +// OUString sTitle = DECLARE_ASCII("Login Dialog Test"); +// xDialog->setTitle( sTitle ); +// LOG_ASSERT( !(xDialog->getTitle()!=sTitle), "TestApplication::impl_testLoginDialog()\nset/getTitle don't work correct.\n" ) + + UniString sInternalURL = DECLARE_ASCII("private:factory/scalc"); + UniString sExternalURL = OUString(); + + OString sOut = "internal: "; + sOut += OUStringToOString( sInternalURL, RTL_TEXTENCODING_UTF8 ); + sOut += "\nexternal: "; + sOut += OUStringToOString( sExternalURL, RTL_TEXTENCODING_UTF8 ); + sOut += "\n"; + LOG_ASSERT( sal_False, sOut ) + + INetURLObject::translateToExternal( sInternalURL, sExternalURL ); + sOut = "internal: "; + sOut += OUStringToOString( sInternalURL, RTL_TEXTENCODING_UTF8 ); + sOut += "\nexternal: "; + sOut += OUStringToOString( sExternalURL, RTL_TEXTENCODING_UTF8 ); + sOut += "\n"; + LOG_ASSERT( sal_False, sOut ) + + INetURLObject::translateToInternal( sExternalURL, sInternalURL ); + sOut = "internal: "; + sOut += OUStringToOString( sInternalURL, RTL_TEXTENCODING_UTF8 ); + sOut += "\nexternal: "; + sOut += OUStringToOString( sExternalURL, RTL_TEXTENCODING_UTF8 ); + sOut += "\n"; + LOG_ASSERT( sal_False, sOut ) + + // Work with properties of dialog. + Reference< XPropertySet > xPropertySet( xDialog, UNO_QUERY ); + LOG_ASSERT( !(xPropertySet.is()==sal_False), "TestApplication::impl_testLoginDialog()\nCan't cast dialog to XPropertySet interface.\n" ) + Any aUserName ; + Any aPassword ; + Any aServer ; + Any aConnectionType ; + Any aPort ; + aUserName <<= DECLARE_ASCII("Andreas"); + aPassword <<= DECLARE_ASCII("Test"); + aServer <<= DECLARE_ASCII("www.yahoo.de:7777"); + aConnectionType <<= DECLARE_ASCII("Bla"); + sal_Int32 nPort = 8081; + aPort <<= nPort; + try + { + xPropertySet->setPropertyValue( DECLARE_ASCII("UserName" ), aUserName ); + xPropertySet->setPropertyValue( DECLARE_ASCII("Password" ), aPassword ); + xPropertySet->setPropertyValue( DECLARE_ASCII("Server" ), aServer ); + xPropertySet->setPropertyValue( DECLARE_ASCII("ConnectionType" ), aConnectionType ); + xPropertySet->setPropertyValue( DECLARE_ASCII("Compressed" ), aPort ); + } + catch( ::com::sun::star::beans::UnknownPropertyException& ) + { + LOG_ASSERT( sal_False, "UnkownPropertyException detected!\n" ) + } + catch( ::com::sun::star::beans::PropertyVetoException& ) + { + LOG_ASSERT( sal_False, "PropertyVetoException detected!\n" ) + } + catch( ::com::sun::star::lang::IllegalArgumentException& ) + { + LOG_ASSERT( sal_False, "IllegalArgumentException detected!\n" ) + } + catch( ::com::sun::star::lang::WrappedTargetException& ) + { + LOG_ASSERT( sal_False, "WrappedTargetException detected!\n" ) + } + catch( ::com::sun::star::uno::RuntimeException& ) + { + LOG_ASSERT( sal_False, "RuntimeException detected!\n" ) + } + + xDialog->execute(); + + OUString sUserName ; + OUString sPassword ; + OUString sServer ; + OUString sConnectionType ; + xPropertySet->getPropertyValue( DECLARE_ASCII("UserName" ) ) >>= sUserName ; + xPropertySet->getPropertyValue( DECLARE_ASCII("Password" ) ) >>= sPassword ; + xPropertySet->getPropertyValue( DECLARE_ASCII("Server" ) ) >>= sServer ; + xPropertySet->getPropertyValue( DECLARE_ASCII("ConnectionType" ) ) >>= sConnectionType ; + xPropertySet->getPropertyValue( sConnectionType ) >>= nPort ; + + LOG_ASSERT( sal_False, OUStringToOString( sUserName, RTL_TEXTENCODING_UTF8 ) ) + LOG_ASSERT( sal_False, OUStringToOString( sPassword, RTL_TEXTENCODING_UTF8 ) ) + LOG_ASSERT( sal_False, OUStringToOString( sServer , RTL_TEXTENCODING_UTF8 ) ) + LOG_ASSERT( sal_False, OUStringToOString( sConnectionType , RTL_TEXTENCODING_UTF8 ) ) + LOG_ASSERT( sal_False, OString::valueOf( (sal_Int32)nPort ) ) +} +#endif + +//_________________________________________________________________________________________________________________ +// test method +//_________________________________________________________________________________________________________________ +#ifdef TEST_PLUGIN +void TestApplication::impl_testPlugIn( const Reference< XDesktop >& xDesktop, const Reference< XMultiServiceFactory >& xFactory ) +{ + // create instance provider for creation of factories. + Reference< XInstanceProvider > xInstanceProvider( (OWeakObject*)(new OInstanceProvider( xFactory )), UNO_QUERY ); + LOG_ASSERT( !(xInstanceProvider.is()==sal_False), "TestApplication::impl_testPlugIn()\nCan't create new instance provider!\n" ) + + // try to get factory for create a plugin + Reference< XSingleServiceFactory > xPlugInFactory( xInstanceProvider->getInstance( INSTANCENAME_PLUGINFACTORY ), UNO_QUERY ); + LOG_ASSERT( !(xPlugInFactory.is()==sal_False), "TestApplication::impl_testPlugIn()\nCan't get PlugInFactory from instance provider!\n" ) + + // initialize parameter for creation of plugin + Reference< XPluginInstancePeer > xPlugInDLL =Reference< XPluginInstancePeer >(); + Sequence< Any > seqArguments(1); + seqArguments[0] <<= xPlugInDLL; + + // create plugin + Reference< XFrame > xPlugIn( xPlugInFactory->createInstanceWithArguments( seqArguments ), UNO_QUERY ); + LOG_ASSERT( !(xPlugIn.is()==sal_False), "TestApplication::impl_testPlugIn()\nFactory has created no valid plugin!\n" ) + + xPlugIn->setName( OUString(RTL_CONSTASCII_USTRINGPARAM("PlugIn")) ); + Reference< XFramesSupplier > xSupplier( xDesktop, UNO_QUERY ); + xPlugIn->setCreator( xSupplier ); +} +#endif + +//_________________________________________________________________________________________________________________ +// test method +//_________________________________________________________________________________________________________________ +#ifdef TEST_DESKTOP +#define LOGFILE_TARGETING "targeting.log" +void TestApplication::impl_testDesktop( const Reference< XDesktop >& xDesktop ) +{ + //------------------------------------------------------------------------------------------------------------- + // 1) Test cast to all supported interfaces of Desktop. + + Reference< XInterface > xDesktopInterface ( xDesktop, UNO_QUERY ); + Reference< XTypeProvider > xDesktopTypeProvider ( xDesktop, UNO_QUERY ); + Reference< XServiceInfo > xDesktopServiceInfo ( xDesktop, UNO_QUERY ); + Reference< XComponentLoader > xDesktopComponentLoader ( xDesktop, UNO_QUERY ); + Reference< XTasksSupplier > xDesktopTasksSupplier ( xDesktop, UNO_QUERY ); + Reference< XDispatchProvider > xDesktopDispatchProvider ( xDesktop, UNO_QUERY ); + Reference< XFramesSupplier > xDesktopFramesSupplier ( xDesktop, UNO_QUERY ); + Reference< XFrame > xDesktopFrame ( xDesktop, UNO_QUERY ); + Reference< XComponent > xDesktopComponent ( xDesktop, UNO_QUERY ); + Reference< XStatusIndicatorFactory > xDesktopStatusIndicatorFactory ( xDesktop, UNO_QUERY ); + Reference< XPropertySet > xDesktopPropertySet ( xDesktop, UNO_QUERY ); + Reference< XFastPropertySet > xDesktopFastPropertySet ( xDesktop, UNO_QUERY ); + Reference< XMultiPropertySet > xDesktopMultiPropertySet ( xDesktop, UNO_QUERY ); + + LOG_ASSERT( !(xDesktopInterface.is() ==sal_False), "TestApplication::impl_testDesktop()\nXInterface not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopTypeProvider.is() ==sal_False), "TestApplication::impl_testDesktop()\nXTypeProvider not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopServiceInfo.is() ==sal_False), "TestApplication::impl_testDesktop()\nXServiceInfo not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktop.is() ==sal_False), "TestApplication::impl_testDesktop()\nXDesktop not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopComponentLoader.is() ==sal_False), "TestApplication::impl_testDesktop()\nXComponentLoader not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopTasksSupplier.is() ==sal_False), "TestApplication::impl_testDesktop()\nXTasksSupplier not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopDispatchProvider.is() ==sal_False), "TestApplication::impl_testDesktop()\nXDispatchProvider not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopFramesSupplier.is() ==sal_False), "TestApplication::impl_testDesktop()\nXFramesSupplier not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopFrame.is() ==sal_False), "TestApplication::impl_testDesktop()\nXFrame not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopComponent.is() ==sal_False), "TestApplication::impl_testDesktop()\nXComponent not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopStatusIndicatorFactory.is() ==sal_False), "TestApplication::impl_testDesktop()\nXStatusIndicatorFactory not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopPropertySet.is() ==sal_False), "TestApplication::impl_testDesktop()\nXPropertySet not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopFastPropertySet.is() ==sal_False), "TestApplication::impl_testDesktop()\nXFastPropertySet not supported by Desktop.\n\n" ) + LOG_ASSERT( !(xDesktopMultiPropertySet.is() ==sal_False), "TestApplication::impl_testDesktop()\nXMultiPropertySet not supported by Desktop.\n\n" ) + + //------------------------------------------------------------------------------------------------------------- + // 2) Test set-/getName(). + + // 2a) Test default value "Desktop". + OUString sName( RTL_CONSTASCII_USTRINGPARAM("Desktop") ); + LOG_ASSERT( !(xDesktopFrame->getName()!=sName), "TestApplication::impl_testDesktop()\nDefault value of desktop name is invalid.\n\n" ) + + // 2b) Set name and try to get the same name. + sName = OUString( RTL_CONSTASCII_USTRINGPARAM("New Desktop") ); + xDesktopFrame->setName( sName ); + LOG_ASSERT( !(xDesktopFrame->getName()!=sName), "TestApplication::impl_testDesktop()\nSetting of name works not correct on desktop.\n\n" ) + + // Reset name do default! + // Its neccessary for follow operations. + sName = OUString( RTL_CONSTASCII_USTRINGPARAM("Desktop") ); + xDesktopFrame->setName( sName ); + + //------------------------------------------------------------------------------------------------------------- + // 3) Test findFrame(). + + // Build new example tree and log initial structure in file. + impl_buildTree ( xDesktop ); + impl_logTree ( xDesktop ); + + OUString sTargetFrameName; + sal_uInt32 nSearchFlags ; + Reference< XFrame > xSearchFrame ; + Reference< XFrame > xTask_4 ; + Reference< XFrame > xFrame_41 ; + Reference< XFrame > xFrame_411 ; + Reference< XFrame > xFrame_112 ; + Reference< XFrame > xFrame_1123 ; + Reference< XFrame > xFrame_11231 ; + Reference< XFrame > xFrame_11221 ; + + // 3a) Search for Desktop + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with SELF for \"Desktop\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + sTargetFrameName = OUString(RTL_CONSTASCII_USTRINGPARAM("Desktop")); + nSearchFlags = FrameSearchFlag::SELF; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_False), "TestApplication::impl_testDesktop()\nSearch 3a)-1 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with ALL for \"Desktop\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::ALL; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_False), "TestApplication::impl_testDesktop()\nSearch 3a)-2 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with CHILDREN for \"Desktop\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::CHILDREN; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_True), "TestApplication::impl_testDesktop()\nSearch 3a)-3 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with SIBLINGS for \"Desktop\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::SIBLINGS; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_True), "TestApplication::impl_testDesktop()\nSearch 3a)-4 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with AUTO for \"Desktop\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::AUTO; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_True), "TestApplication::impl_testDesktop()\nSearch 3a)-5 invalid\n" ); + + // 3b) Search for Task_4 + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with SELF for \"Task_4\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + sTargetFrameName = OUString(RTL_CONSTASCII_USTRINGPARAM("Task_4")); + nSearchFlags = FrameSearchFlag::SELF; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_True), "TestApplication::impl_testDesktop()\nSearch 3b)-1 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with SIBLINGS for \"Task_4\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::SIBLINGS; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_True), "TestApplication::impl_testDesktop()\nSearch 3b)-2 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with CHILDREN for \"Task_4\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::CHILDREN; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_False), "TestApplication::impl_testDesktop()\nSearch 3b)-3 invalid\n" ); + + xTask_4 = xSearchFrame; + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with ALL for \"Task_4\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::ALL; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_False), "TestApplication::impl_testDesktop()\nSearch 3b)-4 invalid\n" ); + + // 3c) Search for Frame_41 + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with SELF for \"Frame_41\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + sTargetFrameName = OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_41")); + nSearchFlags = FrameSearchFlag::SELF; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_True), "TestApplication::impl_testDesktop()\nSearch 3c)-1 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with SIBLINGS for \"Frame_41\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::SIBLINGS; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_True), "TestApplication::impl_testDesktop()\nSearch 3c)-2 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with CHILDREN for \"Frame_41\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::CHILDREN; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_False), "TestApplication::impl_testDesktop()\nSearch 3c)-3 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with ALL for \"Frame_41\" on Desktop\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::ALL; + xSearchFrame = xDesktopFrame->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_False), "TestApplication::impl_testDesktop()\nSearch 3c)-4 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with SELF for \"Frame_41\" on Task_4\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::SELF; + xSearchFrame = xTask_4->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_True), "TestApplication::impl_testDesktop()\nSearch 3c)-5 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with SIBLINGS for \"Frame_41\" on Task_4\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::SIBLINGS; + xSearchFrame = xTask_4->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_True), "TestApplication::impl_testDesktop()\nSearch 3c)-6 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with CHILDREN for \"Frame_41\" on Task_4\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::CHILDREN; + xSearchFrame = xTask_4->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_False), "TestApplication::impl_testDesktop()\nSearch 3c)-7 invalid\n" ); + + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, " Search with ALL for \"Frame_41\" on Task_4\n" ) + WRITE_LOGFILE( LOGFILE_TARGETING, "--------------------------------------------------------------------------------\n" ) + nSearchFlags = FrameSearchFlag::ALL; + xSearchFrame = xTask_4->findFrame(sTargetFrameName, nSearchFlags); + LOG_ASSERT( !(xSearchFrame.is()==sal_False), "TestApplication::impl_testDesktop()\nSearch 3c)-8 invalid\n" ); + + xFrame_41 = xSearchFrame; + + // 3d) Search for Frame_411 + // 3e) Search for Frame_112 + // 3f) Search for Frame_1123 + // 3g) Search for Frame_11231 + // 3h) Search for Frame_11221 +} + +//_________________________________________________________________________________________________________________ +// helper method to build a new binaer-tree with desktop as top-frame +//_________________________________________________________________________________________________________________ +void TestApplication::impl_buildTree( const Reference< XDesktop >& xDesktop ) +{ + // You can append and remove frames only on XFRames interface of desktop. + // But the desktop support this interface not directly! Use getFrames() instantly. + Reference< XFramesSupplier > xDesktopSupplier( xDesktop, UNO_QUERY ); + Reference< XFrames > xFrames = xDesktopSupplier->getFrames(); + LOG_ASSERT( !(xFrames.is()==sal_False), "TestApplication::impl_buildTree()\nCan't get framesaccess on desktop.\n\n" ) + + // Create some tasks and frames. + Reference< XMultiServiceFactory > xServiceManager( getProcessServiceFactory() ); + + Reference< XTask > xTask_1( xServiceManager->createInstance(SERVICENAME_TASK), UNO_QUERY ); + Reference< XTask > xTask_2( xServiceManager->createInstance(SERVICENAME_TASK), UNO_QUERY ); + Reference< XTask > xTask_3( xServiceManager->createInstance(SERVICENAME_TASK), UNO_QUERY ); + Reference< XTask > xTask_4( xServiceManager->createInstance(SERVICENAME_TASK), UNO_QUERY ); + Reference< XTask > xTask_5( xServiceManager->createInstance(SERVICENAME_TASK), UNO_QUERY ); + Reference< XFrame > xFrame_11( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_12( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_21( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_22( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_31( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_32( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_41( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_42( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_51( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_52( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_111( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_112( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_121( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_411( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_1121( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_1122( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_1123( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_4111( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_4112( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_4113( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_11221( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + Reference< XFrame > xFrame_11231( xServiceManager->createInstance(SERVICENAME_FRAME), UNO_QUERY ); + + // Initialize tasks and frames with names to support easy finding! + Reference< XFrame > xTaskFrame_1( xTask_1, UNO_QUERY ); + Reference< XFrame > xTaskFrame_2( xTask_2, UNO_QUERY ); + Reference< XFrame > xTaskFrame_3( xTask_3, UNO_QUERY ); + Reference< XFrame > xTaskFrame_4( xTask_4, UNO_QUERY ); + Reference< XFrame > xTaskFrame_5( xTask_5, UNO_QUERY ); + + xTaskFrame_1->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Task_1"))); + xTaskFrame_2->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Task_2"))); + xTaskFrame_3->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Task_3"))); + xTaskFrame_4->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Task_4"))); + xTaskFrame_5->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Task_5"))); + xFrame_11->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_11"))); + xFrame_12->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_12"))); + xFrame_21->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_21"))); + xFrame_22->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_22"))); + xFrame_31->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_31"))); + xFrame_32->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_32"))); + xFrame_41->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_41"))); + xFrame_42->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_42"))); + xFrame_51->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_51"))); + xFrame_52->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_52"))); + xFrame_111->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_111"))); + xFrame_112->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_112"))); + xFrame_121->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_121"))); + xFrame_411->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_411"))); + xFrame_1121->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_1121"))); + xFrame_1122->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_1122"))); + xFrame_1123->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_1123"))); + xFrame_4111->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_4111"))); + xFrame_4112->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_4112"))); + xFrame_4113->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_4113"))); + xFrame_11221->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_11221"))); + xFrame_11231->setName(OUString(RTL_CONSTASCII_USTRINGPARAM("Frame_11231"))); + + // Build tree. + // Append tasks as childs of desktop. + xFrames->append( xTaskFrame_1 ); + xFrames->append( xTaskFrame_2 ); + xFrames->append( xTaskFrame_3 ); + xFrames->append( xTaskFrame_4 ); + xFrames->append( xTaskFrame_5 ); + + // Append frames as childs of tasks. + Reference< XFramesSupplier > xTaskFramesSupplier_1( xTask_1, UNO_QUERY ); + Reference< XFramesSupplier > xTaskFramesSupplier_2( xTask_2, UNO_QUERY ); + Reference< XFramesSupplier > xTaskFramesSupplier_3( xTask_3, UNO_QUERY ); + Reference< XFramesSupplier > xTaskFramesSupplier_4( xTask_4, UNO_QUERY ); + Reference< XFramesSupplier > xTaskFramesSupplier_5( xTask_5, UNO_QUERY ); + Reference< XFramesSupplier > xFramesSupplier_11( xFrame_11, UNO_QUERY ); + Reference< XFramesSupplier > xFramesSupplier_12( xFrame_12, UNO_QUERY ); + Reference< XFramesSupplier > xFramesSupplier_112( xFrame_112, UNO_QUERY ); + Reference< XFramesSupplier > xFramesSupplier_1122( xFrame_1122, UNO_QUERY ); + Reference< XFramesSupplier > xFramesSupplier_1123( xFrame_1123, UNO_QUERY ); + Reference< XFramesSupplier > xFramesSupplier_41( xFrame_41, UNO_QUERY ); + Reference< XFramesSupplier > xFramesSupplier_411( xFrame_411, UNO_QUERY ); + + xFrames = xTaskFramesSupplier_1->getFrames(); + xFrames->append( xFrame_11 ); + xFrames->append( xFrame_12 ); + xFrames = xTaskFramesSupplier_2->getFrames(); + xFrames->append( xFrame_21 ); + xFrames->append( xFrame_22 ); + xFrames = xTaskFramesSupplier_3->getFrames(); + xFrames->append( xFrame_31 ); + xFrames->append( xFrame_32 ); + xFrames = xTaskFramesSupplier_4->getFrames(); + xFrames->append( xFrame_41 ); + xFrames->append( xFrame_42 ); + xFrames = xTaskFramesSupplier_5->getFrames(); + xFrames->append( xFrame_51 ); + xFrames->append( xFrame_52 ); + xFrames = xFramesSupplier_11->getFrames(); + xFrames->append( xFrame_111 ); + xFrames->append( xFrame_112 ); + xFrames = xFramesSupplier_12->getFrames(); + xFrames->append( xFrame_121 ); + xFrames = xFramesSupplier_112->getFrames(); + xFrames->append( xFrame_1121 ); + xFrames->append( xFrame_1122 ); + xFrames->append( xFrame_1123 ); + xFrames = xFramesSupplier_1122->getFrames(); + xFrames->append( xFrame_11221 ); + xFrames = xFramesSupplier_1123->getFrames(); + xFrames->append( xFrame_11231 ); + xFrames = xFramesSupplier_41->getFrames(); + xFrames->append( xFrame_411 ); + xFrames = xFramesSupplier_411->getFrames(); + xFrames->append( xFrame_4111 ); + xFrames->append( xFrame_4112 ); + xFrames->append( xFrame_4113 ); + + // Create some active paths. + // desktop => task_1 => frame_11 => frame_112 => frame_1122 +// xDesktopSupplier->setActiveFrame( xTaskFrame_1 ); +// xTaskFramesSupplier_1->setActiveFrame( xFrame_11 ); +// xFramesSupplier_11->setActiveFrame( xFrame_112 ); +// xFramesSupplier_112->setActiveFrame( xFrame_1122 ); + // frame_41 => frame_411 => frame_4111 +// xFramesSupplier_41->setActiveFrame( xFrame_411 ); +// xFramesSupplier_411->setActiveFrame( xFrame_4111 ); + // task_3 => frame_31 +// xTaskFramesSupplier_3->setActiveFrame( xFrame_31 ); + // frame_1123 => frame_11231 +// xFramesSupplier_1123->setActiveFrame( xFrame_11231 ); + +// xTask_1->activate(); +// impl_logTree( xDesktop ); +// xFrame_41->activate(); +// impl_logTree( xDesktop ); +// xFrame_52->activate(); +// impl_logTree( xDesktop ); +// WRITE_LOGFILE( LOGFILENAME_TREE, "initiale Hierarchy:" ) + impl_logTree( xDesktop ); + +// xFrame_121->activate(); +// impl_logTree( xDesktop ); +// xFrame_41->activate(); +// impl_logTree( xDesktop ); +// xFrame_52->activate(); +// impl_logTree( xDesktop ); +// WRITE_LOGFILE( LOGFILENAME_EVENTS, "nach xFrame_411->activate():" ) + xFrame_411->activate(); +// WRITE_LOGFILE( LOGFILENAME_TREE, "nach xFrame_411->activate():" ) + impl_logTree( xDesktop ); +// xFrame_41->deactivate(); +// impl_logTree( xDesktop ); +// xFrame_4113->activate(); +// impl_logTree( xDesktop ); +// xFrame_21->activate(); +// impl_logTree( xDesktop ); +// WRITE_LOGFILE( LOGFILENAME_EVENTS, "nach xFrame_11231->activate():" ) + xFrame_11231->activate(); +// WRITE_LOGFILE( LOGFILENAME_TREE, "nach xFrame_11231->activate():" ) + impl_logTree( xDesktop ); + +// WRITE_LOGFILE( LOGFILENAME_EVENTS, "nach xFrame_11221->activate():" ) + xFrame_11221->activate(); +// WRITE_LOGFILE( LOGFILENAME_TREE, "nach xFrame_11221->activate():" ) + impl_logTree( xDesktop ); + +// WRITE_LOGFILE( LOGFILENAME_EVENTS, "nach xFrame_112->deactivate():" ) +// xFrame_112->getCreator()->setActiveFrame( Reference< XFrame >() ); + xFrame_112->deactivate(); +// WRITE_LOGFILE( LOGFILENAME_TREE, "nach xFrame_112->deactivate():" ) + impl_logTree( xDesktop ); + +// WRITE_LOGFILE( LOGFILENAME_EVENTS, "nach xFrame_41->activate():" ) + xFrame_41->activate(); +// WRITE_LOGFILE( LOGFILENAME_TREE, "nach xFrame_41->activate():" ) + impl_logTree( xDesktop ); + +// WRITE_LOGFILE( LOGFILENAME_EVENTS, "nach xTask_4->activate():" ) + xTask_4->activate(); +// WRITE_LOGFILE( LOGFILENAME_TREE, "nach xTask_4->activate():" ) + impl_logTree( xDesktop ); + +// WRITE_LOGFILE( LOGFILENAME_EVENTS, "nach xFrame_1123->deactivate():" ) + xFrame_1123->deactivate(); +// WRITE_LOGFILE( LOGFILENAME_TREE, "nach xFrame_1123->deactivate():" ) + impl_logTree( xDesktop ); +} + +//_________________________________________________________________________________________________________________ +// helper method to log current tree state +//_________________________________________________________________________________________________________________ +void TestApplication::impl_logTree( const Reference< XDesktop >& xDesktop ) +{ +#ifdef ENABLE_SERVICEDEBUG + // Use special feature of Desktop-implementation. + // NEVER USE THIS IN RELEASE VERSIONS!!! + Reference< XSPECIALDEBUGINTERFACE > xDebug( xDesktop, UNO_QUERY ); + + // Get a "stream" of all names of frames in tree. + OUString sTreeNamesStream = xDebug->dumpVariable( DUMPVARIABLE_TREEINFO, 0 ); + // And write it to logfile. + OString sOutPut = OUStringToOString( sTreeNamesStream, RTL_TEXTENCODING_UTF8 ); +// WRITE_LOGFILE( LOGFILENAME_TREE, "\nNew tree log:\n\n" ); +// WRITE_LOGFILE( LOGFILENAME_TREE, sOutPut ); +// WRITE_LOGFILE( LOGFILENAME_TREE, "\n" ); +#endif +} +#endif // TEST_DESKTOP + +//_________________________________________________________________________________________________________________ +// test method for registration of new filters in configuration +//_________________________________________________________________________________________________________________ +#ifdef TEST_FILTERREGISTRATION +void TestApplication::impl_testFilterRegistration() +{ + Reference< XNameContainer > xContainer( m_xFactory->createInstance( SERVICENAME_FILTERFACTORY ), UNO_QUERY ); + LOG_ASSERT( !(xContainer.is()==sal_False), "TestApplication::impl_testFilterRegistration()\nCould not create FilterFactory-service or cast it to XNameContainer.\n" ) + if( xContainer.is() == sal_True ) + { + Sequence< PropertyValue > lProperties( 8 ); + + lProperties[0].Name = DECLARE_ASCII("Type" ); + lProperties[0].Value <<= DECLARE_ASCII("component_DB" ); + + lProperties[1].Name = DECLARE_ASCII("UIName" ); + lProperties[1].Value <<= DECLARE_ASCII("Ein neuer Filter-Eintrag"); + + lProperties[2].Name = DECLARE_ASCII("DocumentService" ); + lProperties[2].Value <<= DECLARE_ASCII("test.document.service" ); + + lProperties[3].Name = DECLARE_ASCII("FilterService" ); + lProperties[3].Value <<= DECLARE_ASCII("test.filter.service" ); + + lProperties[4].Name = DECLARE_ASCII("Flags" ); + lProperties[4].Value <<= (sal_Int32)100; + + Sequence< OUString > lTempData(1); + lTempData[0] = DECLARE_ASCII("meine UserData"); + lProperties[5].Name = DECLARE_ASCII("UserData" ); + lProperties[5].Value <<= lTempData; + + lProperties[6].Name = DECLARE_ASCII("FileFormatVersion" ); + lProperties[6].Value <<= (sal_Int32)1; + + lProperties[7].Name = DECLARE_ASCII("TemplateName" ); + lProperties[7].Value <<= DECLARE_ASCII("Mein Template Name" ); + + Any aProperties; + aProperties <<= lProperties; + xContainer->insertByName( DECLARE_ASCII("mein_eigener_neuer_Filter"), aProperties ); + + lProperties[0].Name = DECLARE_ASCII("Type" ); + lProperties[0].Value <<= DECLARE_ASCII("component_DB" ); + + lProperties[1].Name = DECLARE_ASCII("UIName" ); + lProperties[1].Value <<= DECLARE_ASCII("Ein neuer Filter-Eintrag 2"); + + lProperties[2].Name = DECLARE_ASCII("DocumentService" ); + lProperties[2].Value <<= DECLARE_ASCII("test.document.service 2" ); + + lProperties[3].Name = DECLARE_ASCII("FilterService" ); + lProperties[3].Value <<= DECLARE_ASCII("test.filter.service 2" ); + + lProperties[4].Name = DECLARE_ASCII("Flags" ); + lProperties[4].Value <<= (sal_Int32)200; + + lTempData[0] = DECLARE_ASCII("meine UserData 2"); + lProperties[5].Name = DECLARE_ASCII("UserData" ); + lProperties[5].Value <<= lTempData; + + lProperties[6].Name = DECLARE_ASCII("FileFormatVersion" ); + lProperties[6].Value <<= (sal_Int32)2; + + lProperties[7].Name = DECLARE_ASCII("TemplateName" ); + lProperties[7].Value <<= DECLARE_ASCII("Mein Template Name 2" ); + + aProperties <<= lProperties; + xContainer->insertByName( DECLARE_ASCII("mein_eigener_neuer_Filter_2"), aProperties ); + + xContainer->removeByName( DECLARE_ASCII("mein_eigener_neuer_Filter") ); + } +} +#endif + +//_________________________________________________________________________________________________________________ +// test method for search mechanism in our frame tree +//_________________________________________________________________________________________________________________ +#ifdef TEST_TREESEARCH +sal_Bool TestApplication::impl_testTreeSearch() +{ + // Build an example tree. + Reference< XFrame > xD ( m_xFactory->createInstance( SERVICENAME_DESKTOP ), UNO_QUERY ); + Reference< XFrame > xT1 ( m_xFactory->createInstance( SERVICENAME_TASK ), UNO_QUERY ); + Reference< XFrame > xT2 ( m_xFactory->createInstance( SERVICENAME_TASK ), UNO_QUERY ); + Reference< XFrame > xT3 ( m_xFactory->createInstance( SERVICENAME_TASK ), UNO_QUERY ); + Reference< XFrame > xF11 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF12 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF21 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF22 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF211 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF212 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF221 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF2111 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF2112 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF2121 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF2122 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF2211 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF21111 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF21112 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF21121 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF21122 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF21211 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF21212 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF21221 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF21222 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + Reference< XFrame > xF22111 ( m_xFactory->createInstance( SERVICENAME_FRAME ), UNO_QUERY ); + + xD->setName ( DECLARE_ASCII("D" ) ); + xT1->setName ( DECLARE_ASCII("T1" ) ); + xT2->setName ( DECLARE_ASCII("T2" ) ); + xT3->setName ( DECLARE_ASCII("T3" ) ); + xF11->setName ( DECLARE_ASCII("F11" ) ); + xF12->setName ( DECLARE_ASCII("F12" ) ); + xF21->setName ( DECLARE_ASCII("F21" ) ); + xF22->setName ( DECLARE_ASCII("F22" ) ); + xF211->setName ( DECLARE_ASCII("F211" ) ); + xF212->setName ( DECLARE_ASCII("F212" ) ); + xF221->setName ( DECLARE_ASCII("F221" ) ); + xF2111->setName ( DECLARE_ASCII("F2111" ) ); + xF2112->setName ( DECLARE_ASCII("F2112" ) ); + xF2121->setName ( DECLARE_ASCII("F2121" ) ); + xF2122->setName ( DECLARE_ASCII("F2122" ) ); + xF2211->setName ( DECLARE_ASCII("F2211" ) ); + xF21111->setName( DECLARE_ASCII("F21111") ); + xF21112->setName( DECLARE_ASCII("F21112") ); + xF21121->setName( DECLARE_ASCII("F21121") ); + xF21122->setName( DECLARE_ASCII("F21122") ); + xF21211->setName( DECLARE_ASCII("F21211") ); + xF21212->setName( DECLARE_ASCII("F21212") ); + xF21221->setName( DECLARE_ASCII("F21221") ); + xF21222->setName( DECLARE_ASCII("F21222") ); + xF22111->setName( DECLARE_ASCII("F22111") ); + + Reference< XFramesSupplier > xSD ( xD , UNO_QUERY ); + Reference< XFramesSupplier > xST1 ( xT1 , UNO_QUERY ); + Reference< XFramesSupplier > xST2 ( xT2 , UNO_QUERY ); + Reference< XFramesSupplier > xST3 ( xT3 , UNO_QUERY ); + Reference< XFramesSupplier > xSF11 ( xF11 , UNO_QUERY ); + Reference< XFramesSupplier > xSF12 ( xF12 , UNO_QUERY ); + Reference< XFramesSupplier > xSF21 ( xF21 , UNO_QUERY ); + Reference< XFramesSupplier > xSF22 ( xF22 , UNO_QUERY ); + Reference< XFramesSupplier > xSF211 ( xF211 , UNO_QUERY ); + Reference< XFramesSupplier > xSF212 ( xF212 , UNO_QUERY ); + Reference< XFramesSupplier > xSF221 ( xF221 , UNO_QUERY ); + Reference< XFramesSupplier > xSF2111 ( xF2111 , UNO_QUERY ); + Reference< XFramesSupplier > xSF2112 ( xF2112 , UNO_QUERY ); + Reference< XFramesSupplier > xSF2121 ( xF2121 , UNO_QUERY ); + Reference< XFramesSupplier > xSF2122 ( xF2122 , UNO_QUERY ); + Reference< XFramesSupplier > xSF2211 ( xF2211 , UNO_QUERY ); + Reference< XFramesSupplier > xSF21111 ( xF21111 , UNO_QUERY ); + Reference< XFramesSupplier > xSF21112 ( xF21112 , UNO_QUERY ); + Reference< XFramesSupplier > xSF21121 ( xF21121 , UNO_QUERY ); + Reference< XFramesSupplier > xSF21122 ( xF21122 , UNO_QUERY ); + Reference< XFramesSupplier > xSF21211 ( xF21211 , UNO_QUERY ); + Reference< XFramesSupplier > xSF21212 ( xF21212 , UNO_QUERY ); + Reference< XFramesSupplier > xSF21221 ( xF21221 , UNO_QUERY ); + Reference< XFramesSupplier > xSF21222 ( xF21222 , UNO_QUERY ); + Reference< XFramesSupplier > xSF22111 ( xF22111 , UNO_QUERY ); + + xSD->getFrames()->append ( xT1 ); + xSD->getFrames()->append ( xT2 ); + xSD->getFrames()->append ( xT3 ); + xST1->getFrames()->append ( xF11 ); + xST1->getFrames()->append ( xF12 ); + xST2->getFrames()->append ( xF21 ); + xST2->getFrames()->append ( xF22 ); + xSF21->getFrames()->append ( xF211 ); + xSF21->getFrames()->append ( xF212 ); + xSF211->getFrames()->append ( xF2111 ); + xSF211->getFrames()->append ( xF2112 ); + xSF212->getFrames()->append ( xF2121 ); + xSF212->getFrames()->append ( xF2122 ); + xSF2111->getFrames()->append ( xF21111 ); + xSF2111->getFrames()->append ( xF21112 ); + xSF2112->getFrames()->append ( xF21121 ); + xSF2112->getFrames()->append ( xF21122 ); + xSF2121->getFrames()->append ( xF21211 ); + xSF2121->getFrames()->append ( xF21212 ); + xSF2122->getFrames()->append ( xF21221 ); + xSF2122->getFrames()->append ( xF21222 ); + xSF22->getFrames()->append ( xF221 ); + xSF221->getFrames()->append ( xF2211 ); + xSF2211->getFrames()->append ( xF22111 ); + + sal_Int32 nFlags = 0; + + // Test deep down search + nFlags = FrameSearchFlag::CHILDREN; + if ( + ( xD->findFrame( DECLARE_ASCII("T1" ), nFlags ) != xT1 ) || + ( xD->findFrame( DECLARE_ASCII("T2" ), nFlags ) != xT2 ) || + ( xD->findFrame( DECLARE_ASCII("T3" ), nFlags ) != xT3 ) || + ( xD->findFrame( DECLARE_ASCII("F11" ), nFlags ) != xF11 ) || + ( xD->findFrame( DECLARE_ASCII("F12" ), nFlags ) != xF12 ) || + ( xD->findFrame( DECLARE_ASCII("F21" ), nFlags ) != xF21 ) || + ( xD->findFrame( DECLARE_ASCII("F22" ), nFlags ) != xF22 ) || + ( xD->findFrame( DECLARE_ASCII("F211" ), nFlags ) != xF211 ) || + ( xD->findFrame( DECLARE_ASCII("F212" ), nFlags ) != xF212 ) || + ( xD->findFrame( DECLARE_ASCII("F2111" ), nFlags ) != xF2111 ) || + ( xD->findFrame( DECLARE_ASCII("F2112" ), nFlags ) != xF2112 ) || + ( xD->findFrame( DECLARE_ASCII("F2121" ), nFlags ) != xF2121 ) || + ( xD->findFrame( DECLARE_ASCII("F2122" ), nFlags ) != xF2122 ) || + ( xD->findFrame( DECLARE_ASCII("F21111" ), nFlags ) != xF21111 ) || + ( xD->findFrame( DECLARE_ASCII("F21112" ), nFlags ) != xF21112 ) || + ( xD->findFrame( DECLARE_ASCII("F21121" ), nFlags ) != xF21121 ) || + ( xD->findFrame( DECLARE_ASCII("F21122" ), nFlags ) != xF21122 ) || + ( xD->findFrame( DECLARE_ASCII("F21211" ), nFlags ) != xF21211 ) || + ( xD->findFrame( DECLARE_ASCII("F21212" ), nFlags ) != xF21212 ) || + ( xD->findFrame( DECLARE_ASCII("F21221" ), nFlags ) != xF21221 ) || + ( xD->findFrame( DECLARE_ASCII("F21222" ), nFlags ) != xF21222 ) || + ( xD->findFrame( DECLARE_ASCII("F221" ), nFlags ) != xF221 ) || + ( xD->findFrame( DECLARE_ASCII("F2211" ), nFlags ) != xF2211 ) || + ( xD->findFrame( DECLARE_ASCII("F22111" ), nFlags ) != xF22111 ) + ) + { + LOG_ERROR( "TestApplikation::impl_testTreeSearch()", "deep down search failed" ) + return sal_False; + } + + // Test flat down search + nFlags = FrameSearchFlag::CHILDREN | FrameSearchFlag::SIBLINGS; + if ( + ( xD->findFrame( DECLARE_ASCII("T1" ), nFlags ) != xT1 ) || + ( xD->findFrame( DECLARE_ASCII("T2" ), nFlags ) != xT2 ) || + ( xD->findFrame( DECLARE_ASCII("T3" ), nFlags ) != xT3 ) || + ( xD->findFrame( DECLARE_ASCII("F11" ), nFlags ) != xF11 ) || + ( xD->findFrame( DECLARE_ASCII("F12" ), nFlags ) != xF12 ) || + ( xD->findFrame( DECLARE_ASCII("F21" ), nFlags ) != xF21 ) || + ( xD->findFrame( DECLARE_ASCII("F22" ), nFlags ) != xF22 ) || + ( xD->findFrame( DECLARE_ASCII("F211" ), nFlags ) != xF211 ) || + ( xD->findFrame( DECLARE_ASCII("F212" ), nFlags ) != xF212 ) || + ( xD->findFrame( DECLARE_ASCII("F2111" ), nFlags ) != xF2111 ) || + ( xD->findFrame( DECLARE_ASCII("F2112" ), nFlags ) != xF2112 ) || + ( xD->findFrame( DECLARE_ASCII("F2121" ), nFlags ) != xF2121 ) || + ( xD->findFrame( DECLARE_ASCII("F2122" ), nFlags ) != xF2122 ) || + ( xD->findFrame( DECLARE_ASCII("F21111" ), nFlags ) != xF21111 ) || + ( xD->findFrame( DECLARE_ASCII("F21112" ), nFlags ) != xF21112 ) || + ( xD->findFrame( DECLARE_ASCII("F21121" ), nFlags ) != xF21121 ) || + ( xD->findFrame( DECLARE_ASCII("F21122" ), nFlags ) != xF21122 ) || + ( xD->findFrame( DECLARE_ASCII("F21211" ), nFlags ) != xF21211 ) || + ( xD->findFrame( DECLARE_ASCII("F21212" ), nFlags ) != xF21212 ) || + ( xD->findFrame( DECLARE_ASCII("F21221" ), nFlags ) != xF21221 ) || + ( xD->findFrame( DECLARE_ASCII("F21222" ), nFlags ) != xF21222 ) || + ( xD->findFrame( DECLARE_ASCII("F221" ), nFlags ) != xF221 ) || + ( xD->findFrame( DECLARE_ASCII("F2211" ), nFlags ) != xF2211 ) || + ( xD->findFrame( DECLARE_ASCII("F22111" ), nFlags ) != xF22111 ) + ) + { + LOG_ERROR( "TestApplikation::impl_testTreeSearch()", "flat down search failed" ) + return sal_False; + } + + // Test deep up search + // All targets must be found. Control search steps in log files! + nFlags = FrameSearchFlag::PARENT; + if ( + ( xF11->findFrame ( DECLARE_ASCII("T1"), nFlags ) != xT1 ) || // search for valid targets + ( xF12->findFrame ( DECLARE_ASCII("T1"), nFlags ) != xT1 ) || + ( xF21->findFrame ( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF22->findFrame ( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF211->findFrame ( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF212->findFrame ( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF221->findFrame ( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF2111->findFrame ( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF2121->findFrame ( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF2122->findFrame ( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF2211->findFrame ( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF21111->findFrame( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF21112->findFrame( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF21121->findFrame( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF21122->findFrame( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF21211->findFrame( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF21212->findFrame( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF21221->findFrame( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF21222->findFrame( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF22111->findFrame( DECLARE_ASCII("T2"), nFlags ) != xT2 ) || + ( xF11->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || // search for existing but non valid targets + ( xF12->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF21->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF22->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF211->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF212->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF221->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF2111->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF2121->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF2122->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF2211->findFrame ( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF21111->findFrame( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF21112->findFrame( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF21121->findFrame( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF21122->findFrame( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF21211->findFrame( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF21212->findFrame( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF21221->findFrame( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF21222->findFrame( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) || + ( xF22111->findFrame( DECLARE_ASCII("T3"), nFlags ).is() == sal_True ) + ) + { + LOG_ERROR( "TestApplikation::impl_testTreeSearch()", "deep up search failed" ) + return sal_False; + } + + // Test inside/outside tasks search + // No frames outside current task should be found if TASKS flag isnt set. + // Otherwise he must be found! + if ( + ( xF21211->findFrame( DECLARE_ASCII("F12" ), FrameSearchFlag::ALL ) == xF12 ) || + ( xF21211->findFrame( DECLARE_ASCII("F22111"), FrameSearchFlag::GLOBAL ) != xF22111 ) || + ( xF21211->findFrame( DECLARE_ASCII("T4" ), FrameSearchFlag::GLOBAL | FrameSearchFlag::CREATE ).is() == sal_False) + ) + { + LOG_ERROR( "TestApplikation::impl_testTreeSearch()", "inside/outside task search failed" ) + return sal_False; + } + + // Test SELF + // Use the desktop, one task and one frame node to do that. + // The desktop must ignore these question ... all other must return himself. + LOG_ASSERT2( (xD->findFrame ( DECLARE_ASCII(""), FrameSearchFlag::SELF ) == xD ), "TestApplication::impl_testTreeSearch()", "SELF search for D failed\n" ) + LOG_ASSERT2( (xT1->findFrame ( DECLARE_ASCII(""), FrameSearchFlag::SELF ) != xT1 ), "TestApplication::impl_testTreeSearch()", "SELF search for T1 failed\n" ) + LOG_ASSERT2( (xF12->findFrame ( DECLARE_ASCII(""), FrameSearchFlag::SELF ) != xF12 ), "TestApplication::impl_testTreeSearch()", "SELF search for F12 failed\n" ) + + // Test special task search at desktop + // These search allow TASKS and CREATE flags only! + // We make no deep search - we work on direct children of desktop only. + // Supported for desktop only. + LOG_ASSERT2( (xD->findFrame ( DECLARE_ASCII("T1"), FrameSearchFlag::TASKS ) != xT1 ), "TestApplication::impl_testTreeSearch()", "special TASKS search for T1 failed\n" ) + LOG_ASSERT2( (xD->findFrame ( DECLARE_ASCII("T2"), FrameSearchFlag::TASKS ) != xT2 ), "TestApplication::impl_testTreeSearch()", "special TASKS search for T2 failed\n" ) + LOG_ASSERT2( (xD->findFrame ( DECLARE_ASCII("T3"), FrameSearchFlag::TASKS ) != xT3 ), "TestApplication::impl_testTreeSearch()", "special TASKS search for T3 failed\n" ) + // Attention: T4 was created before! + LOG_ASSERT2( (xD->findFrame ( DECLARE_ASCII("T5"), FrameSearchFlag::TASKS ).is() == sal_True ), "TestApplication::impl_testTreeSearch()", "special TASKS search for T5 failed\n" ) + LOG_ASSERT2( (xD->findFrame ( DECLARE_ASCII("T5"), FrameSearchFlag::TASKS | FrameSearchFlag::CREATE ).is() == sal_False ), "TestApplication::impl_testTreeSearch()", "special TASKS+CREATE search for T5 failed\n" ) + LOG_ASSERT2( (xD->findFrame ( DECLARE_ASCII("F12"), FrameSearchFlag::TASKS ).is() == sal_True ), "TestApplication::impl_testTreeSearch()", "special TASKS search for F12 failed\n" ) + LOG_ASSERT2( (xF12->findFrame ( DECLARE_ASCII("T1"), FrameSearchFlag::TASKS ).is() == sal_True ), "TestApplication::impl_testTreeSearch()", "special TASKS search for T1 from F12 failed\n" ) + LOG_ASSERT2( (xF22111->findFrame( DECLARE_ASCII("T1"), FrameSearchFlag::TASKS ).is() == sal_True ), "TestApplication::impl_testTreeSearch()", "special TASKS search for T1 from F22111 failed\n" ) + + return sal_True; +} +#endif diff --git a/framework/test/test_componentenumeration.bas b/framework/test/test_componentenumeration.bas new file mode 100644 index 000000000000..77b64bb96939 --- /dev/null +++ b/framework/test/test_componentenumeration.bas @@ -0,0 +1,78 @@ +rem _______________________________________________________________________________________________________________________________________ +rem Test script for helper class "framework/helper/OComponentAccess and OComponentEnumeration. +rem These two classes are used for "framework/baeh_services/Desktop::getComponents()" only. +rem _______________________________________________________________________________________________________________________________________ + + +Sub Main + + rem ___________________________________________________________________________________________________________________________________ + rem Get all current components of the frame tree as an enumeration access object. + rem The return value must be a valid reference! + xComponentAccess = StarDesktop.Components + if( isNull(xComponentAccess) = TRUE ) then + msgbox "Error: Desktop return null reference as enumeration access to all tree components!" + exit Sub + endif + + rem ___________________________________________________________________________________________________________________________________ + rem Control service specification of helper class "framework/helper/OComponentAccess". + rem The follow output must occure: com.sun.star.lang.XTypeProvider + rem com.sun.star.container.XEnumerationAccess -> com.sun.star.container.XElementAccess + msgbox xComponentAccess.dbg_supportedInterfaces + + rem ___________________________________________________________________________________________________________________________________ + rem Test interface XElementAccess of helper OComponentAcces. + + rem Method hasElements() must return TRUE, because if you call this from the basic IDE at least one task must exist ... + rem the IDE by himself. Normaly two tasks exist - an empty writer document and a basic frame. + rem Attention: Not all tasks or frames must support a full implemented component! + if( xComponentAccess.hasElements <> TRUE ) then + msgbox "Error: xComponentAccess has no elements - but I can't believe it!" + exit Sub + endif + + rem Method getElementType() must return the cppu type of XComponent. + rem Otherwise something is wrong or implementation has changed. + if( xComponentAccess.getElementType.Name <> "com.sun.star.lang.XComponent" ) then + msgbox "Error: xComponentAccess return wrong type as element type! - Has implementation changed?" + exit Sub + endif + + rem ___________________________________________________________________________________________________________________________________ + rem Test interface XEnumerationAccess of helper OComponentAcces. + rem The return value must be a valid reference! + xComponentEnumeration = xComponentAccess.createEnumeration + if( isNull(xComponentEnumeration) = TRUE ) then + msgbox "Error: Could not create a component enumeration!" + exit Sub + endif + + rem ___________________________________________________________________________________________________________________________________ + rem Control service specification of helper class "framework/helper/OComponentEnumeration". + rem The follow output must occure: com.sun.star.lang.XTypeProvider + rem com.sun.star.lang.XEventListener + rem com.sun.star.container.XEnumeration + msgbox xComponentEnumeration.dbg_supportedInterfaces + + rem ___________________________________________________________________________________________________________________________________ + rem Test interface XEnumeration of helper OComponentEnumeration. + nElementCounter = 0 + while( xComponentEnumeration.hasMoreElements = TRUE ) + xElement = xComponentEnumeration.nextElement + if( isNull(xElement) = TRUE ) then + msgbox "Error: An empty component in enumeration detected! Whats wrong?" + exit Sub + endif + nElementCounter = nElementCounter + 1 + wend + if( nElementCounter < 1 ) then + msgbox "Warning: The enumeration was empty. I think it's wrong ... please check it again." + endif + msgbox "Info: An enumeration with " + nElementCounter + " element(s) was detected." + + rem ___________________________________________________________________________________________________________________________________ + rem If this point arrived our test was successful. + msgbox "Test of framework/helper/OComponentAccess & OComponentEnumeration was successful!" + +End Sub diff --git a/framework/test/test_documentproperties.bas b/framework/test/test_documentproperties.bas new file mode 100644 index 000000000000..15e4f62a2967 --- /dev/null +++ b/framework/test/test_documentproperties.bas @@ -0,0 +1,1083 @@ +Sub Main + ' Oeffnen der LOG-Datei + ' Es gibt 2 Moeglichgkeiten, diesen Test zu absolvieren. + ' 1) Ausgabe von Informationen in MessageBoxen + ' 2) Ausgabe von Informationen in einer LOG-Datei + ' + ' Die Methoden OpenLOG, CloseLOG, Message, ErrorMessage und InfoMessage beruecksichtigen das automatisch! + ' Zum Umschalten zwischen den beiden Zustaenden genuegt es, eine der folgenden + ' zwei Programmzeilen zu aktivieren ... + + 'bLOGOn = cOn + bLOGOn = cOff + + 'bShowErrorsOnly = cOn + bShowErrorsOnly = cOff + + OpenLOG ( cTestPath + "TestDocumentProperties.log" ) + InfoMessage ( "Test DocumentProperties ... [start]" ) + + ' Service besorgen + InfoMessage ( "Service besorgen ... [start]" ) + aDocumentProperties = createUnoService ( "com.sun.star.document.DocumentProperties" ) + + ' Erfolg abtesten + if ( isnull ( aDocumentProperties ) ) then + ErrorMessage ( "Service konnte nicht instanziiert werden!" ) + exit sub + else + InfoMessage ( "Service erfolgreich instanziiert ..." ) + InfoMessage ( "Service besorgen ... [ende]" ) + end if + + ' Unterstuetzte Schnittstellen, Methoden und Properties anzeigen + ' Achtung: Methoden und Properties koennen nicht angezeigt werden ... + ' neues Uno <-> Basic !? + msgbox aDocumentProperties.dbg_supportedInterfaces + 'msgbox aDocumentProperties.dbg_methods + 'msgbox aDocumentProperties.dbg_properties + + ' Testen des Services unter normalen Bedingungen (also wie vorgesehen) + bState = Test_NormalUse ( aDocumentProperties ) + ' Fehlerstatus abfragen + if ( bState = cError ) then + ErrorMessage ( "Der Service arbeitet unter normalen Bedingungen nicht korrekt!" ) + end if + + bState = Test_ErrorUse ( aDocumentProperties ) + ' Fehlerstatus abfragen + if ( bState = cError ) then + ErrorMessage ( "Der Service verhaelt sich in Fehlersituationen nicht korrekt!" ) + end if + + ' Schliessen der Error-Logdatei + InfoMessage ( "Test DocumentProperties ... [ende]" ) + CloseLOG +End Sub + +'***************************************************************************************************************** +' Testfunktionen +'***************************************************************************************************************** + +'---------------------------------------------------------------------------- +' Testmethode: Testet den Service unter normalen Bedingungen +' +' Returnwert cOK bedeutet, dass sich das Objekt normal verhaelt ... +' Returnwert cError bedeutet, dass sich das ein Fehler aufgetreten ist ... +'---------------------------------------------------------------------------- +Function Test_NormalUse ( aDocumentProperties ) as Boolean + + ' Zunaechst wird vom Erfolg des Test ausgegangen. + ' Sollte einer der Detail-Tests fehlschlagen, dann wird dieser Wert + ' zurueckgesetzt. Damit wird dann angezeigt, dass mindestens ein + ' Einzeltest nicht korrekt funktionierte. + + Test_NormalUse = cOK + + bState = Test_NormalUse_XPropertySet ( aDocumentProperties ) + if ( bState = cError ) then + Test_NormalUse = cError + end if + + bState = Test_NormalUse_XNameContainer ( aDocumentProperties ) + if ( bState = cError ) then + Test_NormalUse = cError + end if + + bState = Test_NormalUse_XPersist ( aDocumentProperties ) + if ( bState = cError ) then + Test_NormalUse = cError + end if + +End Function + +'---------------------------------------------------------------------------- +' Testmethode: Testet den Service unter Randbedingungen und provoziert Fehlerzustaende +' +' Returnwert cOK bedeutet, dass das Objekt damit keine Probleme hat ... +' Returnwert cError bedeutet, dass das Objekt noch nicht robust genug ist ... +'---------------------------------------------------------------------------- +Function Test_ErrorUse ( aDocumentProperties ) as Boolean + + Test_ErrorUse = cOK + +End Function + +'---------------------------------------------------------------------------- +' Testmethode: Testen des unterstuetzten Interfaces "XPropertySet" unter normalen Bedingungen +' +' Returnwert = cOK ; wenn der Test erfolgreich war +' Returnwert = cError ; wenn sich das Objekt nicht korrekt verhalten hat +'---------------------------------------------------------------------------- +Function Test_NormalUse_XPropertySet ( aDocumentProperties ) as Boolean + + ' Einschalten der Fehlerbehandlung, um Exceptions oder aehnliches abzufangen! + on Error goto Test_NormalUse_XPropertySet_Error + + InfoMessage ( "Test_NormalUse_XPropertySet ... [start]" ) + + ' 1) Test der Funktion "getPropertySetInfo()" + ' Da diese Funktion keine Parameter besitzt und zudem eine "get"-Methode + ' darstellt, wird sie durch Basic automatisch als "Property" behandelt! + ' Daher schreibt man nicht "getPropertySetInfo()" sondern nur "PropertySetInfo". + + ' Besorgen der Info + PropertySetInfo = aDocumentProperties.PropertySetInfo + ' Und abtesten auf Gueltigkeit + if ( isnull (PropertySetInfo) ) then + ErrorMessage ( "getPropertySetInfo() ... Error (Keine Info bestimmbar!)" ) + goto Test_NormalUse_XPropertySet_Error + end if + + ' Hier fehlt noch der Test der InfoStruktur! (Laesst sich unter Basic irgendwie NICHT testen!!!???) + ' ... + + InfoMessage ( "getPropertySetInfo() ... OK" ) + + ' 2) getPropertyValue() & setPropertyValue () + ' In diesem Service sind mehrere Properties bereits definiert und vorbelegt. + ' Zum Test werden repraesentativ einige davon verwendet. Naemlich je eine + ' der verschiedenen Datentypen! + ' Das sind im folgenden: OWString, sal_Bool, sal_Int16, sal_uInt16, sal_Int32, DateTime, Sequence< sal_Int8 > + ' Achtung! sal_uInt16 kann in Basic so nicht dargestellt werden. Daher wird ein normaler + ' Integer-Wert angenommen - Bedingung ist, das hier im Test der Wertebereich nicht + ' ueberschritten wird! + ' Es wird versucht den Standardwert dieser zu ermitteln und zu merken; + ' dann einen neuen Wert zu setzen; sowie diesen wiederum zu lesen und mit den + ' vorherigen Werten zu vergleichen! + + ' Zunaechst werden die Standardwerte dieser Properties besorgt ... + sDefaultValue_OWString$ = aDocumentProperties.getPropertyValue ( "Author" ) + bDefaultValue_sal_Bool = aDocumentProperties.getPropertyValue ( "AutoloadEnabled" ) + nDefaultValue_sal_Int16% = aDocumentProperties.getPropertyValue ( "EditingCycles" ) + nDefaultValue_sal_uInt16% = aDocumentProperties.getPropertyValue ( "Priority" ) + nDefaultValue_sal_Int32& = aDocumentProperties.getPropertyValue ( "EditingDuration" ) + aDefaultValue_DateTime = aDocumentProperties.getPropertyValue ( "ModifyDate" ) +' aDefaultValue_ByteSequence = aDocumentProperties.getPropertyValue ( "ExtraData" ) + aDefaultValue_ByteSequence = aDocumentProperties.ExtraData + + ' ... dann die Werte zur Kontrolle ausgeben. + ShowProperties ( aDocumentProperties ) + + InfoMessage ( "getPropertyValue() ... OK" ) + + ' Jetzt werden neue Werte vereinbart ... + ' Diese werden so gewaehlt, das sie garantiert von den Standardwerten verschieden sind! + ' Dazu werden die alten auf Wert abgefragt und entsprechend die neuen gesetzt. + sNewValue_OWString$ = sDefaultValue_OWString$ + "NeuerWert" + bNewValue_sal_Bool = not bDefaultValue_sal_Bool + nNewValue_sal_Int16% = nDefaultValue_sal_Int16% + 1 + if ( nDefaultValue_sal_uInt16% = 1 ) then + nNewValue_sal_uInt16% = 2 + else + nNewValue_sal_uInt16% = 1 + end if + nNewValue_sal_Int32& = nDefaultValue_sal_Int32& + 1 + + aNewValue_DateTime = aDefaultValue_DateTime + aNewValue_DateTime.HundredthSeconds = aDefaultValue_DateTime.HundredthSeconds + 1 + aNewValue_DateTime.Seconds = aDefaultValue_DateTime.Seconds + 1 + aNewValue_DateTime.Minutes = aDefaultValue_DateTime.Minutes + 1 + aNewValue_DateTime.Hours = aDefaultValue_DateTime.Hours + 1 + aNewValue_DateTime.Day = aDefaultValue_DateTime.Day + 1 + aNewValue_DateTime.Month = aDefaultValue_DateTime.Month + 1 + aNewValue_DateTime.Year = aDefaultValue_DateTime.Year + 1 + + aNewValue_ByteSequence = aDefaultValue_ByteSequence + nElementCount% = UBound ( aDefaultValue_ByteSequence ) +' for nCounter%=0 to nElementCount% step 1 +' aNewValue_ByteSequence(nCounter%) = ( aDefaultValue_ByteSequence(nCounter%) + 1 ) +' next nCounter% + + ' Anschliessend muessen diese neuen Werte gesetzt werden. + aDocumentProperties.setPropertyValue ( "Author" , sNewValue_OWString$ ) + aDocumentProperties.setPropertyValue ( "AutoloadEnabled", bNewValue_sal_Bool ) + aDocumentProperties.setPropertyValue ( "EditingCycles" , nNewValue_sal_Int16% ) + aDocumentProperties.setPropertyValue ( "Priority" , nNewValue_sal_uInt16% ) + aDocumentProperties.setPropertyValue ( "EditingDuration", nNewValue_sal_Int32& ) + aDocumentProperties.setPropertyValue ( "ModifyDate" , aNewValue_DateTime ) +' aDocumentProperties.setPropertyValue ( "ExtraData" , aNewValue_ByteSequence ) + aDocumentProperties.ExtraData = aNewValue_ByteSequence + + ' Dann lassen wir sie uns ausgeben, um sie mit den vorherigen vergleichen zu koennen. + ' (Das geht natuerlich nur, wenn "bLOGOn=cOn" ist - also eine LOG-Datei geschrieben wird!) + ShowProperties ( aDocumentProperties ) + + ' Nun werden die Properties wieder gelesen ... + sLastValue_OWString$ = aDocumentProperties.getPropertyValue ( "Author" ) + bLastValue_sal_Bool = aDocumentProperties.getPropertyValue ( "AutoloadEnabled" ) + nLastValue_sal_Int16% = aDocumentProperties.getPropertyValue ( "EditingCycles" ) + nLastValue_sal_uInt16% = aDocumentProperties.getPropertyValue ( "Priority" ) + nLastValue_sal_Int32& = aDocumentProperties.getPropertyValue ( "EditingDuration" ) + aLastValue_DateTime = aDocumentProperties.getPropertyValue ( "ModifyDate" ) + aLastValue_ByteSequence = aDocumentProperties.getPropertyValue ( "ExtraData" ) + + ' ... und mit den vorher als zu setzend bestimmte Werte vergleichen! + ' Es duerfen KEINE Unterschiede auftreten, da sonst "setPropertyValue()" nicht korrekt funktioniert hat! + + if ( CompareOWString ( sNewValue_OWString$, sLastValue_OWString$ ) = cDifferent ) then + ErrorMessage ( "setPropertyValue() ... Fehler [OWString fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareBool ( bNewValue_sal_Bool, bLastValue_sal_Bool ) = cDifferent ) then + ErrorMessage ( "setPropertyValue() ... Fehler [sal_Bool fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareInt16 ( nNewValue_sal_Int16%, nLastValue_sal_Int16% ) = cDifferent ) then + ErrorMessage ( "setPropertyValue() ... Fehler [sal_Int16 fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareInt16 ( nNewValue_sal_uInt16%, nLastValue_sal_uInt16% ) = cDifferent ) then + ErrorMessage ( "setPropertyValue() ... Fehler [sal_uInt16 fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareInt32 ( nNewValue_sal_Int32&, nLastValue_sal_Int32& ) = cDifferent ) then + ErrorMessage ( "setPropertyValue() ... Fehler [sal_Int32 fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareDateTime ( aNewValue_DateTime, aLastValue_DateTime ) = cDifferent ) then + ErrorMessage ( "setPropertyValue() ... Fehler [DateTime fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareByteSequence ( aNewValue_ByteSequence, aLastValue_ByteSequence ) = cDifferent ) then + ErrorMessage ( "setPropertyValue() ... Fehler [ByteSequence fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + end if + + InfoMessage ( "setPropertyValue() ... OK" ) + + ' Nun wird noch mit den zuerst ermittelten Default-Werten verglichen! + ' Hier MUESSEN Unterschiede auftreten, da sonst "get-" UND "setPropertyValue()" nicht korrekt funktioniert haben! + + if ( CompareOWString ( sDefaultValue_OWString$, sLastValue_OWString$ ) = cEqual ) then + ErrorMessage ( "Zusammenspiel set & getPropertyValue() ... Fehler [OWString fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareBool ( bDefaultValue_sal_Bool, bLastValue_sal_Bool ) = cEqual ) then + ErrorMessage ( "Zusammenspiel set & getPropertyValue() ... Fehler [sal_Bool fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareInt16 ( nDefaultValue_sal_Int16%, nLastValue_sal_Int16% ) = cEqual ) then + ErrorMessage ( "Zusammenspiel set & getPropertyValue() ... Fehler [sal_Int16 fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareInt16 ( nDefaultValue_sal_uInt16%, nLastValue_sal_uInt16% ) = cEqual ) then + ErrorMessage ( "Zusammenspiel set & getPropertyValue() ... Fehler [sal_uInt16 fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareInt32 ( nDefaultValue_sal_Int32&, nLastValue_sal_Int32& ) = cEqual ) then + ErrorMessage ( "Zusammenspiel set & getPropertyValue() ... Fehler [sal_Int32 fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error + elseif ( CompareDateTime ( aDefaultValue_DateTime, aLastValue_DateTime ) = cEqual ) then + ErrorMessage ( "Zusammenspiel set & getPropertyValue() ... Fehler [DateTime fehlerhaft]" ) + goto Test_NormalUse_XPropertySet_Error +' elseif ( CompareByteSequence ( aDefaultValue_ByteSequence, aLastValue_ByteSequence ) = cEqual ) then +' ErrorMessage ( "Zusammenspiel set & getPropertyValue() ... Fehler [ByteSequence fehlerhaft]" ) +' goto Test_NormalUse_XPropertySet_Error + end if + + InfoMessage ( "Zusammenspiel set & getPropertyValue() ... OK" ) + + ' Der Test war erfolgreich! Meldung ausgeben und zurueck zm Aufrufer. + ' Ausschalten der Fehlerbehandlung + on Error goto 0 + ' Meldung ausgeben + InfoMessage ( "Test_NormalUse_XPropertySet ... [ende]" ) + ' Status setzen + Test_NormalUse_XPropertySet = cOK + ' Und Funktion beenden + Exit Function + +' Es ist ein unerwartete Fehler aufgetreten! (Exception ...) +' Meldung ausgeben und mit Fehler zurueckkehren. +Test_NormalUse_XPropertySet_Error: + ' Ausschalten der Fehlerbehandlung + on Error goto 0 + ' Meldung ausgeben + ErrorMessage ( "Test_NormalUse_XPropertySet ... [Error]" ) + ' und Fehlerstatus setzen + Test_NormalUse_XPropertySet = cError + ' Abbruch der Funktion erzwingen! + Exit Function + +End Function + +'---------------------------------------------------------------------------- +' Testmethode: Testen des unterstuetzten Interfaces "XNameContainer" unter normalen Bedingungen +' +' Returnwert = cOK ; wenn sich das Objekt korrekt verhalten hat +' Returnwert = cError ; wenn das Objekt noch nicht robust genug ist +'---------------------------------------------------------------------------- +Function Test_NormalUse_XNameContainer ( aDocumentProperties ) as Boolean + + ' Einschalten der Fehlerbehandlung, um Exceptions oder aehnliches abzufangen! + on Error goto Test_NormalUse_XNameContainer_Error + + InfoMessage ( "Test_NormalUse_XNameContainer ... [start]" ) + + ' Da das Initialisieren im Konstruktor des Objektes und das Aufraeumen im Destruktor + ' automatisch geschieht und diese Methode pro Programmablauf nur einmal verwendet wird, + ' darf sich kein Element schon im NameContainer befinden! + ' Wenn doch, ist das ein Fehler! + if ( aDocumentProperties.hasElements () = TRUE ) then + ErrorMessage ( "Der NameConatiner sollte eigentlich leer sein, enthaelt initial aber schon Elemente!?" ) + goto Test_NormalUse_XNameContainer_Error + end if + + ' Zunaechst werden mehrere Elemente in den NameContainer eingefuegt. + sItemName_1$ = "Item 1" + sItemName_2$ = "Item 2" + sItemName_3$ = "Item 3" + sItemName_4$ = "Item 4" + sItemName_5$ = "Item 5" + + sFirstValue_1$ = "Value 1" + sFirstValue_2$ = "Value 2" + sFirstValue_3$ = "Value 3" + sFirstValue_4$ = "Value 4" + sFirstValue_5$ = "Value 5" + + aDocumentProperties.insertByName ( sItemName_1$, sFirstValue_1$ ) + aDocumentProperties.insertByName ( sItemName_2$, sFirstValue_2$ ) + aDocumentProperties.insertByName ( sItemName_3$, sFirstValue_3$ ) + aDocumentProperties.insertByName ( sItemName_4$, sFirstValue_4$ ) + aDocumentProperties.insertByName ( sItemName_5$, sFirstValue_5$ ) + + ' Zur Kontrolle die Werte ausgeben. (Nur wichtig, wenn geloggt wird!) + ' Dabei wird die Methode "getElementNames()" gleich implizit mitgetestet! + ShowNameContainer ( aDocumentProperties ) + + ' Aber auch die Anzahl kontrollieren. + ' (Hier wird eine eigene BASIC-Hilfsfunktion verwendet! keine Interface-Methode) + if ( getNameContainerCount ( aDocumentProperties ) <> 5 ) then + ErrorMessage ( "insertByName() ... Fehler (Der NameConatiner enthaelt nicht die eingefuegten 5 Elemente!)" ) + goto Test_NormalUse_XNameContainer_Error + end if + + ' Nun noch feststellen, ob die 5 denn auch tatsaechlich vorhanden sind. + if ( aDocumentProperties.hasByName ( sItemName_1$ ) = FALSE ) then + ErrorMessage ( "hasByName() ... Fehler [Element 1 nicht vorhanden!?]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( aDocumentProperties.hasByName ( sItemName_2$ ) = FALSE ) then + ErrorMessage ( "hasByName() ... Fehler [Element 2 nicht vorhanden!?]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( aDocumentProperties.hasByName ( sItemName_3$ ) = FALSE ) then + ErrorMessage ( "hasByName() ... Fehler [Element 3 nicht vorhanden!?]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( aDocumentProperties.hasByName ( sItemName_4$ ) = FALSE ) then + ErrorMessage ( "hasByName() ... Fehler [Element 4 nicht vorhanden!?]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( aDocumentProperties.hasByName ( sItemName_5$ ) = FALSE ) then + ErrorMessage ( "hasByName() ... Fehler [Element 5 nicht vorhanden!?]" ) + goto Test_NormalUse_XNameContainer_Error + end if + + ' Dann die Werte wieder auslesen. + sCompareValue_1$ = aDocumentProperties.getByName ( sItemName_1$ ) + sCompareValue_2$ = aDocumentProperties.getByName ( sItemName_2$ ) + sCompareValue_3$ = aDocumentProperties.getByName ( sItemName_3$ ) + sCompareValue_4$ = aDocumentProperties.getByName ( sItemName_4$ ) + sCompareValue_5$ = aDocumentProperties.getByName ( sItemName_5$ ) + + ' Zum Vergleich die Werte ausgeben. (Nur wichtig, wenn geloggt wird!) + ShowNameContainer ( aDocumentProperties ) + + ' Dann die Werte automatisch vergleichen! + if ( CompareOWString ( sFirstValue_1$, sCompareValue_1$ ) = cDifferent ) then + ErrorMessage ( "getByName() ... Fehler [Element 1 fehlerhaft]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( CompareOWString ( sFirstValue_2$, sCompareValue_2$ ) = cDifferent ) then + ErrorMessage ( "getByName() ... Fehler [Element 2 fehlerhaft]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( CompareOWString ( sFirstValue_3$, sCompareValue_3$ ) = cDifferent ) then + ErrorMessage ( "getByName() ... Fehler [Element 3 fehlerhaft]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( CompareOWString ( sFirstValue_4$, sCompareValue_4$ ) = cDifferent ) then + ErrorMessage ( "getByName() ... Fehler [Element 4 fehlerhaft]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( CompareOWString ( sFirstValue_5$, sCompareValue_5$ ) = cDifferent ) then + ErrorMessage ( "getByName() ... Fehler [Element 5 fehlerhaft]" ) + goto Test_NormalUse_XNameContainer_Error + end if + + InfoMessage ( "getByName() ... OK" ) + + ' Jetzt wird versucht einige der Elemente in ihrem Wert zu veraendern. + sNewValue_1$ = "NewValue 1" + sNewValue_2$ = "NewValue 2" + sNewValue_3$ = "NewValue 3" + sNewValue_4$ = "NewValue 4" + sNewValue_5$ = "NewValue 5" + + aDocumentProperties.replaceByName ( sItemName_1$, sNewValue_1$ ) + aDocumentProperties.replaceByName ( sItemName_2$, sNewValue_2$ ) + aDocumentProperties.replaceByName ( sItemName_3$, sNewValue_3$ ) + aDocumentProperties.replaceByName ( sItemName_4$, sNewValue_4$ ) + aDocumentProperties.replaceByName ( sItemName_5$, sNewValue_5$ ) + + ' Zur Kontrolle die Werte ausgeben. (Nur wichtig, wenn geloggt wird!) + ShowNameContainer ( aDocumentProperties ) + + ' Dann die Werte wieder auslesen. + sCompareValue_1$ = aDocumentProperties.getByName ( sItemName_1$ ) + sCompareValue_2$ = aDocumentProperties.getByName ( sItemName_2$ ) + sCompareValue_3$ = aDocumentProperties.getByName ( sItemName_3$ ) + sCompareValue_4$ = aDocumentProperties.getByName ( sItemName_4$ ) + sCompareValue_5$ = aDocumentProperties.getByName ( sItemName_5$ ) + + ' Zum Vergleich die Werte ausgeben. (Nur wichtig, wenn geloggt wird!) + ShowNameContainer ( aDocumentProperties ) + + ' Dann die Werte automatisch vergleichen! + if ( CompareOWString ( sNewValue_1$, sCompareValue_1$ ) = cDifferent ) then + ErrorMessage ( "replaceByName() ... Fehler [Element 1 fehlerhaft]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( CompareOWString ( sNewValue_2$, sCompareValue_2$ ) = cDifferent ) then + ErrorMessage ( "replaceByName() ... Fehler [Element 2 fehlerhaft]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( CompareOWString ( sNewValue_3$, sCompareValue_3$ ) = cDifferent ) then + ErrorMessage ( "replaceByName() ... Fehler [Element 3 fehlerhaft]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( CompareOWString ( sNewValue_4$, sCompareValue_4$ ) = cDifferent ) then + ErrorMessage ( "replaceByName() ... Fehler [Element 4 fehlerhaft]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( CompareOWString ( sNewValue_5$, sCompareValue_5$ ) = cDifferent ) then + ErrorMessage ( "replaceByName() ... Fehler [Element 5 fehlerhaft]" ) + goto Test_NormalUse_XNameContainer_Error + end if + + InfoMessage ( "replaceByName() ... OK" ) + + ' Hier sollen einige der 5 Eintraege geloescht werden. + aDocumentProperties.removeByName ( sItemName_1$ ) + aDocumentProperties.removeByName ( sItemName_3$ ) + + ' Dann wieder die Anzahl kontrollieren. + ' (Hier wird eine eigene BASIC-Hilfsfunktion verwendet! keine Interface-Methode) + if ( getNameContainerCount ( aDocumentProperties ) <> 3 ) then + ErrorMessage ( "removeByName() ... Fehler (Der NameConatiner enthaelt nicht die erwarteten 3 Elemente!)" ) + goto Test_NormalUse_XNameContainer_Error + end if + + ' Nun noch feststellen, ob die restlichen 3 denn auch tatsaechlich die richtigen sind. + if ( aDocumentProperties.hasByName ( sItemName_2$ ) = FALSE ) then + ErrorMessage ( "removeByName() ... Fehler [Element 2 nicht vorhanden!?]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( aDocumentProperties.hasByName ( sItemName_4$ ) = FALSE ) then + ErrorMessage ( "removeByName() ... Fehler [Element 4 nicht vorhanden!?]" ) + goto Test_NormalUse_XNameContainer_Error + elseif ( aDocumentProperties.hasByName ( sItemName_5$ ) = FALSE ) then + ErrorMessage ( "removeByName() ... Fehler [Element 5 nicht vorhanden!?]" ) + goto Test_NormalUse_XNameContainer_Error + end if + + ' Zur Kontrolle die Werte nochmals ausgeben. (Nur wichtig, wenn geloggt wird!) + ShowNameContainer ( aDocumentProperties ) + + InfoMessage ( "removeByName() ... OK" ) + + ' Der Test war erfolgreich! Meldung ausgeben und zurueck zm Aufrufer. + ' Ausschalten der Fehlerbehandlung + on Error goto 0 + ' Meldung ausgeben + InfoMessage ( "Test_NormalUse_XNameContainer ... [ende]" ) + ' Status setzen + Test_NormalUse_XNameContainer = cOK + ' Und Funktion beenden + Exit Function + +' Es ist ein unerwartete Fehler aufgetreten! (Exception ...) +' Meldung ausgeben und mit Fehler zurueckkehren. +Test_NormalUse_XNameContainer_Error: + ' Ausschalten der Fehlerbehandlung + on Error goto 0 + ' Meldung ausgeben + ErrorMessage ( "Test_NormalUse_XNameContainer ... [Error]" ) + ' und Fehlerstatus setzen + Test_NormalUse_XNameContainer = cError + ' Abbruch der Funktion erzwingen! + Exit Function + +End Function + +'---------------------------------------------------------------------------- +' Testmethode: Testen des unterstuetzten Interfaces "XPersist" unter normalen Bedingungen +' +' Returnwert = cOK ; wenn der Test erfolgreich war +' Returnwert = cError ; wenn sich das Objekt nicht korrekt verhalten hat +'---------------------------------------------------------------------------- +Function Test_NormalUse_XPersist ( aDocumentProperties ) as Boolean + + ' Einschalten der Fehlerbehandlung, um Exceptions oder aehnliches abzufangen! + on Error goto Test_NormalUse_XPersist_Error + + InfoMessage ( "Test_NormalUse_XPersist ... [start]" ) + + ' Laden der Properties aus einer Datei + aDocumentProperties.read ( cTestPath + "TestDebug_in.sdw" ) + + ' Zur Kontrolle anzeigen + ShowProperties ( aDocumentProperties ) + + ' Speichern der Properties in einer neuen Datei + aDocumentProperties.write ( cTestPath + "TestDebug_Out.sdw" ) + aDocumentProperties.read ( cTestPath + "TestDebug_Out.sdw" ) + + ' Zur Kontrolle anzeigen + ShowProperties ( aDocumentProperties ) + + ' Der Test war erfolgreich! Meldung ausgeben und zurueck zm Aufrufer. + ' Ausschalten der Fehlerbehandlung + on Error goto 0 + ' Meldung ausgeben + InfoMessage ( "Test_NormalUse_XPersist ... [ende]" ) + ' Status setzen + Test_NormalUse_XPersist = cOK + ' Und Funktion beenden + Exit Function + +' Es ist ein unerwartete Fehler aufgetreten! (Exception ...) +' Meldung ausgeben und mit Fehler zurueckkehren. +Test_NormalUse_XPersist_Error: + ' Ausschalten der Fehlerbehandlung + on Error goto 0 + ' Meldung ausgeben + ErrorMessage ( "Test_NormalUse_XPersist ... [Error]" ) + ' und Fehlerstatus setzen + Test_NormalUse_XPersist = cError + ' Abbruch der Funktion erzwingen! + Exit Function + +End Function + +'***************************************************************************************************************** +' Hilfsfunktionen und -methoden +'***************************************************************************************************************** + +'---------------------------------------------------------------------------- +' Hilfsmethode: Oeffnet die LOG-Datei. +'---------------------------------------------------------------------------- +Sub OpenLOG ( sFileName$ ) + if ( bLOGOn = cOn ) then + sLOGFileName$ = sFileName$ + nLOGFileHandle% = FreeFile + open sLOGFileName$ for output as nLOGFileHandle% + end if +End Sub + +'---------------------------------------------------------------------------- +' Hilfsmethode: Schliesst die LOG-Datei. +'---------------------------------------------------------------------------- +Sub CloseLOG + if ( bLOGOn = cOn ) then + close #nLOGFileHandle% + end if +End Sub + +'---------------------------------------------------------------------------- +' Hilfsmethode: Gibt einen Text in einer LOG-Datei aus. +'---------------------------------------------------------------------------- +Sub WriteLOG ( sMessage$ ) + if ( bLOGOn = cOn ) then + Write #nLOGFileHandle% sMessage$ + end if +End Sub + +'---------------------------------------------------------------------------- +' Hilfsmethode: Gibt eine MessageBox mit Fehlertext, Zeilennummer und Warnschild aus. +'---------------------------------------------------------------------------- +Sub ErrorMessage ( sMessage$ ) + ' Entweder in die LOG-Datei schreiben oder eine MessageBox anzeigen. + if ( bLOGOn = cOn ) then + WriteLOG ( sMessage$ ) + else + MsgBox ( sMessage$, 16 ) + end if +End Sub + +'---------------------------------------------------------------------------- +' Hilfsmethode: Gibt eine Hinweisbox aus. +'---------------------------------------------------------------------------- +Sub InfoMessage ( sMessage$ ) + ' Nur was anzeigen, wenn Nutzer es wuenscht! + if ( bShowErrorsOnly = cOff ) then + ' Ansonsten wird entweder in die LOG-Datei geschrieben oder eine MessageBox angezeigt. + if ( bLOGOn = cOn ) then + WriteLOG ( sMessage$ ) + else + MsgBox ( sMessage$, 64 ) + end if + end if +End Sub + +'---------------------------------------------------------------------------- +' Hilfsfunktion: Vergleicht zwei OWString-Werte +' +' Returnwert = cEqual ; wenn Werte identisch sind +' Returnwert = cDifferent ; wenn Werte verschieden sind +'---------------------------------------------------------------------------- +Function CompareOWString ( sOWString_1$, sOWString_2$ ) as Boolean + + if ( sOWString_1$ = sOWString_2$ ) then + CompareOWString = cEqual + else + CompareOWString = cDifferent + end if + +End Function + +'---------------------------------------------------------------------------- +' Hilfsfunktion: Vergleicht zwei DateTime-Strukturen +' +' Returnwert = cEqual ; wenn Werte identisch sind +' Returnwert = cDifferent ; wenn Werte verschieden sind +'---------------------------------------------------------------------------- +Function CompareDateTime ( aDateTime_1, aDateTime_2 ) as Boolean + + if ( aDateTime_1.Day = aDateTime_2.Day and aDateTime_1.Month = aDateTime_2.Month and aDateTime_1.Year = aDateTime_2.Year and aDateTime_1.Hours = aDateTime_1.Hours and aDateTime_1.Minutes = aDateTime_1.Minutes and aDateTime_1.Seconds = aDateTime_1.Seconds and aDateTime_1.HundredthSeconds = aDateTime_1.HundredthSeconds ) then + CompareDateTime = cEqual + else + CompareDateTime = cDifferent + end if + +End Function + +'---------------------------------------------------------------------------- +' Hilfsfunktion: Vergleicht zwei ByteSequence's +' +' Returnwert = cEqual ; wenn Werte identisch sind +' Returnwert = cDifferent ; wenn Werte verschieden sind +'---------------------------------------------------------------------------- +Function CompareByteSequence ( seqByteSequence_1, seqByteSequence_2 ) as Boolean + + ' Wenn beide leer sind, sind sie auch identisch ! + ' Dieser Test mit "IsArray" ist noetig, da bei einem leeren Array die + ' Funktion "UBound" einen Fehler produziert! + if ( IsArray ( seqByteSequence_1 ) = FALSE and IsArray ( seqByteSequence_2 ) = FALSE ) then + CompareByteSequence = cEqual + Exit Function + end if + + ' Wenn jedoch nur eine leer ist, dann sind sie nicht identisch. + if ( IsArray ( seqByteSequence_1 ) = FALSE ) or ( IsArray ( seqByteSequence_2 ) = FALSE ) then + CompareByteSequence = cDifferent + Exit Function + end if + + ' Besorgen der Anzahl der Elemente der Sequences + nElementCount_1% = UBound ( seqByteSequence_1 ) + nElementCount_2% = UBound ( seqByteSequence_2 ) + + ' Wenn diese Anzahl schon verschieden ist, dann ... + if ( nElementCount_1% <> nElementCount_2% ) then + ' ... sind die Sequences wohl verschieden. + CompareByteSequence = cDifferent + ' Die Element brauchen dann nicht mehr verglichen zu werden. + Exit Function + end if + + ' Ansonsten werden die Elemente einzeln miteinander verglichen. + for nCounter%=0 to nElementCount_1% step 1 + ' Wenn auch nur ein paar davon verschieden ist, dann ... + if ( nElementCount_1%(nCounter%) <> nElementCount_2%(nCounter%) ) then + ' ... kann der Vergleich abgebrochen werden! + CompareByteSequence = cDifferent + Exit Function + end if + next nCounter% + + ' Wenn man bis hier gekommen ist, dann sind die Sequences identisch. + CompareByteSequence = cEqual + +End Function + +'---------------------------------------------------------------------------- +' Hilfsfunktion: Vergleicht zwei Int16-Werte +' +' Returnwert = cEqual ; wenn Werte identisch sind +' Returnwert = cDifferent ; wenn Werte verschieden sind +'---------------------------------------------------------------------------- +Function CompareInt16 ( nInt16_1%, nInt16_2% ) as Boolean + + if ( nInt16_1% = nInt16_2% ) then + CompareInt16 = cEqual + else + CompareInt16 = cDifferent + end if + +End Function + +'---------------------------------------------------------------------------- +' Hilfsfunktion: Vergleicht zwei Int32-Werte +' +' Returnwert = cEqual ; wenn Werte identisch sind +' Returnwert = cDifferent ; wenn Werte verschieden sind +'---------------------------------------------------------------------------- +Function CompareInt32 ( nInt32_1&, nInt32_2& ) as Boolean + + if ( nInt32_1& = nInt32_2& ) then + CompareInt32 = cEqual + else + CompareInt32 = cDifferent + end if + +End Function + +'---------------------------------------------------------------------------- +' Hilfsfunktion: Vergleicht zwei Bool-Werte +' +' Returnwert = cEqual ; wenn Werte identisch sind +' Returnwert = cDifferent ; wenn Werte verschieden sind +'---------------------------------------------------------------------------- +Function CompareBool ( bBool_1, bBool_2 ) as Boolean + + if ( bBool_1 = bBool_2 ) then + CompareBool = cEqual + else + CompareBool = cDifferent + end if + +End Function + +'---------------------------------------------------------------------------- +' Hilfsfunktion: Vergleicht die Properties zweier Objekte um Unterschiede festzustellen. +' +' Returnwert = cEqual ; wenn Objekte von den Properties her identisch sind +' Returnwert = cDifferent ; wenn Objekte von den Properties her verschieden sind +'---------------------------------------------------------------------------- +Function CompareDocumentProperties ( aDocumentProperties_1, aDocumentProperties_2 ) as Boolean + + ' Besorgen der Werte und zwischenspeichern (bezogen auf Objekt 1) + sAuthor_1$ = aDocumentProperties_1.getPropertyValue ( "Author" ) + bAutoloadEnabled_1 = aDocumentProperties_1.getPropertyValue ( "AutoloadEnabled" ) + nAutoloadSecs_1% = aDocumentProperties_1.getPropertyValue ( "AutoloadSecs" ) + sAutoLoadURL_1$ = aDocumentProperties_1.getPropertyValue ( "AutoloadURL" ) + sBliendCopiesTo_1$ = aDocumentProperties_1.getPropertyValue ( "BlindCopiesTo" ) + sCopiesTo_1$ = aDocumentProperties_1.getPropertyValue ( "CopiesTo" ) + aCreationDate_1 = aDocumentProperties_1.getPropertyValue ( "CreationDate" ) + sDefaultTarget_1$ = aDocumentProperties_1.getPropertyValue ( "DefaultTarget" ) + sDescription_1$ = aDocumentProperties_1.getPropertyValue ( "Description" ) + nEditingCycles_1% = aDocumentProperties_1.getPropertyValue ( "EditingCycles" ) + nEditingDuration_1& = aDocumentProperties_1.getPropertyValue ( "EditingDuration" ) + seqExtraData_1 = aDocumentProperties_1.getPropertyValue ( "ExtraData" ) + sInReplyTo_1$ = aDocumentProperties_1.getPropertyValue ( "InReplyTo" ) + bIsEncrypted_1 = aDocumentProperties_1.getPropertyValue ( "IsEncrypted" ) + sKeywords_1$ = aDocumentProperties_1.getPropertyValue ( "Keywords" ) + sMIMEType_1$ = aDocumentProperties_1.getPropertyValue ( "MIMEType" ) + sModifiedBy_1$ = aDocumentProperties_1.getPropertyValue ( "ModifiedBy" ) + aModifyDate_1 = aDocumentProperties_1.getPropertyValue ( "ModifyDate" ) + sNewsgroups_1$ = aDocumentProperties_1.getPropertyValue ( "Newsgroups" ) + sOriginal_1$ = aDocumentProperties_1.getPropertyValue ( "Original" ) + bPortableGraphics_1 = aDocumentProperties_1.getPropertyValue ( "PortableGraphics" ) + aPrintDate_1 = aDocumentProperties_1.getPropertyValue ( "PrintDate" ) + sPrintedBy_1$ = aDocumentProperties_1.getPropertyValue ( "PrintedBy" ) + nPriority_1% = aDocumentProperties_1.getPropertyValue ( "Priority" ) + bQueryTemplate_1 = aDocumentProperties_1.getPropertyValue ( "QueryTemplate" ) + sRecipient_1$ = aDocumentProperties_1.getPropertyValue ( "Recipient" ) + sReferences_1$ = aDocumentProperties_1.getPropertyValue ( "References" ) + sReplyTo_1$ = aDocumentProperties_1.getPropertyValue ( "ReplyTo" ) + bSaveGraphicsCompressed_1 = aDocumentProperties_1.getPropertyValue ( "SaveGraphicsCompressed" ) + bSaveOriginalGraphics_1 = aDocumentProperties_1.getPropertyValue ( "SaveOriginalGraphics" ) + bSaveVersionOnClose_1 = aDocumentProperties_1.getPropertyValue ( "SaveVersionOnClose" ) + sTemplate_1$ = aDocumentProperties_1.getPropertyValue ( "Template" ) + bTemplateConfig_1 = aDocumentProperties_1.getPropertyValue ( "TemplateConfig" ) + aTemplateDate_1 = aDocumentProperties_1.getPropertyValue ( "TemplateDate" ) + sTemplateFileName_1$ = aDocumentProperties_1.getPropertyValue ( "TemplateFileName" ) + sTheme_1$ = aDocumentProperties_1.getPropertyValue ( "Theme" ) + sTitle_1$ = aDocumentProperties_1.getPropertyValue ( "Title" ) + bUserData_1 = aDocumentProperties_1.getPropertyValue ( "UserData" ) + + ' Besorgen der Werte und zwischenspeichern (bezogen auf Objekt 2) + sAuthor_2$ = aDocumentProperties_2.getPropertyValue ( "Author" ) + bAutoloadEnabled_2 = aDocumentProperties_2.getPropertyValue ( "AutoloadEnabled" ) + nAutoloadSecs_2% = aDocumentProperties_2.getPropertyValue ( "AutoloadSecs" ) + sAutoLoadURL_2$ = aDocumentProperties_2.getPropertyValue ( "AutoloadURL" ) + sBliendCopiesTo_2$ = aDocumentProperties_2.getPropertyValue ( "BlindCopiesTo" ) + sCopiesTo_2$ = aDocumentProperties_2.getPropertyValue ( "CopiesTo" ) + aCreationDate_2 = aDocumentProperties_2.getPropertyValue ( "CreationDate" ) + sDefaultTarget_2$ = aDocumentProperties_2.getPropertyValue ( "DefaultTarget" ) + sDescription_2$ = aDocumentProperties_2.getPropertyValue ( "Description" ) + nEditingCycles_2% = aDocumentProperties_2.getPropertyValue ( "EditingCycles" ) + nEditingDuration_2& = aDocumentProperties_2.getPropertyValue ( "EditingDuration" ) + seqExtraData_2 = aDocumentProperties_2.getPropertyValue ( "ExtraData" ) + sInReplyTo_2$ = aDocumentProperties_2.getPropertyValue ( "InReplyTo" ) + bIsEncrypted_2 = aDocumentProperties_2.getPropertyValue ( "IsEncrypted" ) + sKeywords_2$ = aDocumentProperties_2.getPropertyValue ( "Keywords" ) + sMIMEType_2$ = aDocumentProperties_2.getPropertyValue ( "MIMEType" ) + sModifiedBy_2$ = aDocumentProperties_2.getPropertyValue ( "ModifiedBy" ) + aModifyDate_2 = aDocumentProperties_2.getPropertyValue ( "ModifyDate" ) + sNewsgroups_2$ = aDocumentProperties_2.getPropertyValue ( "Newsgroups" ) + sOriginal_2$ = aDocumentProperties_2.getPropertyValue ( "Original" ) + bPortableGraphics_2 = aDocumentProperties_2.getPropertyValue ( "PortableGraphics" ) + aPrintDate_2 = aDocumentProperties_2.getPropertyValue ( "PrintDate" ) + sPrintedBy_2$ = aDocumentProperties_2.getPropertyValue ( "PrintedBy" ) + nPriority_2% = aDocumentProperties_2.getPropertyValue ( "Priority" ) + bQueryTemplate_2 = aDocumentProperties_2.getPropertyValue ( "QueryTemplate" ) + sRecipient_2$ = aDocumentProperties_2.getPropertyValue ( "Recipient" ) + sReferences_2$ = aDocumentProperties_2.getPropertyValue ( "References" ) + sReplyTo_2$ = aDocumentProperties_2.getPropertyValue ( "ReplyTo" ) + bSaveGraphicsCompressed_2 = aDocumentProperties_2.getPropertyValue ( "SaveGraphicsCompressed" ) + bSaveOriginalGraphics_2 = aDocumentProperties_2.getPropertyValue ( "SaveOriginalGraphics" ) + bSaveVersionOnClose_2 = aDocumentProperties_2.getPropertyValue ( "SaveVersionOnClose" ) + sTemplate_2$ = aDocumentProperties_2.getPropertyValue ( "Template" ) + bTemplateConfig_2 = aDocumentProperties_2.getPropertyValue ( "TemplateConfig" ) + aTemplateDate_2 = aDocumentProperties_2.getPropertyValue ( "TemplateDate" ) + sTemplateFileName_2$ = aDocumentProperties_2.getPropertyValue ( "TemplateFileName" ) + sTheme_2$ = aDocumentProperties_2.getPropertyValue ( "Theme" ) + sTitle_2$ = aDocumentProperties_2.getPropertyValue ( "Title" ) + bUserData_2 = aDocumentProperties_2.getPropertyValue ( "UserData" ) + + ' Als erwarteten Zielwert schon mal "Properties identisch" annehmen!!! + ' Fr den Fall, das nur eine diesen Anspruch nicht erfllt, wird der Wert einfach zurckgesetzt. + ' Von da bleibt der neue Wert bestehen und zeigt an, da sich mindestens eine Property gendert hat! + CompareDocumentProperties = cEqual + + ' Dann die Werte vergleichen + if ( CompareOWString ( sAuthor_1$, sAuthor_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareBool ( bAutoloadEnabled_1, bAutoloadEnabled_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareInt16 ( nAutoloadSecs_1%, nAutoloadSecs_2% ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sAutoLoadURL_1$, sAutoLoadURL_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sBliendCopiesTo_1$, sBliendCopiesTo_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sCopiesTo_1$, sCopiesTo_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareDateTime ( aCreationDate_1, aCreationDate_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sDefaultTarget_1$, sDefaultTarget_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sDescription_1$, sDescription_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareInt16 ( nEditingCycles_1%, nEditingCycles_2% ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareInt32 ( nEditingDuration_1&, nEditingDuration_2& ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareByteSequence( seqExtraData_1, seqExtraData_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sInReplyTo_1$, sInReplyTo_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareBool ( bIsEncrypted_1, bIsEncrypted_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sKeywords_1$, sKeywords_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sMIMEType_1$, sMIMEType_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sModifiedBy_1$, sModifiedBy_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareDateTime ( aModifyDate_1, aModifyDate_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sNewsgroups_1$, sNewsgroups_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sOriginal_1$, sOriginal_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareBool ( bPortableGraphics_1, bPortableGraphics_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareDateTime ( aPrintDate_1, aPrintDate_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sPrintedBy_1$, sPrintedBy_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareInt16 ( nPriority_1%, nPriority_2% ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareBool ( bQueryTemplate_1, bQueryTemplate_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sRecipient_1$, sRecipient_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sReferences_1$, sReferences_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sReplyTo_1$, sReplyTo_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareBool ( bSaveGraphicsCompressed_1, bSaveGraphicsCompressed_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareBool ( bSaveOriginalGraphics_1, bSaveOriginalGraphics_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareBool ( bSaveVersionOnClose_1, bSaveVersionOnClose_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sTemplate_1$, sTemplate_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareBool ( bTemplateConfig_1, bTemplateConfig_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareDateTime ( aTemplateDate_1, aTemplateDate_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sTemplateFileName_1$, sTemplateFileName_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sTheme_1$, sTheme_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareOWString ( sTitle_1$, sTitle_2$ ) = cDifferent ) then + CompareDocumentProperties = cDifferent + elseif ( CompareBool ( bUserData_1, bUserData_2 ) = cDifferent ) then + CompareDocumentProperties = cDifferent + end if + +End Function + +'---------------------------------------------------------------------------- +' Hilfsfunktion: Wandelt eine Struktur des Types DateTime in einen formatierten String um +'---------------------------------------------------------------------------- +Function DateTime2String ( aDateTime ) as String + + stempString$ = "" + stempString$ = stempString$ + aDateTime.Day + "." + stempString$ = stempString$ + aDateTime.Month + "." + stempString$ = stempString$ + aDateTime.Year + " - " + stempString$ = stempString$ + aDateTime.Hours + ":" + stempString$ = stempString$ + aDateTime.Minutes + ":" + stempString$ = stempString$ + aDateTime.Seconds + ":" + stempString$ = stempString$ + aDateTime.HundredthSeconds + " Uhr" + + DateTime2String = stempString$ + +End Function + +'---------------------------------------------------------------------------- +' Hilfsfunktion: Wandelt eine Sequence von Bytes in einen formatierten String um +'---------------------------------------------------------------------------- +Function ByteSequence2String ( seqByteSequence ) as String + + nElementCount% = UBound ( seqByteSequence() ) + + if ( nElementCount% < 1 ) then + stempString$ = "leer" + else + stempString$ = "{" + for nCounter%=0 to nElementCount% step 1 + stempString$ = stempString$ + seqByteSequence(nCounter%) + next nCounter% + stempString$ = stempString$ + "}" + end if + + ByteSequence2String = stempString$ + +End Function + +'---------------------------------------------------------------------------- +' Hilfsmethode: Zeigt die aktuellen Werte ALLER Properties an +'---------------------------------------------------------------------------- +Sub ShowProperties ( aDocumentProperties ) + + ' Besorgen der Werte und zwischenspeichern + sAuthor$ = aDocumentProperties.getPropertyValue ( "Author" ) + bAutoloadEnabled = aDocumentProperties.getPropertyValue ( "AutoloadEnabled" ) + nAutoloadSecs% = aDocumentProperties.getPropertyValue ( "AutoloadSecs" ) + sAutoLoadURL$ = aDocumentProperties.getPropertyValue ( "AutoloadURL" ) + sBliendCopiesTo$ = aDocumentProperties.getPropertyValue ( "BlindCopiesTo" ) + sCopiesTo$ = aDocumentProperties.getPropertyValue ( "CopiesTo" ) + dCreationDate = aDocumentProperties.getPropertyValue ( "CreationDate" ) + sDefaultTarget$ = aDocumentProperties.getPropertyValue ( "DefaultTarget" ) + sDescription$ = aDocumentProperties.getPropertyValue ( "Description" ) + nEditingCycles% = aDocumentProperties.getPropertyValue ( "EditingCycles" ) + nEditingDuration& = aDocumentProperties.getPropertyValue ( "EditingDuration" ) + seqExtraData = aDocumentProperties.getPropertyValue ( "ExtraData" ) + sInReplyTo$ = aDocumentProperties.getPropertyValue ( "InReplyTo" ) + bIsEncrypted = aDocumentProperties.getPropertyValue ( "IsEncrypted" ) + sKeywords$ = aDocumentProperties.getPropertyValue ( "Keywords" ) + sMIMEType$ = aDocumentProperties.getPropertyValue ( "MIMEType" ) + sModifiedBy$ = aDocumentProperties.getPropertyValue ( "ModifiedBy" ) + dModifyDate = aDocumentProperties.getPropertyValue ( "ModifyDate" ) + sNewsgroups$ = aDocumentProperties.getPropertyValue ( "Newsgroups" ) + sOriginal$ = aDocumentProperties.getPropertyValue ( "Original" ) + bPortableGraphics = aDocumentProperties.getPropertyValue ( "PortableGraphics" ) + dPrintDate = aDocumentProperties.getPropertyValue ( "PrintDate" ) + sPrintedBy$ = aDocumentProperties.getPropertyValue ( "PrintedBy" ) + nPriority% = aDocumentProperties.getPropertyValue ( "Priority" ) + bQueryTemplate = aDocumentProperties.getPropertyValue ( "QueryTemplate" ) + sRecipient$ = aDocumentProperties.getPropertyValue ( "Recipient" ) + sReferences$ = aDocumentProperties.getPropertyValue ( "References" ) + sReplyTo$ = aDocumentProperties.getPropertyValue ( "ReplyTo" ) + bSaveGraphicsCompressed = aDocumentProperties.getPropertyValue ( "SaveGraphicsCompressed" ) + bSaveOriginalGraphics = aDocumentProperties.getPropertyValue ( "SaveOriginalGraphics" ) + bSaveVersionOnClose = aDocumentProperties.getPropertyValue ( "SaveVersionOnClose" ) + sTemplate$ = aDocumentProperties.getPropertyValue ( "Template" ) + bTemplateConfig = aDocumentProperties.getPropertyValue ( "TemplateConfig" ) + dTemplateDate = aDocumentProperties.getPropertyValue ( "TemplateDate" ) + sTemplateFileName$ = aDocumentProperties.getPropertyValue ( "TemplateFileName" ) + sTheme$ = aDocumentProperties.getPropertyValue ( "Theme" ) + sTitle$ = aDocumentProperties.getPropertyValue ( "Title" ) + bUserData = aDocumentProperties.getPropertyValue ( "UserData" ) + + ' Eine Zeichenkette zusammenbasteln, welche die Werte formatiert darstellt. + sOutLine$ = "[OWString]" + chr$(9) + "Author" + chr$(9) + "= {" + chr$(9) + sAuthor$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Bool]" + chr$(9) + "AutoloadEnabled" + chr$(9) + "= {" + chr$(9) + bAutoloadEnabled + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Int16]" + chr$(9) + "AutoloadSecs" + chr$(9) + "= {" + chr$(9) + nAutoloadSecs% + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "AutoLoadURL" + chr$(9) + "= {" + chr$(9) + sAutoLoadURL$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "BliendCopiesTo" + chr$(9) + "= {" + chr$(9) + sBliendCopiesTo$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "CopiesTo" + chr$(9) + "= {" + chr$(9) + sCopiesTo$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[DateTime]" + chr$(9) + "CreationDate" + chr$(9) + "= {" + chr$(9) + DateTime2String(dCreationDate) + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "DefaultTarget" + chr$(9) + "= {" + chr$(9) + sDefaultTarget$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "Description" + chr$(9) + "= {" + chr$(9) + sDescription$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Int16]" + chr$(9) + "EditingCycles" + chr$(9) + "= {" + chr$(9) + nEditingCycles% + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Int32]" + chr$(9) + "EditingDuration" + chr$(9) + "= {" + chr$(9) + nEditingDuration& + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[Sequence<Byte>]" + chr$(9) + "ExtraData" + chr$(9) + "= {" + chr$(9) + ByteSequence2String(seqExtraData) + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "InReplyTo" + chr$(9) + "= {" + chr$(9) + sInReplyTo$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Bool]" + chr$(9) + "IsEncrypted" + chr$(9) + "= {" + chr$(9) + bIsEncrypted + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "Keywords" + chr$(9) + "= {" + chr$(9) + sKeywords$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "MIMEType" + chr$(9) + "= {" + chr$(9) + sMIMEType$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "ModifiedBy" + chr$(9) + "= {" + chr$(9) + sModifiedBy$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[DateTime]" + chr$(9) + "ModifyDate" + chr$(9) + "= {" + chr$(9) + DateTime2String(dModifyDate) + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "Newsgroups" + chr$(9) + "= {" + chr$(9) + sNewsgroups$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "Original" + chr$(9) + "= {" + chr$(9) + sOriginal$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Bool]" + chr$(9) + "PortableGraphics" + chr$(9) + "= {" + chr$(9) + bPortableGraphics + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[DateTime]" + chr$(9) + "PrintDate" + chr$(9) + "= {" + chr$(9) + DateTime2String(dPrintDate) + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "PrintedBy" + chr$(9) + "= {" + chr$(9) + sPrintedBy$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Int16]" + chr$(9) + "Priority" + chr$(9) + "= {" + chr$(9) + nPriority% + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Bool]" + chr$(9) + "QueryTemplate" + chr$(9) + "= {" + chr$(9) + bQueryTemplate + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "Recipient" + chr$(9) + "= {" + chr$(9) + sRecipient$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "References" + chr$(9) + "= {" + chr$(9) + sReferences$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "ReplyTo" + chr$(9) + "= {" + chr$(9) + sReplyTo$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Bool]" + chr$(9) + "SaveGraphicsCompressed" + chr$(9) + "= {" + chr$(9) + bSaveGraphicsCompressed + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Bool]" + chr$(9) + "SaveOriginalGraphics" + chr$(9) + "= {" + chr$(9) + bSaveOriginalGraphics + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Bool]" + chr$(9) + "SaveVersionOnClose" + chr$(9) + "= {" + chr$(9) + bSaveVersionOnClose + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "Template" + chr$(9) + "= {" + chr$(9) + sTemplate$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Bool]" + chr$(9) + "TemplateConfig" + chr$(9) + "= {" + chr$(9) + bTemplateConfig + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[DateTime]" + chr$(9) + "TemplateDate" + chr$(9) + "= {" + chr$(9) + DateTime2String(dTemplateDate) + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "TemplateFileName" + chr$(9) + "= {" + chr$(9) + sTemplateFileName$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "Theme" + chr$(9) + "= {" + chr$(9) + sTheme$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[OWString]" + chr$(9) + "Title" + chr$(9) + "= {" + chr$(9) + sTitle$ + "}" + chr$(13) + sOutLine$ = sOutLine$ + "[sal_Bool]" + chr$(9) + "UserData" + chr$(9) + "= {" + chr$(9) + bUserData + "}" + + ' Ausgabe der formatierten Zeichenkette + InfoMessage ( sOutLine$ ) +End Sub + +'---------------------------------------------------------------------------- +' Hilfsmethode: Zeigt die aktuellen Elemente des NameContainers an. +'---------------------------------------------------------------------------- +Sub ShowNameContainer ( aDocumentProperties ) + + if ( aDocumentProperties.hasElements () = FALSE ) then + InfoMessage ( "Keine Elemente im NameContainer enthalten." ) + Exit Sub + end if + + aNameField = aDocumentProperties.getElementNames () + if ( IsArray ( aNameField ) = FALSE ) then + ErrorMessage ( "getElementNames() .... Fehler (Es konnte keine Sequence bestimmt werden!)" ) + Exit Sub + end if + nElementCount% = UBound ( aNameField () ) + + stempString$ = "" + for nCounter%=0 to nElementCount% step 1 + stempString$ = "[" + nCounter% + "]" + stempString$ = stempString$ + chr$(9) + aNameField(nCounter%) + stempString$ = stempString$ + chr$(9) + "=" + stempString$ = stempString$ + chr$(9) + aDocumentProperties.getByName ( aNameField(nCounter%) ) + stempString$ = stempString$ + chr$(13) + next nCounter% + + InfoMessage ( stempString$ ) + +End Sub + +'---------------------------------------------------------------------------- +' Hilfsfunktion: Ermittelt die Anzahl der im NameContainer enthaltenen Elemente. +' +' Returnwert = Anzahl der Elemente +'---------------------------------------------------------------------------- +Function getNameContainerCount ( aDocumentProperties ) as Long + + if ( aDocumentProperties.hasElements () = FALSE ) then + getNameContainerCount = 0 + Exit Function + end if + + aNameField = aDocumentProperties.getElementNames () + nElementCount% = UBound ( aNameField () ) + + ' Da die Zaehlung bei 0 beginnt, und der ermittelte Wert die obere Grenze darstellt, + ' muss hier eine 1 draufgeschlagen werden. + getNameContainerCount = nElementCount% + 1 + +End Function
\ No newline at end of file diff --git a/framework/test/test_filterregistration.bas b/framework/test/test_filterregistration.bas new file mode 100644 index 000000000000..47a19acfc36d --- /dev/null +++ b/framework/test/test_filterregistration.bas @@ -0,0 +1,95 @@ +rem _______________________________________________________________________________________________________________________________________ +rem Test script for registering or changing filter of our configuration. +rem _______________________________________________________________________________________________________________________________________ + +Sub Main + Dim xFiterFactory as object + Dim sFilterName as string + + xFilterFactory = createUNOService("com.sun.star.document.FilterFactory") + + sFilterName = "MeinFilter_5" + +rem AddFilter ( xFilterFactory, sFilterName ) + ReadFilter ( xFilterFactory, sFilterName ) +rem QueryFilters ( xFilterFactory ) + + xFilterFactory.flush() + +End Sub + +rem ************************************************************************************************************* +Sub AddFilter( xFilterFactory, sFilterName ) + Dim lProperties(8) as new com.sun.star.beans.PropertyValue + Dim lUserData (1) as string + + lUserData(1) = "Userdata von TestFilter" + + lProperties(0).Name = "Type" + lProperties(0).Value = "bmp_MS_Windows" + + lProperties(1).Name = "UIName" + lProperties(1).Value = sFilterName + + lProperties(2).Name = "DocumentService" + lProperties(2).Value = "com.sun.star.text.TextDocument" + + lProperties(3).Name = "FilterService" + lProperties(3).Value = "com.sun.star.comp.framework.TestFilter" + + lProperties(4).Name = "Flags" + lProperties(4).Value = 256 + + lProperties(5).Name = "UserData" + lProperties(5).Value = lUserData() + + lProperties(6).Name = "FileFormatVersion" + lProperties(6).Value = 0 + + lProperties(7).Name = "TemplateName" + lProperties(7).Value = "" + + xFilterFactory.insertByName( sFilterName, lProperties() ) +End Sub + +rem ************************************************************************************************************* +Sub ReadFilter( xFilterFactory, sFilterName ) +rem Dim lFilters() as com.sun.star.beans.PropertyValue + Dim sOut as string + Dim nCount as integer + + lProperties = xFilterFactory.getByName( sFilterName ) + + sOut = "" + for nCount=0 to ubound(lProperties()) step 1 + sOut = sOut + lProperties(nCount).Name + sOut = sOut + " = " +rem #85829# Disable follow if statement to produce bug! +rem if( lProperties(nCount).Name <> "UserData" ) then + sOut = sOut + lProperties(nCount).Value +rem endif + sOut = sOut + chr(13) + next nCount + + msgbox sOut +End Sub + +rem ************************************************************************************************************* +Sub QueryFilters( xFilterFactory ) + Dim lFilters() as string + Dim sQuery as string + Dim sOut as string + Dim nCount as integer + + sQuery = "_filterquery_defaultfilter" +rem sQuery = "_filterquery_textdocument_withdefault" + + lFilters() = xFilterFactory.getByName( sQuery ) + + sOut = "" + for nCount=0 to ubound( lFilters() ) + sOut = sOut + lFilters(nCount) + chr(13) + next nCount + + msgbox sOut +End Sub diff --git a/framework/test/test_statusindicatorfactory.bas b/framework/test/test_statusindicatorfactory.bas new file mode 100644 index 000000000000..e82590fb7678 --- /dev/null +++ b/framework/test/test_statusindicatorfactory.bas @@ -0,0 +1,69 @@ +Sub Main + + rem Get reference to current active frame. Most time this will be + rem the basic ide by himself. + xTestFrame = StarDesktop.ActiveFrame + + rem Create more then one indicator objects for this frame. + xIndicator1 = xTestFrame.createStatusIndicator() + xIndicator2 = xTestFrame.createStatusIndicator() + xIndicator3 = xTestFrame.createStatusIndicator() + + rem Check status of creation. No null references should be detected. + if( isNull(xIndicator1)=TRUE ) or ( isNull(xIndicator2)=TRUE ) or ( isNull(xIndicator3)=TRUE ) then + msgbox "Error: Could not create status indicators!" + exit Sub + endif + + rem Start working for indicator 1 and 2. + rem The window should NOT be shown! + xIndicator1.start( "Indicator 1:", 100 ) + xIndicator2.start( "Indicator 2:", 200 ) + msgbox "Indicator 1 and 2 was started ... the window should NOT be shown!" + + rem Start working for indicator 3. + rem The window should be shown! It's the most active one. + xIndicator3.start( "Indicator 3:", 300 ) + msgbox "Indicator 3 was started ... the window should be shown!" + + rem Set different values and texts for indicator 1 and 2. + rem These values are not visible. + xIndicator1.setValue( 25 ) + xIndicator2.setValue( 50 ) + + rem Work with indicator 3. + rem If working finished automaticly indicator 2 is reactivated. + i = 0 + while i<300 + xIndicator3.setText( "Indicator 3: Range=300 Value=" + i ) + xIndicator3.setValue( i ) + i = i+10 + wait( 1 ) + wend + + rem Delete indicator 2 before you deactivate number 3! + rem The next automaticly activated indicator will be the number 1. + xIndicator2.end + msgbox "Indicator 3 will be destroyed. Indicator 2 was deleted ... number 1 must reactivated automaticly!" + xIndicator3.end + + rem Work with indicator 1. + rem If working finished automaticly the window will be destroyed. + i = 25 + while i<100 + xIndicator1.setText( "Indicator 1: Range=100 Value=" + i ) + xIndicator1.setValue( i ) + i = i+10 + wait( 1 ) + wend + xIndicator1.setText( "Indicator 1: ... reset values to defaults" ) + wait( 1000 ) + xIndicator1.reset + xIndicator1.setText( "Indicator 1: ... set 50 % for progress" ) + wait( 1000 ) + xIndicator1.setValue( 50 ) + msgbox "Indicator 1 will be destroyed. Indicator window must destroyed automaticly!" + xIndicator1.end + + msgbox "Test for status indicator finished successful!" +End Sub diff --git a/framework/test/threadtest.cxx b/framework/test/threadtest.cxx new file mode 100644 index 000000000000..78690d265058 --- /dev/null +++ b/framework/test/threadtest.cxx @@ -0,0 +1,805 @@ +/************************************************************************* + * + * $RCSfile: threadtest.cxx,v $ + * + * $Revision: 1.6 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:22:03 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//_________________________________________________________________________________________________________________ +// my own includes +//_________________________________________________________________________________________________________________ + +#ifndef __FRAMEWORK_MACROS_GENERIC_HXX_ +#include <macros/generic.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_RESETABLEGUARD_HXX_ +#include <threadhelp/resetableguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_TRANSACTIONGUARD_HXX_ +#include <threadhelp/transactionguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_RWLOCKBASE_HXX_ +#include <threadhelp/rwlockbase.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_TRANSACTIONBASE_HXX_ +#include <threadhelp/transactionbase.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +//_________________________________________________________________________________________________________________ +// interface includes +//_________________________________________________________________________________________________________________ + +//_________________________________________________________________________________________________________________ +// other includes +//_________________________________________________________________________________________________________________ + +#ifndef _RTL_RANDOM_H_ +#include <rtl/random.h> +#endif + +#ifndef _VOS_PROCESS_HXX_ +#include <vos/process.hxx> +#endif + +#ifndef _VOS_THREAD_HXX_ +#include <vos/thread.hxx> +#endif + +#ifndef _RTL_USTRING_ +#include <rtl/ustring.hxx> +#endif + +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif + +#ifndef _OSL_TIME_H_ +#include <osl/time.h> +#endif + +#ifndef _OSL_INTERLOCK_H_ +#include <osl/interlock.h> +#endif + +#include <vcl/event.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wrkwin.hxx> +#include <vcl/msgbox.hxx> +#include <stdio.h> + +//_________________________________________________________________________________________________________________ +// const +//_________________________________________________________________________________________________________________ + +#define LOGFILE "threadtest.log" +#define STATISTICS_FILE "threadtest_statistic.csv" + +//_________________________________________________________________________________________________________________ +// namespace +//_________________________________________________________________________________________________________________ + +using namespace ::rtl ; +using namespace ::osl ; +using namespace ::vos ; +using namespace ::framework ; + +//_________________________________________________________________________________________________________________ +// defines +//_________________________________________________________________________________________________________________ + +/*---------------- Use follow defines to enable/disable some special features of this little test program! -------*/ + +#define ENABLE_LOG +//#define ENABLE_THREADDELAY +#define ENABLE_REQUESTCOUNT + +/*----------------------------------------------------------------------------------------------------------------*/ + +#ifdef ENABLE_LOG + #define LOG_SETA_START( NA, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ResetableGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] call setA( " ); \ + sLog.append( NA ); \ + sLog.append( " )\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_SETA_END( NA, EREASON, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ResetableGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + if( EREASON == E_NOREASON ) \ + sLog.append( " ] finish setA( " ); \ + else \ + sLog.append( " ] was refused at setA( "); \ + sLog.append( NA ); \ + sLog.append( " )\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_GETA_START( NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ResetableGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] call getA()\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_GETA_END( NRETURN, EREASON, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ResetableGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + if( EREASON == E_NOREASON ) \ + sLog.append( " ] finish getA() with " ); \ + else \ + sLog.append( " ] was refused at getA() with " ); \ + sLog.append( NRETURN ); \ + sLog.append( "\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_WORKA_START( NA, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ResetableGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] call workA( " ); \ + sLog.append( NA ); \ + sLog.append( " )\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_WORKA_END( NRETURN, EREASON, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ResetableGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + if( EREASON == E_NOREASON ) \ + sLog.append( " ] finish workA() with " ); \ + else \ + sLog.append( " ] was refused at workA() with " ); \ + sLog.append( NRETURN ); \ + sLog.append( "\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_INITEXCEPTION( SMETHOD, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ResetableGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] get EInitException from \"" ); \ + sLog.append( SMETHOD ); \ + sLog.append( "\"\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_CLOSEEXCEPTION( SMETHOD, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ResetableGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] get ECloseException from \"" ); \ + sLog.append( SMETHOD ); \ + sLog.append( "\"\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_INIT( NA, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ResetableGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] initialize me with " ); \ + sLog.append( NA ); \ + sLog.append( "\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_CLOSE( NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ResetableGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] close me\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } +#else + #define LOG_SETA_START( NA, NID ) + #define LOG_SETA_END( NA, EREASON, NID ) + #define LOG_GETA_START( NID ) + #define LOG_GETA_END( NRETURN, EREASON, NID ) + #define LOG_WORKA_START( NA, NID ) + #define LOG_WORKA_END( NRETURN, EREASON, NID ) + #define LOG_INITEXCEPTION( SMETHOD, NID ) + #define LOG_CLOSEEXCEPTION( SMETHOD, NID ) + #define LOG_INIT( NA, NID ) + #define LOG_CLOSE( NID ) +#endif + +//_________________________________________________________________________________________________________________ +// declarations +//_________________________________________________________________________________________________________________ + +sal_uInt16 getRandomValue() +{ + // Get new random value for thread-sleep! + // See run() for further informations. + // Always calculate a new random number. + sal_uInt16 nValue; + rtlRandomPool aPool = rtl_random_createPool(); + rtl_random_getBytes ( aPool, &nValue, 2 ); + rtl_random_destroyPool ( aPool ); + return nValue; +} + +/*-************************************************************************************************************//** + @descr This class is used from different threads at the same time. + We start working after calling init() first(!) ... + and finish it by calling close(). It exist two methods for reading/writing an + internal variable "A". Another function workA() do both things at the same time. + All public methods log information in a file if DO_LOG is defined. + + @attention Our public base class FaiRWLockBase is a struct with a RWLock as member. + This member can be used by guards to safe access at internal variables + in interface methods. + Another baseclass is the TransactionBase. They support rejection of wrong calls at wrong time. + e.g. calls after closing object! +*//*-*************************************************************************************************************/ + +class ThreadSafeClass : private TransactionBase + , private FairRWLockBase +{ + public: + + ThreadSafeClass (); + ~ThreadSafeClass(); + + // This methods are used from differnt threads + // to test this class. + void init ( sal_Int32 nA , + sal_Int32 nThreadID ); + void close ( sal_Int32 nThreadID ); + void setA ( sal_Int32 nA , + sal_Int32 nThreadID ); + sal_Int32 getA ( sal_Int32 nThreadID ); + sal_Int32 workA ( sal_Int32 nA , + sal_Int32 nThreadID ); + + #ifdef ENABLE_REQUESTCOUNT + // This methods are used for statistics only! + sal_Int32 getReadCount () { return m_nReadCount; } + sal_Int32 getWriteCount() { return m_nWriteCount; } + #endif + + private: + + sal_Int32 m_nA ; /// test member fro reading/writing + + #ifdef ENABLE_LOG + ::osl::Mutex m_aLogMutex ; /// mutex to serialize writing log file! + #endif + + #ifdef ENABLE_REQUESTCOUNT + oslInterlockedCount m_nReadCount ; /// statistic variables to count read/write requests + oslInterlockedCount m_nWriteCount ; + #endif +}; + +//_________________________________________________________________________________________________________________ +ThreadSafeClass::ThreadSafeClass() + : TransactionBase ( ) + , FairRWLockBase ( ) + , m_nA ( 0 ) + #ifdef ENABLE_REQUESTCOUNT + , m_nReadCount ( 0 ) + , m_nWriteCount ( 0 ) + #endif +{ +} + +//_________________________________________________________________________________________________________________ +ThreadSafeClass::~ThreadSafeClass() +{ +} + +//_________________________________________________________________________________________________________________ +void ThreadSafeClass::init( sal_Int32 nA, sal_Int32 nThreadID ) +{ + // Set write lock for setting internal member AND + // protect changing of working mode! + WriteGuard aWriteLock( m_aLock ); + + LOG_INIT( nA, nThreadID ) + + // Look for multiple calls of this method first! + // Use E_SOFTEXCEPTIONS to disable automaticly throwing of exceptions for some working modes. + ERejectReason eReason; + TransactionGuard aTransaction( m_aTransactionManager, E_NOEXCEPTIONS, eReason ); + if( eReason == E_UNINITIALIZED ) + { + // OK, it must be the first call and we are synchronized with all other threads by using the write lock! + // Otherwise (e.g. if working mode == E_WORK) we get a exception and follow lines are never called. + + // We can set our member and change the working mode now. + m_nA = nA; + m_aTransactionManager.setWorkingMode( E_WORK ); + } +} + +//_________________________________________________________________________________________________________________ +void ThreadSafeClass::close( sal_Int32 nThreadID ) +{ + // Make it threadsafe. + // It must be an exclusiv access! => WriteLock! + WriteGuard aWriteLock( m_aLock ); + + LOG_CLOSE( nThreadID ) + + // We must look for multiple calls of this method. + // Try to register this method as a transaction. + // In combination with E_HARDEXCEPTIONS only working mode E_WORK pass this barrier. + ERejectReason eReason; + TransactionGuard aTransaction( m_aTransactionManager, E_NOEXCEPTIONS, eReason ); + if( eReason == E_NOREASON ) + { + // Change working mode to BEFORECLOSE to enable rejection of normal interface calls + // and enable SOFTEXCEPTION mode for some impl- or helper methods! + // Attention: We must stop successful registered transaction first ... + // because setWorkingMode() blocks and wait for all current existing ones! + aTransaction.stop(); + m_aTransactionManager.setWorkingMode( E_BEFORECLOSE ); + + // Now we are alone ... + // All further calls to this object are rejected ... + // (not all ... some special ones can work by using E_SOFTEXCEPTIONS!) + + // Deinitialize all member and set working mode to E_CLOSE. + m_nA = 0; + m_aTransactionManager.setWorkingMode( E_CLOSE ); + } +} + +//_________________________________________________________________________________________________________________ +void ThreadSafeClass::setA( sal_Int32 nA, sal_Int32 nThreadID ) +{ + // Make it threadsafe. + WriteGuard aWriteLock( m_aLock ); + + LOG_SETA_START( nA, nThreadID ) + + // Register this method as a transaction to prevent code against wrong calls + // after close() or before init()! + ERejectReason eReason; + TransactionGuard aTransaction( m_aTransactionManager, E_NOEXCEPTIONS, eReason ); + if( eReason == E_NOREASON ) + { + // This object is ready for working and we have full write access. + // We can work with our member. + m_nA = nA; + #ifdef ENABLE_REQUESTCOUNT + osl_incrementInterlockedCount( &m_nWriteCount ); + #endif + } + LOG_SETA_END( nA, eReason, nThreadID ) +} + +//_________________________________________________________________________________________________________________ +sal_Int32 ThreadSafeClass::getA( sal_Int32 nThreadID ) +{ + // Make it threadsafe. + ReadGuard aReadLock( m_aLock ); + + LOG_GETA_START( nThreadID ) + + // Register this method as a transaction to prevent code against wrong calls + // after close() or before init()! + sal_Int32 nReturn = 0; + ERejectReason eReason; + TransactionGuard aTransaction( m_aTransactionManager, E_NOEXCEPTIONS, eReason ); + if( eReason == E_NOREASON ) + { + // This object is ready for working and we have a read access. + // We can work with our member. + nReturn = m_nA; + #ifdef ENABLE_REQUESTCOUNT + osl_incrementInterlockedCount( &m_nReadCount ); + #endif + } + + LOG_GETA_END( nReturn, eReason, nThreadID ) + return nReturn; +} + +//_________________________________________________________________________________________________________________ +sal_Int32 ThreadSafeClass::workA( sal_Int32 nA , + sal_Int32 nThreadID ) +{ + // This method test the downgrade-mechanism of used lock implementation! + // Make it threadsafe. + WriteGuard aWriteLock( m_aLock ); + + LOG_WORKA_START( nA, nThreadID ) + + // Register this method as a transaction to prevent code against wrong calls + // after close() or before init()! + sal_Int32 nReturn = 0; + ERejectReason eReason; + TransactionGuard aTransaction( m_aTransactionManager, E_NOEXCEPTIONS, eReason ); + if( eReason == E_NOREASON ) + { + // We have write access to our member. + // Set new value. + m_nA = nA; + #ifdef ENABLE_REQUESTCOUNT + osl_incrementInterlockedCount( &m_nWriteCount ); + #endif + + // Downgrade write access to read access and read the set value again. + // This call can't be rejected - but it can fail! + aWriteLock.downgrade(); + nReturn = m_nA; + #ifdef ENABLE_REQUESTCOUNT + osl_incrementInterlockedCount( &m_nReadCount ); + #endif + } + + LOG_WORKA_END( nReturn, eReason, nThreadID ) + return nReturn; +} + +/*-****************************************************************************************************//** + @descr Every thread instance of these class lopp from 0 up to "nLoops". + He sleep for a random time and work with given test class "pClass" then. + We use random values for waiting for better results! + Otherwise all threads are sychron after first 2,3...5 calls - I think! +*//*-*****************************************************************************************************/ + +class TestThread : public OThread +{ + public: + + TestThread( ThreadSafeClass* pClass , + sal_Int32 nLoops , + Condition* pListener , + sal_Bool bOwner = sal_False ); + + private: + + virtual void SAL_CALL run (); + virtual void SAL_CALL onTerminated (); + + private: + + ThreadSafeClass* m_pClass ; + sal_Int32 m_nLoops ; + sal_Int32 m_nThreadID ; + Condition* m_pListener ; + sal_Bool m_bOwner ; +}; + +//_________________________________________________________________________________________________________________ +TestThread::TestThread( ThreadSafeClass* pClass , + sal_Int32 nLoops , + Condition* pListener , + sal_Bool bOwner ) + : m_pClass ( pClass ) + , m_nLoops ( nLoops ) + , m_pListener ( pListener ) + , m_bOwner ( bOwner ) +{ +} + +//_________________________________________________________________________________________________________________ +void SAL_CALL TestThread::run() +{ + // Get ID of this thread. + // Is used for logging information ... + m_nThreadID = getCurrentIdentifier(); + + // If we are the owner of given pClass + // we must initialize ... and close + // it. See at the end of this method too. + if( m_bOwner == sal_True ) + { + m_pClass->init( 0, m_nThreadID ); + } + + #ifdef ENABLE_THREADDELAY + TimeValue nDelay ; + #endif + + sal_Int32 nA ; + + for( sal_Int32 nCount=0; nCount<m_nLoops; ++nCount ) + { + // Work with class. + // Use random to select called method. + nA = (sal_Int32)getRandomValue(); + if( nA % 5 == 0 ) + { + nA = m_pClass->workA( nA, m_nThreadID ); + } + else + if( nA % 3 == 0 ) + { + m_pClass->setA( nA, m_nThreadID ); + } + else + { + nA = m_pClass->getA( m_nThreadID ); + } + #ifdef ENABLE_THREADDELAY + // Sleep - use random value to do that too! + nDelay.Seconds = 0; + nDelay.Nanosec = getRandomValue(); + sleep( nDelay ); + #endif + } + + // Don't forget to "close" teset object if you are the owner! + if( m_bOwner == sal_True ) + { + m_pClass->close( m_nThreadID ); + } +} + +//_________________________________________________________________________________________________________________ +void SAL_CALL TestThread::onTerminated() +{ + // Destroy yourself if you finished. + // But don't forget to call listener before. + m_pListener->set(); + + m_pClass = NULL; + m_pListener = NULL; + + delete this; +} + +/*-****************************************************************************************************//** + @descr This is our test application. + We create one ThreadSafeClass object and a lot of threads + which use it at different times. +*//*-*****************************************************************************************************/ + +struct ThreadInfo +{ + Condition* pCondition ; + TestThread* pThread ; +}; + +class TestApplication : public Application +{ + public: + void Main ( ); + sal_Int32 measureTime ( sal_Int32 nThreadCount , + sal_Int32 nOwner , + sal_Int32 nLoops=0 ); +}; + +//_________________________________________________________________________________________________________________ +// definition +//_________________________________________________________________________________________________________________ + +TestApplication aApplication; + +//_________________________________________________________________________________________________________________ +// This function start "nThreadCount" threads to use same test class. +// You can specify the owner thread of this test class which start/stop it by using "nOwner". [1..nThreadcount]! +// If you specify "nLoops" different from 0 we use it as loop count for every started thread. +// Otherwise we work with random values. +sal_Int32 TestApplication::measureTime( sal_Int32 nThreadCount , + sal_Int32 nOwner , + sal_Int32 nLoops ) +{ + // This is the class which should be tested. + ThreadSafeClass aClass; + + // Create list of threads. + ThreadInfo* pThreads = new ThreadInfo[nThreadCount]; + sal_Int32 nLoopCount = nLoops ; + sal_Bool bOwner = sal_False ; + for( sal_Int32 nI=1; nI<=nThreadCount; ++nI ) + { + // If nLoops==0 => we must use random value; otherwise we must use given count ... + if( nLoops == 0 ) + { + nLoopCount = getRandomValue(); + } + // Search owner of class. + bOwner = sal_False; + if( nOwner == nI ) + { + bOwner = sal_True; + } + // initialize condition. + pThreads[nI].pCondition = new Condition; + // Initialize thread. + pThreads[nI].pThread = new TestThread( &aClass, nLoopCount, pThreads[nI].pCondition, bOwner ); + } + + // Start clock to get information about used time. + sal_uInt32 nStartTime ; + sal_uInt32 nEndTime ; + + nStartTime = osl_getGlobalTimer(); + + // Start threads ... + for( nI=1; nI<=nThreadCount; ++nI ) + { + pThreads[nI].pThread->create(); + } + + // Wait for threads ... + for( nI=1; nI<=nThreadCount; ++nI ) + { + pThreads[nI].pCondition->wait(); + delete pThreads[nI].pCondition; + pThreads[nI].pCondition = NULL; + } + + delete[] pThreads; + pThreads = NULL; + + nEndTime = osl_getGlobalTimer(); + + // Calc used time and return it. [ms] + return( nEndTime-nStartTime ); +} + +//_________________________________________________________________________________________________________________ +void TestApplication::Main() +{ + sal_Int32 nTestCount = 0; /// count of calling "measureTime()" + sal_Int32 nThreadCount = 0; /// count of used threads by "measure..." + sal_Int32 nLoops = 0; /// loop count for every thread + sal_Int32 nOwner = 0; /// number of owner thread + + // Parse command line. + // Attention: All parameter are required and must exist! + // syntax: "threadtest.exe <testcount> <threadcount> <loops> <owner>" + OStartupInfo aInfo ; + OUString sArgument ; + sal_Int32 nArgument ; + sal_Int32 nCount = aInfo.getCommandArgCount(); + + LOG_ASSERT2( nCount!=4 ,"TestApplication::Main()" , "Wrong argument line detected!") + + for( nArgument=0; nArgument<nCount; ++nArgument ) + { + aInfo.getCommandArg( nArgument, sArgument ); + if( nArgument== 0 ) nTestCount =sArgument.toInt32(); + if( nArgument== 1 ) nThreadCount=sArgument.toInt32(); + if( nArgument== 2 ) nLoops =sArgument.toInt32(); + if( nArgument== 3 ) nOwner =sArgument.toInt32(); + } + + // Start test. + OStringBuffer sBuf(256); + sal_Int32 nTime=0; + sBuf.append( "Nr.\tTime\tThreadCount\tLoops\tOwner\n" ); + for( sal_Int32 nI=1; nI<=nTestCount; ++nI ) + { + nTime = measureTime( nThreadCount, nOwner, nLoops ); + sBuf.append( nI ); + sBuf.append( "\t" ); + sBuf.append( nTime ); + sBuf.append( "\t" ); + sBuf.append( nThreadCount ); + sBuf.append( "\t" ); + sBuf.append( nLoops ); + sBuf.append( "\t" ); + sBuf.append( nOwner ); + sBuf.append( "\n" ); + } + + WRITE_LOGFILE( STATISTICS_FILE, sBuf.makeStringAndClear() ); + LOG_ERROR( "TApplication::Main()", "Test finish successful!" ) +} diff --git a/framework/test/threadtest/makefile.mk b/framework/test/threadtest/makefile.mk new file mode 100644 index 000000000000..6260feaed953 --- /dev/null +++ b/framework/test/threadtest/makefile.mk @@ -0,0 +1,115 @@ +#************************************************************************* +# +# $RCSfile: makefile.mk,v $ +# +# $Revision: 1.3 $ +# +# last change: $Author: hr $ $Date: 2003-03-25 18:22:04 $ +# +# The Contents of this file are made available subject to the terms of +# either of the following licenses +# +# - GNU Lesser General Public License Version 2.1 +# - Sun Industry Standards Source License Version 1.1 +# +# Sun Microsystems Inc., October, 2000 +# +# GNU Lesser General Public License Version 2.1 +# ============================================= +# Copyright 2000 by Sun Microsystems, Inc. +# 901 San Antonio Road, Palo Alto, CA 94303, USA +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License version 2.1, as published by the Free Software Foundation. +# +# This library 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 for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# +# +# Sun Industry Standards Source License Version 1.1 +# ================================================= +# The contents of this file are subject to the Sun Industry Standards +# Source License Version 1.1 (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.openoffice.org/license.html. +# +# Software provided under this License is provided on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, +# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, +# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. +# See the License for the specific provisions governing your rights and +# obligations concerning the Software. +# +# The Initial Developer of the Original Code is: Sun Microsystems, Inc. +# +# Copyright: 2000 by Sun Microsystems, Inc. +# +# All Rights Reserved. +# +# Contributor(s): _______________________________________ +# +# +# +#************************************************************************* +PRJ=..$/.. + +PRJNAME= framework +TARGET= threadtest +LIBTARGET= NO +ENABLE_EXCEPTIONS= TRUE +USE_DEFFILE= TRUE +NO_BSYMBOLIC= TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : svpre.mk +.INCLUDE : settings.mk +.INCLUDE : sv.mk + +.IF "$(COM)"=="ICC" +LINKFLAGS+=/SEGMENTS:1024 /PACKD:32768 +.ENDIF + +# --- application: "threadtest" -------------------------------------------------- + +APP1TARGET= threadtest + +APP1OBJS= $(SLO)$/threadtest.obj \ + $(SLO)$/lockhelper.obj + +# [ed] 6/16/02 Add the transaction manager library on OS X + +.IF "$(OS)"=="MACOSX" +APP1OBJS+= $(SLO)$/transactionmanager.obj +.ENDIF + +APP1STDLIBS= $(CPPULIB) \ + $(CPPUHELPERLIB) \ + $(OSLLIB) \ + $(SALLIB) \ + $(VOSLIB) \ + $(SVLIB) + +APP1DEPN= $(INC)$/threadhelp$/threadhelpbase.hxx \ + $(INC)$/threadhelp$/transactionbase.hxx \ + $(INC)$/threadhelp$/transactionmanager.hxx \ + $(INC)$/threadhelp$/transactionguard.hxx \ + $(INC)$/threadhelp$/resetableguard.hxx \ + $(INC)$/threadhelp$/readguard.hxx \ + $(INC)$/threadhelp$/writeguard.hxx + +.IF "$(GUI)"=="WIN" || "$(GUI)"=="OS2" +APP1DEF= $(MISC)$/threadtest.def +.ENDIF + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk diff --git a/framework/test/threadtest/test.btm b/framework/test/threadtest/test.btm new file mode 100644 index 000000000000..627c756893bf --- /dev/null +++ b/framework/test/threadtest/test.btm @@ -0,0 +1,29 @@ +@echo off +pushd + +rem TESTCOUNT = Anzahl von Test-Durchlaeufen +rem THREADCOUNT = Anzahl konk. Threads +rem LOOPS = Anzahl Durchlaeufe pro Test +rem OWNER = Numer des Threads, welcher Testklasse "besitzt" ... er muss diese initialisieren und deinitialisieren! + +echo "set test parameter ..." +set _TESTCOUNT=100 +set _THREADCOUNT=30 +set _LOOPS=50 +set _OWNER=10 + +cd bin + +echo "delete old log files ..." +*del .\threadtest_statistic.csv +*del .\threadtest.log + +echo "start test ..." +.\threadtest.exe %_TESTCOUNT% %_THREADCOUNT% %_LOOPS% %_OWNER% + +echo "show log files ..." +edit .\threadtest_statistic.csv +edit .\threadtest.log + +popd +echo on diff --git a/framework/test/threadtest/threadtest.cxx b/framework/test/threadtest/threadtest.cxx new file mode 100644 index 000000000000..6fa07edabe16 --- /dev/null +++ b/framework/test/threadtest/threadtest.cxx @@ -0,0 +1,806 @@ +/************************************************************************* + * + * $RCSfile: threadtest.cxx,v $ + * + * $Revision: 1.3 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:22:05 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//_________________________________________________________________________________________________________________ +// my own includes +//_________________________________________________________________________________________________________________ + +#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_ +#include <threadhelp/threadhelpbase.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_TRANSACTIONBASE_HXX_ +#include <threadhelp/transactionbase.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_RESETABLEGUARD_HXX_ +#include <threadhelp/resetableguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_READGUARD_HXX_ +#include <threadhelp/readguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_WRITEGUARD_HXX_ +#include <threadhelp/writeguard.hxx> +#endif + +#ifndef __FRAMEWORK_THREADHELP_TRANSACTIONGUARD_HXX_ +#include <threadhelp/transactionguard.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_GENERIC_HXX_ +#include <macros/generic.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +//_________________________________________________________________________________________________________________ +// interface includes +//_________________________________________________________________________________________________________________ + +//_________________________________________________________________________________________________________________ +// other includes +//_________________________________________________________________________________________________________________ + +#ifndef _RTL_RANDOM_H_ +#include <rtl/random.h> +#endif + +#ifndef _VOS_PROCESS_HXX_ +#include <vos/process.hxx> +#endif + +#ifndef _VOS_THREAD_HXX_ +#include <vos/thread.hxx> +#endif + +#ifndef _RTL_USTRING_ +#include <rtl/ustring.hxx> +#endif + +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif + +#ifndef _OSL_TIME_H_ +#include <osl/time.h> +#endif + +#ifndef _OSL_INTERLOCK_H_ +#include <osl/interlock.h> +#endif + +#include <vcl/event.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wrkwin.hxx> +#include <vcl/msgbox.hxx> +#include <stdio.h> + +//_________________________________________________________________________________________________________________ +// const +//_________________________________________________________________________________________________________________ + +#define LOGFILE "threadtest.log" +#define STATISTICS_FILE "threadtest_statistic.csv" + +//_________________________________________________________________________________________________________________ +// namespace +//_________________________________________________________________________________________________________________ + +using namespace ::rtl ; +using namespace ::osl ; +using namespace ::vos ; +using namespace ::framework ; + +//_________________________________________________________________________________________________________________ +// defines +//_________________________________________________________________________________________________________________ + +/*---------------- Use follow defines to enable/disable some special features of this little test program! -------*/ + +#define ENABLE_LOG +//#define ENABLE_THREADDELAY +#define ENABLE_REQUESTCOUNT + +/*----------------------------------------------------------------------------------------------------------------*/ + +#ifdef ENABLE_LOG + #define LOG_SETA_START( NA, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ::osl::MutexGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] call setA( " ); \ + sLog.append( NA ); \ + sLog.append( " )\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_SETA_END( NA, EREASON, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ::osl::MutexGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + if( EREASON == E_NOREASON ) \ + sLog.append( " ] finish setA( " ); \ + else \ + sLog.append( " ] was refused at setA( "); \ + sLog.append( NA ); \ + sLog.append( " )\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_GETA_START( NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ::osl::MutexGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] call getA()\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_GETA_END( NRETURN, EREASON, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ::osl::MutexGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + if( EREASON == E_NOREASON ) \ + sLog.append( " ] finish getA() with " ); \ + else \ + sLog.append( " ] was refused at getA() with " ); \ + sLog.append( NRETURN ); \ + sLog.append( "\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_WORKA_START( NA, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ::osl::MutexGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] call workA( " ); \ + sLog.append( NA ); \ + sLog.append( " )\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_WORKA_END( NRETURN, EREASON, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ::osl::MutexGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + if( EREASON == E_NOREASON ) \ + sLog.append( " ] finish workA() with " ); \ + else \ + sLog.append( " ] was refused at workA() with " ); \ + sLog.append( NRETURN ); \ + sLog.append( "\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_INITEXCEPTION( SMETHOD, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ::osl::MutexGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] get EInitException from \"" ); \ + sLog.append( SMETHOD ); \ + sLog.append( "\"\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_CLOSEEXCEPTION( SMETHOD, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ::osl::MutexGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] get ECloseException from \"" ); \ + sLog.append( SMETHOD ); \ + sLog.append( "\"\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_INIT( NA, NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ::osl::MutexGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] initialize me with " ); \ + sLog.append( NA ); \ + sLog.append( "\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } + + #define LOG_CLOSE( NID ) \ + { \ + sal_uInt32 nTimeStamp = osl_getGlobalTimer(); \ + ::osl::MutexGuard aLogGuard( m_aLogMutex ); \ + OStringBuffer sLog(256); \ + sLog.append( (sal_Int32)nTimeStamp ); \ + sLog.append( ": Thread[ " ); \ + sLog.append( NID ); \ + sLog.append( " ] close me\n" ); \ + WRITE_LOGFILE( LOGFILE, sLog.makeStringAndClear() ) \ + } +#else + #define LOG_SETA_START( NA, NID ) + #define LOG_SETA_END( NA, EREASON, NID ) + #define LOG_GETA_START( NID ) + #define LOG_GETA_END( NRETURN, EREASON, NID ) + #define LOG_WORKA_START( NA, NID ) + #define LOG_WORKA_END( NRETURN, EREASON, NID ) + #define LOG_INITEXCEPTION( SMETHOD, NID ) + #define LOG_CLOSEEXCEPTION( SMETHOD, NID ) + #define LOG_INIT( NA, NID ) + #define LOG_CLOSE( NID ) +#endif + +//_________________________________________________________________________________________________________________ +// declarations +//_________________________________________________________________________________________________________________ + +sal_uInt16 getRandomValue() +{ + // Get new random value for thread-sleep! + // See run() for further informations. + // Always calculate a new random number. + sal_uInt16 nValue; + rtlRandomPool aPool = rtl_random_createPool(); + rtl_random_getBytes ( aPool, &nValue, 2 ); + rtl_random_destroyPool ( aPool ); + return nValue; +} + +/*-************************************************************************************************************//** + @descr This class is used from different threads at the same time. + We start working after calling init() first(!) ... + and finish it by calling close(). It exist two methods for reading/writing an + internal variable "A". Another function workA() do both things at the same time. + All public methods log information in a file if DO_LOG is defined. + + @attention Our public base class FaiRWLockBase is a struct with a RWLock as member. + This member can be used by guards to safe access at internal variables + in interface methods. + Another baseclass is the TransactionBase. They support rejection of wrong calls at wrong time. + e.g. calls after closing object! +*//*-*************************************************************************************************************/ + +class ThreadSafeClass : private ThreadHelpBase + , private TransactionBase + +{ + public: + + ThreadSafeClass (); + ~ThreadSafeClass(); + + // This methods are used from differnt threads + // to test this class. + void init ( sal_Int32 nA , + sal_Int32 nThreadID ); + void close ( sal_Int32 nThreadID ); + void setA ( sal_Int32 nA , + sal_Int32 nThreadID ); + sal_Int32 getA ( sal_Int32 nThreadID ); + sal_Int32 workA ( sal_Int32 nA , + sal_Int32 nThreadID ); + + #ifdef ENABLE_REQUESTCOUNT + // This methods are used for statistics only! + sal_Int32 getReadCount () { return m_nReadCount; } + sal_Int32 getWriteCount() { return m_nWriteCount; } + #endif + + private: + + sal_Int32 m_nA ; /// test member fro reading/writing + + #ifdef ENABLE_LOG + ::osl::Mutex m_aLogMutex ; /// mutex to serialize writing log file! + #endif + + #ifdef ENABLE_REQUESTCOUNT + oslInterlockedCount m_nReadCount ; /// statistic variables to count read/write requests + oslInterlockedCount m_nWriteCount ; + #endif +}; + +//_________________________________________________________________________________________________________________ +ThreadSafeClass::ThreadSafeClass() + : ThreadHelpBase ( ) + , TransactionBase ( ) + , m_nA ( 0 ) + #ifdef ENABLE_REQUESTCOUNT + , m_nReadCount ( 0 ) + , m_nWriteCount ( 0 ) + #endif +{ +} + +//_________________________________________________________________________________________________________________ +ThreadSafeClass::~ThreadSafeClass() +{ +} + +//_________________________________________________________________________________________________________________ +void ThreadSafeClass::init( sal_Int32 nA, sal_Int32 nThreadID ) +{ + // Look for multiple calls of this method first! + // Use E_SOFTEXCEPTIONS to disable automaticly throwing of exceptions for some working modes. + TransactionGuard aTransaction( m_aTransactionManager, E_SOFTEXCEPTIONS ); + + // Set write lock for setting internal member AND + // protect changing of working mode! + WriteGuard aWriteLock( m_aLock ); + LOG_INIT( nA, nThreadID ) + + // OK, it must be the first call and we are synchronized with all other threads by using the write lock! + // Otherwise (e.g. if working mode == E_WORK) we get a exception and follow lines are never called. + + // We can set our member and change the working mode now. + m_nA = nA; + + aWriteLock.unlock(); + + m_aTransactionManager.setWorkingMode( E_WORK ); +} + +//_________________________________________________________________________________________________________________ +void ThreadSafeClass::close( sal_Int32 nThreadID ) +{ + // We must look for multiple calls of this method. + // Try to register this method as a transaction. + // In combination with E_HARDEXCEPTIONS only working mode E_WORK pass this barrier. + TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS ); + aTransaction.stop(); + + // Change working mode to BEFORECLOSE to enable rejection of normal interface calls + // and enable SOFTEXCEPTION mode for some impl- or helper methods! + // Attention: We must stop successful registered transaction first ... + // because setWorkingMode() blocks and wait for all current existing ones! + m_aTransactionManager.setWorkingMode( E_BEFORECLOSE ); + + // Make it threadsafe. + // It must be an exclusiv access! => WriteLock! + WriteGuard aWriteLock( m_aLock ); + + LOG_CLOSE( nThreadID ) + + // Now we are alone ... + // All further calls to this object are rejected ... + // (not all ... some special ones can work by using E_SOFTEXCEPTIONS!) + + // Deinitialize all member and set working mode to E_CLOSE. + m_nA = 0; + + aWriteLock.unlock(); + + m_aTransactionManager.setWorkingMode( E_CLOSE ); +} + +//_________________________________________________________________________________________________________________ +void ThreadSafeClass::setA( sal_Int32 nA, sal_Int32 nThreadID ) +{ + // Register this method as a transaction to prevent code against wrong calls + // after close() or before init()! + ERejectReason eReason; + TransactionGuard aTransaction( m_aTransactionManager, E_NOEXCEPTIONS, &eReason ); + if( eReason == E_NOREASON ) + { + // Make it threadsafe. + WriteGuard aWriteLock( m_aLock ); + + LOG_SETA_START( nA, nThreadID ) + + // This object is ready for working and we have full write access. + // We can work with our member. + m_nA = nA; + #ifdef ENABLE_REQUESTCOUNT + osl_incrementInterlockedCount( &m_nWriteCount ); + #endif + LOG_SETA_END( nA, eReason, nThreadID ) + } +} + +//_________________________________________________________________________________________________________________ +sal_Int32 ThreadSafeClass::getA( sal_Int32 nThreadID ) +{ + // Register this method as a transaction to prevent code against wrong calls + // after close() or before init()! + sal_Int32 nReturn = 0; + ERejectReason eReason; + TransactionGuard aTransaction( m_aTransactionManager, E_NOEXCEPTIONS, &eReason ); + if( eReason == E_NOREASON ) + { + // Make it threadsafe. + ReadGuard aReadLock( m_aLock ); + + LOG_GETA_START( nThreadID ) + + // This object is ready for working and we have a read access. + // We can work with our member. + nReturn = m_nA; + #ifdef ENABLE_REQUESTCOUNT + osl_incrementInterlockedCount( &m_nReadCount ); + #endif + LOG_GETA_END( nReturn, eReason, nThreadID ) + } + return nReturn; +} + +//_________________________________________________________________________________________________________________ +sal_Int32 ThreadSafeClass::workA( sal_Int32 nA , + sal_Int32 nThreadID ) +{ + // Register this method as a transaction to prevent code against wrong calls + // after close() or before init()! + sal_Int32 nReturn = 0; + ERejectReason eReason; + TransactionGuard aTransaction( m_aTransactionManager, E_NOEXCEPTIONS, &eReason ); + if( eReason == E_NOREASON ) + { + // This method test the downgrade-mechanism of used lock implementation! + // Make it threadsafe. + WriteGuard aWriteLock( m_aLock ); + + LOG_WORKA_START( nA, nThreadID ) + // We have write access to our member. + // Set new value. + m_nA = nA; + #ifdef ENABLE_REQUESTCOUNT + osl_incrementInterlockedCount( &m_nWriteCount ); + #endif + + // Downgrade write access to read access and read the set value again. + // This call can't be rejected - but it can fail! + aWriteLock.downgrade(); + nReturn = m_nA; + #ifdef ENABLE_REQUESTCOUNT + osl_incrementInterlockedCount( &m_nReadCount ); + #endif + + LOG_WORKA_END( nReturn, eReason, nThreadID ) + } + return nReturn; +} + +/*-****************************************************************************************************//** + @descr Every thread instance of these class lopp from 0 up to "nLoops". + He sleep for a random time and work with given test class "pClass" then. + We use random values for waiting for better results! + Otherwise all threads are sychron after first 2,3...5 calls - I think! +*//*-*****************************************************************************************************/ + +class TestThread : public OThread +{ + public: + + TestThread( ThreadSafeClass* pClass , + sal_Int32 nLoops , + Condition* pListener , + sal_Bool bOwner = sal_False ); + + private: + + virtual void SAL_CALL run (); + virtual void SAL_CALL onTerminated (); + + private: + + ThreadSafeClass* m_pClass ; + sal_Int32 m_nLoops ; + sal_Int32 m_nThreadID ; + Condition* m_pListener ; + sal_Bool m_bOwner ; +}; + +//_________________________________________________________________________________________________________________ +TestThread::TestThread( ThreadSafeClass* pClass , + sal_Int32 nLoops , + Condition* pListener , + sal_Bool bOwner ) + : m_pClass ( pClass ) + , m_nLoops ( nLoops ) + , m_pListener ( pListener ) + , m_bOwner ( bOwner ) +{ +} + +//_________________________________________________________________________________________________________________ +void SAL_CALL TestThread::run() +{ + // Get ID of this thread. + // Is used for logging information ... + m_nThreadID = getCurrentIdentifier(); + + // If we are the owner of given pClass + // we must initialize ... and close + // it. See at the end of this method too. + if( m_bOwner == sal_True ) + { + m_pClass->init( 0, m_nThreadID ); + } + + #ifdef ENABLE_THREADDELAY + TimeValue nDelay ; + #endif + + sal_Int32 nA ; + + for( sal_Int32 nCount=0; nCount<m_nLoops; ++nCount ) + { + // Work with class. + // Use random to select called method. + nA = (sal_Int32)getRandomValue(); + if( nA % 5 == 0 ) + { + //nA = m_pClass->workA( nA, m_nThreadID ); + } + else + if( nA % 3 == 0 ) + { + m_pClass->setA( nA, m_nThreadID ); + } + else + { + nA = m_pClass->getA( m_nThreadID ); + } + #ifdef ENABLE_THREADDELAY + // Sleep - use random value to do that too! + nDelay.Seconds = 0; + nDelay.Nanosec = getRandomValue(); + sleep( nDelay ); + #endif + } + + // Don't forget to "close" teset object if you are the owner! + if( m_bOwner == sal_True ) + { + m_pClass->close( m_nThreadID ); + } +} + +//_________________________________________________________________________________________________________________ +void SAL_CALL TestThread::onTerminated() +{ + // Destroy yourself if you finished. + // But don't forget to call listener before. + m_pListener->set(); + + m_pClass = NULL; + m_pListener = NULL; + + delete this; +} + +/*-****************************************************************************************************//** + @descr This is our test application. + We create one ThreadSafeClass object and a lot of threads + which use it at different times. +*//*-*****************************************************************************************************/ + +struct ThreadInfo +{ + Condition* pCondition ; + TestThread* pThread ; +}; + +class TestApplication : public Application +{ + public: + void Main ( ); + sal_Int32 measureTime ( sal_Int32 nThreadCount , + sal_Int32 nOwner , + sal_Int32 nLoops=0 ); +}; + +//_________________________________________________________________________________________________________________ +// definition +//_________________________________________________________________________________________________________________ + +TestApplication aApplication; + +//_________________________________________________________________________________________________________________ +// This function start "nThreadCount" threads to use same test class. +// You can specify the owner thread of this test class which start/stop it by using "nOwner". [1..nThreadcount]! +// If you specify "nLoops" different from 0 we use it as loop count for every started thread. +// Otherwise we work with random values. +sal_Int32 TestApplication::measureTime( sal_Int32 nThreadCount , + sal_Int32 nOwner , + sal_Int32 nLoops ) +{ + // This is the class which should be tested. + ThreadSafeClass aClass; + + // Create list of threads. + ThreadInfo* pThreads = new ThreadInfo[nThreadCount]; + sal_Int32 nLoopCount = nLoops ; + sal_Bool bOwner = sal_False ; + for( sal_Int32 nI=0; nI<nThreadCount; ++nI ) + { + // If nLoops==0 => we must use random value; otherwise we must use given count ... + if( nLoops == 0 ) + { + nLoopCount = getRandomValue(); + } + // Search owner of class. + bOwner = sal_False; + if( nOwner == nI ) + { + bOwner = sal_True; + } + // initialize condition. + pThreads[nI].pCondition = new Condition; + // Initialize thread. + pThreads[nI].pThread = new TestThread( &aClass, nLoopCount, pThreads[nI].pCondition, bOwner ); + } + + // Start clock to get information about used time. + sal_uInt32 nStartTime ; + sal_uInt32 nEndTime ; + + nStartTime = osl_getGlobalTimer(); + + // Start threads ... + for( nI=0; nI<nThreadCount; ++nI ) + { + pThreads[nI].pThread->create(); + } + + // Wait for threads ... + for( nI=0; nI<nThreadCount; ++nI ) + { + pThreads[nI].pCondition->wait(); + delete pThreads[nI].pCondition; + pThreads[nI].pCondition = NULL; + pThreads[nI].pThread = NULL; + } + + delete[] pThreads; + pThreads = NULL; + + nEndTime = osl_getGlobalTimer(); + + // Calc used time and return it. [ms] + return( nEndTime-nStartTime ); +} + +//_________________________________________________________________________________________________________________ +void TestApplication::Main() +{ + sal_Int32 nTestCount = 0; /// count of calling "measureTime()" + sal_Int32 nThreadCount = 0; /// count of used threads by "measure..." + sal_Int32 nLoops = 0; /// loop count for every thread + sal_Int32 nOwner = 0; /// number of owner thread + + // Parse command line. + // Attention: All parameter are required and must exist! + // syntax: "threadtest.exe <testcount> <threadcount> <loops> <owner>" + OStartupInfo aInfo ; + OUString sArgument ; + sal_Int32 nArgument ; + sal_Int32 nCount = aInfo.getCommandArgCount(); + + LOG_ASSERT2( nCount!=4 ,"TestApplication::Main()" , "Wrong argument line detected!") + + for( nArgument=0; nArgument<nCount; ++nArgument ) + { + aInfo.getCommandArg( nArgument, sArgument ); + if( nArgument== 0 ) nTestCount =sArgument.toInt32(); + if( nArgument== 1 ) nThreadCount=sArgument.toInt32(); + if( nArgument== 2 ) nLoops =sArgument.toInt32(); + if( nArgument== 3 ) nOwner =sArgument.toInt32(); + } + + LOG_ASSERT2( nTestCount==0||nThreadCount==0||nLoops==0||nOwner==0,"TestApplication::Main()", "Wrong argument value detected!" ) + + // Start test. + OStringBuffer sBuf(256); + sal_Int32 nTime=0; + sBuf.append( "Nr.\tTime\tThreadCount\tLoops\tOwner\n" ); + for( sal_Int32 nI=1; nI<=nTestCount; ++nI ) + { + nTime = measureTime( nThreadCount, nOwner, nLoops ); + sBuf.append( nI ); + sBuf.append( "\t" ); + sBuf.append( nTime ); + sBuf.append( "\t" ); + sBuf.append( nThreadCount ); + sBuf.append( "\t" ); + sBuf.append( nLoops ); + sBuf.append( "\t" ); + sBuf.append( nOwner ); + sBuf.append( "\n" ); + } + + WRITE_LOGFILE( STATISTICS_FILE, sBuf.makeStringAndClear() ); + LOG_ERROR( "TApplication::Main()", "Test finish successful!" ) +} diff --git a/framework/test/typecfg/build.btm b/framework/test/typecfg/build.btm new file mode 100644 index 000000000000..f984a1146296 --- /dev/null +++ b/framework/test/typecfg/build.btm @@ -0,0 +1,26 @@ +@echo off + +pushd + +rem Set flag to enable special mechanism of "FilterCache". +rem This works for windows only! ... this batch too :-) +set ENVCFLAGS=-DENABLE_GENERATEFILTERCACHE + +rem Touch header file ... +cd ..\..\inc\classes +attrib -r .\filtercache.hxx +touch .\filtercache.hxx + +rem ... and start new build of library. +cd ..\.. +call build debug=true + +rem Build command line tool too. +cd test\typecfg +call dmake debug=true + +rem Don't forget to disable build flag! +unset ENVCFLAGS + +popd +echo on diff --git a/framework/test/typecfg/cfgview.cxx b/framework/test/typecfg/cfgview.cxx index 23f2731776dd..6ce96c5dfa45 100644 --- a/framework/test/typecfg/cfgview.cxx +++ b/framework/test/typecfg/cfgview.cxx @@ -2,9 +2,9 @@ * * $RCSfile: cfgview.cxx,v $ * - * $Revision: 1.7 $ + * $Revision: 1.8 $ * - * last change: $Author: as $ $Date: 2001-11-21 10:34:59 $ + * last change: $Author: hr $ $Date: 2003-03-25 18:22:06 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -131,16 +131,10 @@ #include <hash_map> #endif -#ifndef _SAL_MAIN_H_ -#include <sal/main.h> -#endif - -/* #include <vcl/event.hxx> #include <vcl/svapp.hxx> #include <vcl/wrkwin.hxx> #include <vcl/msgbox.hxx> -*/ #include <stdio.h> //_________________________________________________________________________________________________________________ @@ -160,14 +154,12 @@ #define FRAMESET_TYPES_HTML "fs_types.html" #define FRAMESET_FILTERS_HTML "fs_filters.html" #define FRAMESET_MODULFILTERS_HTML "fs_modulfilters.html" -#define FRAMESET_FILTERSUINAMESORT_HTML "fs_filtersuinamesort.html" #define FRAMESET_DETECTORS_HTML "fs_detectors.html" #define FRAMESET_LOADERS_HTML "fs_loaders.html" #define FRAMESET_INVALIDFILTERS_HTML "fs_invalidfilters.html" #define FRAMESET_INVALIDDETECTORS_HTML "fs_invaliddetectors.html" #define FRAMESET_INVALIDLOADERS_HTML "fs_invalidloaders.html" -#define FRAMESET_DOUBLEFILTERNAMES_HTML "fs_doublefilternames.html" -#define FRAMESET_UNUSEDTYPES_HTML "fs_unusedtypes.html" +#define FRAMESET_DOUBLEFILTERUINAMES_HTML "fs_doublefilteruinames.html" #define ALLTYPES_HTML "alltypes.html" #define ALLFILTERS_HTML "allfilters.html" @@ -185,9 +177,7 @@ #define FILTERFLAGS_HTML "filterflags.html" #define MODULFILTERS_HTML "modulfilters.html" -#define FILTERSUINAMESORT_HTML "filtersuinamesort.html" -#define DOUBLEFILTERNAMES_HTML "doublefilternames.html" -#define UNUSEDTYPES_HTML "unusedtypes.html" +#define DOUBLEFILTERUINAMES_HTML "doublefilteruinames.html" #define TARGET_MENU "menu" #define TARGET_VIEW "view" @@ -226,22 +216,24 @@ struct AppMember }; /*-***************************************************************************************************************/ -class CFGView +class CFGView : public Application { //************************************************************************************************************* public: - void start(); + void Main(); //************************************************************************************************************* private: void impl_parseCommandLine ( AppMember& rMember ); + void impl_generateHTMLView (); + + //************************************************************************************************************* + private: void impl_printCopyright (); void impl_printSyntax (); - void impl_generateHTMLView (); void impl_generateTypeListHTML (); void impl_generateFilterListHTML (); void impl_generateFilterModulListHTML (); - void impl_generateFilterUINameSortListHTML (); void impl_generateDetectorListHTML (); void impl_generateLoaderListHTML (); void impl_generateInvalidFiltersHTML (); @@ -250,7 +242,6 @@ class CFGView void impl_generateFilterFlagsHTML (); void impl_generateDefaultFiltersHTML (); void impl_generateDoubleFilterUINamesHTML (); - void impl_generateUnusedTypesHTML (); void impl_writeFile ( const ::rtl::OString& sFile, const ::rtl::OString& sContent ); //************************************************************************************************************* @@ -263,23 +254,16 @@ class CFGView // global variables //_________________________________________________________________________________________________________________ +CFGView gApplication; + //***************************************************************************************************************** -SAL_IMPLEMENT_MAIN() +void CFGView::Main() { // Init global servicemanager and set it. // It's neccessary for other services ... e.g. configuration. ServiceManager aManager; ::comphelper::setProcessServiceFactory( aManager.getGlobalUNOServiceManager() ); - CFGView aGenerator; - aGenerator.start(); - - return 0; -} - -//***************************************************************************************************************** -void CFGView::start() -{ // Get optional commands from command line. impl_parseCommandLine( m_aData ); @@ -434,12 +418,6 @@ void CFGView::impl_generateHTMLView() sMenuHTML.appendAscii( TARGET_VIEW ); sMenuHTML.appendAscii( "\">Filters by Moduls</a></li>\n" ); - sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "All Filters sorted by modules and uinames" - sMenuHTML.appendAscii( FRAMESET_FILTERSUINAMESORT_HTML ); - sMenuHTML.appendAscii( "\" target=\"" ); - sMenuHTML.appendAscii( TARGET_VIEW ); - sMenuHTML.appendAscii( "\">Filters by UINames/Modules</a></li>\n" ); - sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "All Detectors" sMenuHTML.appendAscii( FRAMESET_DETECTORS_HTML ); sMenuHTML.appendAscii( "\" target=\"" ); @@ -465,16 +443,10 @@ void CFGView::impl_generateHTMLView() sMenuHTML.appendAscii( "\">Invalid Detect Services</a></li>\n" ); sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "Double Filter UINames" - sMenuHTML.appendAscii( FRAMESET_DOUBLEFILTERNAMES_HTML ); - sMenuHTML.appendAscii( "\" target=\"" ); - sMenuHTML.appendAscii( TARGET_VIEW ); - sMenuHTML.appendAscii( "\">Double Filter UI/Names</a></li>\n" ); - - sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "Unused Types" - sMenuHTML.appendAscii( FRAMESET_UNUSEDTYPES_HTML ); + sMenuHTML.appendAscii( FRAMESET_DOUBLEFILTERUINAMES_HTML ); sMenuHTML.appendAscii( "\" target=\"" ); sMenuHTML.appendAscii( TARGET_VIEW ); - sMenuHTML.appendAscii( "\">Unused Types</a></li>\n" ); + sMenuHTML.appendAscii( "\">Double Filter UINames</a></li>\n" ); sMenuHTML.appendAscii( "\t\t<li><a href=\"" ); // list entry for "Show Filter Flags" sMenuHTML.appendAscii( FILTERFLAGS_HTML ); @@ -487,18 +459,16 @@ void CFGView::impl_generateHTMLView() impl_writeFile( MENU_HTML, U2B(sMenuHTML.makeStringAndClear()) ); - impl_generateTypeListHTML (); - impl_generateFilterListHTML (); - impl_generateFilterModulListHTML (); - impl_generateDetectorListHTML (); - impl_generateLoaderListHTML (); - impl_generateInvalidFiltersHTML (); - impl_generateInvalidDetectorsHTML (); - impl_generateInvalidLoadersHTML (); - impl_generateFilterFlagsHTML (); - impl_generateDoubleFilterUINamesHTML (); - impl_generateUnusedTypesHTML (); - impl_generateFilterUINameSortListHTML(); + impl_generateTypeListHTML (); + impl_generateFilterListHTML (); + impl_generateFilterModulListHTML (); + impl_generateDetectorListHTML (); + impl_generateLoaderListHTML (); + impl_generateInvalidFiltersHTML (); + impl_generateInvalidDetectorsHTML (); + impl_generateInvalidLoadersHTML (); + impl_generateFilterFlagsHTML (); + impl_generateDoubleFilterUINamesHTML(); } //***************************************************************************************************************** @@ -805,16 +775,19 @@ void CFGView::impl_generateFilterModulListHTML() sFiltersFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset cols sFiltersFramesetHTML.appendAscii( "</html>\n" ); // close html - impl_writeFile( FRAMESET_MODULFILTERS_HTML, U2B(sFiltersFramesetHTML.makeStringAndClear()) ); + impl_writeFile( FRAMESET_FILTERS_HTML, U2B(sFiltersFramesetHTML.makeStringAndClear()) ); //------------------------------------------------------------------------------------------------------------- // generate filter list (names and links only!) // use same loop to generate filter property list! OUStringBuffer sAllFiltersHTML( 10000 ); + OUStringBuffer sFilterPropHTML( 10000 ); sAllFiltersHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tAll Filters\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html sAllFiltersHTML.appendAscii( "\t\t<table border=0><tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Filter</strong></td></tr>\n" ); // open table + sFilterPropHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFilterProperties\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html + css::uno::Sequence< ::rtl::OUString > lWriter ; css::uno::Sequence< ::rtl::OUString > lWeb ; css::uno::Sequence< ::rtl::OUString > lGlobal ; @@ -827,23 +800,23 @@ void CFGView::impl_generateFilterModulListHTML() css::uno::Sequence< ::rtl::OUString > lDefault; css::uno::Sequence< ::rtl::OUString > lNames ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_writer:default_first:use_order:sort_prop=name") ) >>= lWriter ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_web:default_first:use_order:sort_prop=name") ) >>= lWeb ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_global:default_first:use_order:sort_prop=name") ) >>= lGlobal ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_chart:default_first:use_order:sort_prop=name") ) >>= lChart ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_calc:default_first:use_order:sort_prop=name") ) >>= lCalc ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_impress:default_first:use_order:sort_prop=name") ) >>= lImpress ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_draw:default_first:use_order:sort_prop=name") ) >>= lDraw ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_math:default_first:use_order:sort_prop=name") ) >>= lMath ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_graphic:default_first:use_order:sort_prop=name") ) >>= lGraphic ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_all:iflags=256") ) >>= lDefault ; - - sal_Int32 nModuls = 0; - sal_Int32 nFilters = 0; - sal_Int32 nModulCount = 10; - sal_Int32 nFilterCount = 0; - Filter aFilter ; - ::rtl::OString sModul ; + m_aData.pCache->queryFilters( FILTERQUERY_TEXTDOCUMENT_WITHDEFAULT ) >>= lWriter ; + m_aData.pCache->queryFilters( FILTERQUERY_WEBDOCUMENT_WITHDEFAULT ) >>= lWeb ; + m_aData.pCache->queryFilters( FILTERQUERY_GLOBALDOCUMENT_WITHDEFAULT ) >>= lGlobal ; + m_aData.pCache->queryFilters( FILTERQUERY_CHARTDOCUMENT_WITHDEFAULT ) >>= lChart ; + m_aData.pCache->queryFilters( FILTERQUERY_SPREADSHEETDOCUMENT_WITHDEFAULT ) >>= lCalc ; + m_aData.pCache->queryFilters( FILTERQUERY_PRESENTATIONDOCUMENT_WITHDEFAULT) >>= lImpress ; + m_aData.pCache->queryFilters( FILTERQUERY_DRAWINGDOCUMENT_WITHDEFAULT ) >>= lDraw ; + m_aData.pCache->queryFilters( FILTERQUERY_FORMULARPROPERTIES_WITHDEFAULT ) >>= lMath ; + m_aData.pCache->queryFilters( FILTERQUERY_GRAPHICFILTERS ) >>= lGraphic ; + m_aData.pCache->queryFilters( FILTERQUERY_DEFAULTFILTERS ) >>= lDefault ; + + sal_Int32 nModuls = 0; + sal_Int32 nFilters = 0; + sal_Int32 nModulCount = 0; + sal_Int32 nFilterCount = 0; + Filter aFilter ; + ::rtl::OString sModul ; for( nModuls=0; nModuls<nModulCount; ++nModuls ) { @@ -902,8 +875,8 @@ void CFGView::impl_generateFilterModulListHTML() } sAllFiltersHTML.appendAscii ( "\t\t\t<tr>\n" ); - sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#00aa00 fgcolor=#ffffff valign=\"top\" align=\"top\">-</td>\n" ); - sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#00aa00 fgcolor=#ffffff valign=\"top\" align=\"top\">" ); + sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#000000 fgcolor=#ffffff valign=\"top\" align=\"top\">-</td>\n" ); + sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#000000 fgcolor=#ffffff valign=\"top\" align=\"top\">" ); sAllFiltersHTML.appendAscii ( sModul ); sAllFiltersHTML.appendAscii ( "</td>\n" ); sAllFiltersHTML.appendAscii ( "\t\t\t</tr>\n" ); @@ -931,192 +904,93 @@ void CFGView::impl_generateFilterModulListHTML() sAllFiltersHTML.appendAscii ( "</a>" ); // close href sAllFiltersHTML.appendAscii ( "</td>\n" ); // close column "name" sAllFiltersHTML.appendAscii ( "\t\t\t</tr>\n" ); // close row - } - } - - sAllFiltersHTML.appendAscii( "</table>\n" ); // close table - sAllFiltersHTML.appendAscii( "</body>\n</html>\n" ); // close html - - impl_writeFile( MODULFILTERS_HTML , U2B(sAllFiltersHTML.makeStringAndClear()) ); -} - -//***************************************************************************************************************** -void CFGView::impl_generateFilterUINameSortListHTML() -{ - //------------------------------------------------------------------------------------------------------------- - // generate frameset for filters sorted by modules - OUStringBuffer sFiltersFramesetHTML( 10000 ); - - sFiltersFramesetHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Filters sorted by modules & UINames\n\t\t</title>\n\t</head>\n" ); // open html - sFiltersFramesetHTML.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols - sFiltersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list" - sFiltersFramesetHTML.appendAscii( TARGET_LIST ); - sFiltersFramesetHTML.appendAscii( "\" src=\"" ); - sFiltersFramesetHTML.appendAscii( FILTERSUINAMESORT_HTML ); - sFiltersFramesetHTML.appendAscii( "\" title=\"List\">\n" ); - sFiltersFramesetHTML.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties" - sFiltersFramesetHTML.appendAscii( TARGET_PROPERTIES ); - sFiltersFramesetHTML.appendAscii( "\" src=\"" ); - sFiltersFramesetHTML.appendAscii( FILTERPROPERTIES_HTML ); - sFiltersFramesetHTML.appendAscii( "\" title=\"Properties\">\n" ); - sFiltersFramesetHTML.appendAscii( "\t\t</frameset>\n" ); // close frameset cols - sFiltersFramesetHTML.appendAscii( "</html>\n" ); // close html - - impl_writeFile( FRAMESET_FILTERSUINAMESORT_HTML, U2B(sFiltersFramesetHTML.makeStringAndClear()) ); - - //------------------------------------------------------------------------------------------------------------- - // generate filter list (names and links only!) - // use same loop to generate filter property list! - OUStringBuffer sAllFiltersHTML( 10000 ); - - sAllFiltersHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tAll Filters\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html - sAllFiltersHTML.appendAscii( "\t\t<table border=0><tr><td bgcolor=#ff8040><strong>Nr.</strong></td><td bgcolor=#ff8040><strong>Filter</strong></td></tr>\n" ); // open table - - css::uno::Sequence< ::rtl::OUString > lWriter ; - css::uno::Sequence< ::rtl::OUString > lWeb ; - css::uno::Sequence< ::rtl::OUString > lGlobal ; - css::uno::Sequence< ::rtl::OUString > lChart ; - css::uno::Sequence< ::rtl::OUString > lCalc ; - css::uno::Sequence< ::rtl::OUString > lImpress; - css::uno::Sequence< ::rtl::OUString > lDraw ; - css::uno::Sequence< ::rtl::OUString > lMath ; - css::uno::Sequence< ::rtl::OUString > lGraphic; - css::uno::Sequence< ::rtl::OUString > lDefault; - - css::uno::Sequence< ::rtl::OUString > lNames ; - StringList lUINamesUnsorted ; - StringList lUINamesSorted ; - StringList lNamesSorted ; - - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_writer:default_first:use_order:sort_prop=name") ) >>= lWriter ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_web:default_first:use_order:sort_prop=name") ) >>= lWeb ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_global:default_first:use_order:sort_prop=name") ) >>= lGlobal ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_chart:default_first:use_order:sort_prop=name") ) >>= lChart ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_calc:default_first:use_order:sort_prop=name") ) >>= lCalc ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_impress:default_first:use_order:sort_prop=name") ) >>= lImpress ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_draw:default_first:use_order:sort_prop=name") ) >>= lDraw ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_math:default_first:use_order:sort_prop=name") ) >>= lMath ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_graphic:default_first:use_order:sort_prop=name") ) >>= lGraphic ; - m_aData.pCache->queryFilters( DECLARE_ASCII("_query_all:iflags=256") ) >>= lDefault ; - - sal_Int32 nModuls = 0; - sal_Int32 nFilters = 0; - sal_Int32 nModulCount = 10; - sal_Int32 nFilterCount = 0; - Filter aFilter ; - ::rtl::OString sModul ; - - for( nModuls=0; nModuls<nModulCount; ++nModuls ) - { - switch( nModuls ) - { - case 0: { - lNames = lWriter; - sModul = "Writer"; - } - break; - case 1: { - lNames = lWeb ; - sModul = "Web"; - } - break; - case 2: { - lNames = lGlobal ; - sModul = "GlobalDokument"; - } - break; - case 3: { - lNames = lChart ; - sModul = "Chart"; - } - break; - case 4: { - lNames = lCalc ; - sModul = "Calc"; - } - break; - case 5: { - lNames = lImpress; - sModul = "Impress"; - } - break; - case 6: { - lNames = lDraw ; - sModul = "Draw"; - } - break; - case 7: { - lNames = lMath ; - sModul = "Math"; - } - break; - case 8: { - lNames = lGraphic; - sModul = "Graphic"; - } - break; - case 9: { - lNames = lDefault; - sModul = "Default Filter!"; - } - break; - } - lUINamesUnsorted.free(); - lUINamesSorted.free(); - lNamesSorted.free(); - - sAllFiltersHTML.appendAscii ( "\t\t\t<tr>\n" ); - sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#00aa00 fgcolor=#ffffff valign=\"top\" align=\"top\">-</td>\n" ); - sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#00aa00 fgcolor=#ffffff valign=\"top\" align=\"top\">" ); - sAllFiltersHTML.appendAscii ( sModul ); - sAllFiltersHTML.appendAscii ( "</td>\n" ); - sAllFiltersHTML.appendAscii ( "\t\t\t</tr>\n" ); - - nFilterCount = lNames.getLength(); - for( nFilters=0; nFilters<nFilterCount; ++nFilters ) - { - aFilter = m_aData.pCache->getFilter( lNames[nFilters] ); - lUINamesUnsorted.push_back( DataContainer::getLocalelizedString( aFilter.lUINames, DECLARE_ASCII("de") ) ); - } - - lUINamesSorted = lUINamesUnsorted; - ::std::stable_sort( lUINamesSorted.begin(), lUINamesSorted.end() ); - for( StringListIterator pSortedItem=lUINamesSorted.begin(); pSortedItem!=lUINamesSorted.end(); ++pSortedItem ) - { - StringListIterator pUnsortedItem = ::std::find( lUINamesUnsorted.begin(), lUINamesUnsorted.end(), *pSortedItem ); - sal_Int32 nPosition = pUnsortedItem - lUINamesUnsorted.begin(); - lNamesSorted.push_back( lNames[nPosition] ); - } - - for( nFilters=0; nFilters<nFilterCount; ++nFilters ) - { - aFilter = m_aData.pCache->getFilter( lNamesSorted[nFilters] ); - - // write entry in filter list table - sAllFiltersHTML.appendAscii ( "\t\t\t<tr>\n" ); // open row - sAllFiltersHTML.appendAscii ( "\t\t\t\t<td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">" ); // open column "nr" - sAllFiltersHTML.append ( OUString::valueOf( nFilters ) ); // write nr - sAllFiltersHTML.appendAscii ( "</td>\n" ); // close column "nr" - sAllFiltersHTML.appendAscii ( "\t\t\t\t<td>" ); // open column "name" - sAllFiltersHTML.appendAscii ( "<a href=\"" ); // open href="filterproperties.html#<filtername>" - sAllFiltersHTML.appendAscii ( FILTERPROPERTIES_HTML ); - sAllFiltersHTML.appendAscii ( "#" ); - sAllFiltersHTML.append ( aFilter.sName ); - sAllFiltersHTML.appendAscii ( "\" target=\"" ); - sAllFiltersHTML.appendAscii ( TARGET_PROPERTIES ); - sAllFiltersHTML.appendAscii ( "\">" ); - sAllFiltersHTML.append ( lUINamesSorted[nFilters] ); // write name - sAllFiltersHTML.appendAscii ( "</a>" ); // close href - sAllFiltersHTML.appendAscii ( "</td>\n" ); // close column "name" - sAllFiltersHTML.appendAscii ( "\t\t\t</tr>\n" ); // close row + // write entry in filter property table + sFilterPropHTML.appendAscii ( "\t\t<a name=\"" ); // set target="#<typename>" to follow table + sFilterPropHTML.append ( aFilter.sName ); + sFilterPropHTML.appendAscii ( "\"></a>" ); + sFilterPropHTML.appendAscii ( "\t\t<table border=0>\n" ); // open table + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Nr.</td><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\"> "); // generate row "Nr <value>" + sFilterPropHTML.append ( OUString::valueOf( nFilters ) ); + sFilterPropHTML.appendAscii ( "</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Name</td><td valign=\"top\" align=\"top\"> " ); // generate row "Name <value>" + sFilterPropHTML.append ( aFilter.sName ); + sFilterPropHTML.appendAscii ( "</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Order</td><td valign=\"top\" align=\"top\"> \"" ); // generate row "Order <value>" + sFilterPropHTML.append ( aFilter.nOrder ); + sFilterPropHTML.appendAscii ( "\"</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Type</td><td valign=\"top\" align=\"top\"> \"" ); // generate row "Type <value>" + sFilterPropHTML.append ( aFilter.sType ); + sFilterPropHTML.appendAscii ( "\"</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">UIName</td><td valign=\"top\" align=\"top\">" ); // generate row "UIName <value>" + for( ConstStringHashIterator pUIName=aFilter.lUINames.begin() ; + pUIName!=aFilter.lUINames.end() ; + ++pUIName ) + { + sFilterPropHTML.appendAscii ( " [" ); + sFilterPropHTML.append ( pUIName->first ); + sFilterPropHTML.appendAscii ( "] \"" ); + sFilterPropHTML.append ( pUIName->second ); + sFilterPropHTML.appendAscii ( "\"<br>" ); + } + sFilterPropHTML.appendAscii ( "</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">DocumentService</td><td valign=\"top\" align=\"top\"> " ); // generate row "DocumentService <value>" + sFilterPropHTML.append ( aFilter.sDocumentService ); + sFilterPropHTML.appendAscii ( "</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">FilterService</td><td valign=\"top\" align=\"top\"> " ); // generate row "FilterService <value>" + sFilterPropHTML.append ( aFilter.sFilterService ); + sFilterPropHTML.appendAscii ( "</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">Flags</td><td valign=\"top\" align=\"top\"> " ); // generate row "Flags <value>" + if( aFilter.nFlags & FILTERFLAG_IMPORT ) { sFilterPropHTML.append( FILTERFLAGNAME_IMPORT ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_EXPORT ) { sFilterPropHTML.append( FILTERFLAGNAME_EXPORT ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_TEMPLATE ) { sFilterPropHTML.append( FILTERFLAGNAME_TEMPLATE ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_INTERNAL ) { sFilterPropHTML.append( FILTERFLAGNAME_INTERNAL ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_TEMPLATEPATH ) { sFilterPropHTML.append( FILTERFLAGNAME_TEMPLATEPATH ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_OWN ) { sFilterPropHTML.append( FILTERFLAGNAME_OWN ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_ALIEN ) { sFilterPropHTML.append( FILTERFLAGNAME_ALIEN ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_USESOPTIONS ) { sFilterPropHTML.append( FILTERFLAGNAME_USESOPTIONS ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_DEFAULT ) { sFilterPropHTML.append( FILTERFLAGNAME_DEFAULT ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_NOTINFILEDIALOG ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINFILEDIALOG ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_NOTINCHOOSER ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINCHOOSER ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_ASYNCHRON ) { sFilterPropHTML.append( FILTERFLAGNAME_ASYNCHRON ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_READONLY ) { sFilterPropHTML.append( FILTERFLAGNAME_READONLY ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_NOTINSTALLED ) { sFilterPropHTML.append( FILTERFLAGNAME_NOTINSTALLED ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_CONSULTSERVICE ) { sFilterPropHTML.append( FILTERFLAGNAME_CONSULTSERVICE ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_3RDPARTYFILTER ) { sFilterPropHTML.append( FILTERFLAGNAME_3RDPARTYFILTER ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_PACKED ) { sFilterPropHTML.append( FILTERFLAGNAME_PACKED ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_SILENTEXPORT ) { sFilterPropHTML.append( FILTERFLAGNAME_SILENTEXPORT ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_BROWSERPREFERED ) { sFilterPropHTML.append( FILTERFLAGNAME_BROWSERPREFERED ); sFilterPropHTML.appendAscii( "<br> " ); }; + if( aFilter.nFlags & FILTERFLAG_PREFERED ) { sFilterPropHTML.append( FILTERFLAGNAME_PREFERED ); sFilterPropHTML.appendAscii( "<br> " ); }; + + sFilterPropHTML.appendAscii ( "</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">UserData</td><td valign=\"top\" align=\"top\">" ); // generate row "UserData <value>" + for( ConstStringListIterator pUserData=aFilter.lUserData.begin() ; + pUserData!=aFilter.lUserData.end() ; + ++pUserData ) + { + sFilterPropHTML.appendAscii ( " \"" ); + sFilterPropHTML.append ( *pUserData ); + sFilterPropHTML.appendAscii ( "\"<br>" ); + } + sFilterPropHTML.appendAscii ( "</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">FileFormatVersion</td><td valign=\"top\" align=\"top\"> "); // generate row "FileFormatVersion <value>" + sFilterPropHTML.append ( OUString::valueOf( aFilter.nFileFormatVersion ) ); + sFilterPropHTML.appendAscii ( "</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t\t<tr><td bgcolor=#f5f9d5 valign=\"top\" align=\"top\">TemplateName</td><td valign=\"top\" align=\"top\"> " ); // generate row "TemplateName <value>" + sFilterPropHTML.append ( aFilter.sTemplateName ); + sFilterPropHTML.appendAscii ( "</td></tr>\n" ); + sFilterPropHTML.appendAscii ( "\t\t</table>\n" ); // close table + sFilterPropHTML.appendAscii ( "\t\t<p>\n" ); // add space between this and following table } } sAllFiltersHTML.appendAscii( "</table>\n" ); // close table sAllFiltersHTML.appendAscii( "</body>\n</html>\n" ); // close html - impl_writeFile( FILTERSUINAMESORT_HTML , U2B(sAllFiltersHTML.makeStringAndClear()) ); + sFilterPropHTML.appendAscii( "</body>\n</html>\n" ); // close html + + impl_writeFile( ALLFILTERS_HTML , U2B(sAllFiltersHTML.makeStringAndClear()) ); + impl_writeFile( FILTERPROPERTIES_HTML, U2B(sFilterPropHTML.makeStringAndClear()) ); } //***************************************************************************************************************** @@ -1611,12 +1485,12 @@ void CFGView::impl_generateDoubleFilterUINamesHTML() // generate frameset for double UINames OUStringBuffer sFrameSet( 10000 ); - sFrameSet.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Search double UINames\n\t\t</title>\n\t</head>\n"); // open html + sFrameSet.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Search doubl UINames\n\t\t</title>\n\t</head>\n" ); // open html sFrameSet.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols sFrameSet.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list" sFrameSet.appendAscii( TARGET_LIST ); sFrameSet.appendAscii( "\" src=\"" ); - sFrameSet.appendAscii( DOUBLEFILTERNAMES_HTML ); + sFrameSet.appendAscii( DOUBLEFILTERUINAMES_HTML ); sFrameSet.appendAscii( "\" title=\"Double UINames\">\n" ); sFrameSet.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties" sFrameSet.appendAscii( TARGET_PROPERTIES ); @@ -1626,18 +1500,18 @@ void CFGView::impl_generateDoubleFilterUINamesHTML() sFrameSet.appendAscii( "\t\t</frameset>\n" ); // close frameset cols sFrameSet.appendAscii( "</html>\n" ); // close html - impl_writeFile( FRAMESET_DOUBLEFILTERNAMES_HTML, U2B(sFrameSet.makeStringAndClear()) ); + impl_writeFile( FRAMESET_DOUBLEFILTERUINAMES_HTML, U2B(sFrameSet.makeStringAndClear()) ); //------------------------------------------------------------------------------------------------------------- - // Search double UINames + // Search invalid registered detect services! OUStringBuffer sHTML( 10000 ); sHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tDouble Filter UINames\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html sHTML.appendAscii( "\t\tPlease check follow filter entries in configuration. Her UINames are registered twice!<p>\n" ); // write "Note" sHTML.appendAscii( "\t\t<table border=0>\n" ); // open table sHTML.appendAscii( "\t<tr><td bgcolor=#ff8040><strong>Nr.</strong></td>\n" ); // generate table header - sHTML.appendAscii( "\t\t<td bgcolor=#ff8040><strong>Filters</strong></td>\n" ); sHTML.appendAscii( "\t\t<td bgcolor=#ff8040><strong>UIName</strong></td>\n" ); + sHTML.appendAscii( "\t\t<td bgcolor=#ff8040><strong>Filters</strong></td>\n" ); sHTML.appendAscii( "\t</tr>\n" ); StringHash lUINames ; @@ -1650,7 +1524,6 @@ void CFGView::impl_generateDoubleFilterUINamesHTML() for( sal_Int32 nFilter=0; nFilter<nFilterCount; ++nFilter ) { aFilter = m_aData.pCache->getFilter( lFilters[nFilter] ); - for( ConstStringHashIterator pUIName=aFilter.lUINames.begin(); pUIName!= aFilter.lUINames.end(); ++pUIName ) { // Build key value by using localized UIName to register filter name @@ -1662,7 +1535,7 @@ void CFGView::impl_generateDoubleFilterUINamesHTML() sUIName = sBuffer.makeStringAndClear(); // insert filter into hash table - sBuffer.append ( lUINames[ sUIName ] ); + sBuffer.append ( lUINames[ sUIName ] ); sBuffer.appendAscii ( "<a href=\"" ); sBuffer.appendAscii ( FILTERPROPERTIES_HTML ); sBuffer.appendAscii ( "#" ); @@ -1679,15 +1552,14 @@ void CFGView::impl_generateDoubleFilterUINamesHTML() nFilter = 1; for( ConstStringHashIterator pIterator=lUINames.begin(); pIterator!=lUINames.end(); ++pIterator ) { - ::rtl::OUString sT = pIterator->second; if( pIterator->second.indexOf( '\n' ) != pIterator->second.lastIndexOf( '\n' ) ) { sHTML.appendAscii ( "\t<tr><td bgcolor=#ff0000 color=#00ffff valign=top>" ); // generate row for uiname->filter entry sHTML.append ( OUString::valueOf( nFilter ) ); sHTML.appendAscii ( "</td><td valign=top>" ); - sHTML.append ( pIterator->second ); - sHTML.appendAscii ( "</td><td bgcolor=#f0f0f0 valign=top>" ); sHTML.append ( pIterator->first ); + sHTML.appendAscii ( "</td><td bgcolor=#f0f0f0 valign=top>" ); + sHTML.append ( pIterator->second ); sHTML.appendAscii ( "</td></tr>\n" ); ++nFilter; @@ -1696,93 +1568,7 @@ void CFGView::impl_generateDoubleFilterUINamesHTML() sHTML.appendAscii( "</table>\n" ); // close table sHTML.appendAscii( "</body>\n</html>\n" ); // close html - impl_writeFile( DOUBLEFILTERNAMES_HTML, U2B(sHTML.makeStringAndClear()) ); -} - -//***************************************************************************************************************** -void CFGView::impl_generateUnusedTypesHTML() -{ - //------------------------------------------------------------------------------------------------------------- - // generate frameset - OUStringBuffer sFrameSet( 10000 ); - - sFrameSet.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tFrameset: Unused Types\n\t\t</title>\n\t</head>\n" ); // open html - sFrameSet.appendAscii( "\t\t<frameset cols=\"40%,60%\">\n" ); // open frameset for cols - sFrameSet.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "list" - sFrameSet.appendAscii( TARGET_LIST ); - sFrameSet.appendAscii( "\" src=\"" ); - sFrameSet.appendAscii( UNUSEDTYPES_HTML ); - sFrameSet.appendAscii( "\" title=\"Unused Types\">\n" ); - sFrameSet.appendAscii( "\t\t\t<frame name=\"" ); // generate frame "properties" - sFrameSet.appendAscii( TARGET_PROPERTIES ); - sFrameSet.appendAscii( "\" src=\"" ); - sFrameSet.appendAscii( TYPEPROPERTIES_HTML ); - sFrameSet.appendAscii( "\" title=\"Properties\">\n" ); - sFrameSet.appendAscii( "\t\t</frameset>\n" ); // close frameset cols - sFrameSet.appendAscii( "</html>\n" ); // close html - - impl_writeFile( FRAMESET_UNUSEDTYPES_HTML, U2B(sFrameSet.makeStringAndClear()) ); - - //------------------------------------------------------------------------------------------------------------- - // Search unused types! - OUStringBuffer sHTML( 10000 ); - - sHTML.appendAscii( "<html>\n\t<head>\n\t\t<title>\n\t\t\tUnused Types\n\t\t</title>\n\t</head>\n\t<body>\n" ); // open html - sHTML.appendAscii( "\t\tPlease check follow type entries in configuration. They are not used any longer!<p>\n" ); // write "Note" - sHTML.appendAscii( "\t\t<table border=0>\n" ); // open table - sHTML.appendAscii( "\t<tr><td bgcolor=#ff8040><strong>Nr.</strong></td>\n" ); // generate table header - sHTML.appendAscii( "\t\t<td bgcolor=#ff8040><strong>UIName</strong></td>\n" ); - sHTML.appendAscii( "\t\t<td bgcolor=#ff8040><strong>TYpes</strong></td>\n" ); - sHTML.appendAscii( "\t</tr>\n" ); - - css::uno::Sequence< ::rtl::OUString > lTypes = m_aData.pCache->getAllTypeNames() ; - sal_Int32 nTypeCount = lTypes.getLength() ; - ::rtl::OUString sDefaultDetector = m_aData.pCache->getDefaultDetector(); - ::rtl::OUString sDefaultLoader = m_aData.pCache->getDefaultLoader() ; - - for( sal_Int32 nType=0; nType<nTypeCount; ++nType ) - { - CheckedStringListIterator pStepperFilter ; - CheckedStringListIterator pStepperDetector ; - CheckedStringListIterator pStepperLoader ; - CheckedStringListIterator pStepperHandler ; - ::rtl::OUString sFilter ; - ::rtl::OUString sDetector ; - ::rtl::OUString sLoader ; - ::rtl::OUString sHandler ; - sal_Bool bFound = sal_False; - - bFound = m_aData.pCache->searchFilterForType( lTypes[nType], pStepperFilter, sFilter ); - if( bFound == sal_False ) - bFound = ( m_aData.pCache->searchLoaderForType( lTypes[nType], pStepperLoader, sLoader ) && sLoader!=sDefaultLoader ); - if( bFound == sal_False ) - bFound = ( m_aData.pCache->searchDetectorForType( lTypes[nType], pStepperDetector, sDetector ) && sDetector!=sDefaultDetector ); - if( bFound == sal_False ) - bFound = m_aData.pCache->searchContentHandlerForType( lTypes[nType], pStepperHandler, sHandler ); - - if( bFound == sal_False ) - { - FileType aType = m_aData.pCache->getType( lTypes[nType] ); - sHTML.appendAscii ( "\t<tr><td bgcolor=#ff0000 color=#00ffff valign=top>" ); // generate row - sHTML.append ( OUString::valueOf( nType ) ); - sHTML.appendAscii ( "</td><td valign=top>" ); - sHTML.append ( aType.lUINames[DECLARE_ASCII("en-US")] ); - sHTML.appendAscii ( "</td><td bgcolor=#f0f0f0 valign=top>" ); - sHTML.appendAscii ( "<a href=\"" ); - sHTML.appendAscii ( TYPEPROPERTIES_HTML ); - sHTML.appendAscii ( "#" ); - sHTML.append ( aType.sName ); - sHTML.appendAscii ( "\" target=\"" ); - sHTML.appendAscii ( TARGET_PROPERTIES ); - sHTML.appendAscii ( "\">" ); - sHTML.append ( aType.sName ); - sHTML.appendAscii ( "\"</a><br>\n</td></tr>\n" ); - } - } - - sHTML.appendAscii( "</table>\n" ); // close table - sHTML.appendAscii( "</body>\n</html>\n" ); // close html - impl_writeFile( UNUSEDTYPES_HTML, U2B(sHTML.makeStringAndClear()) ); + impl_writeFile( DOUBLEFILTERUINAMES_HTML, U2B(sHTML.makeStringAndClear()) ); } //***************************************************************************************************************** diff --git a/framework/test/typecfg/makefile.mk b/framework/test/typecfg/makefile.mk new file mode 100644 index 000000000000..6521c83ef091 --- /dev/null +++ b/framework/test/typecfg/makefile.mk @@ -0,0 +1,128 @@ +#************************************************************************* +# +# $RCSfile: makefile.mk,v $ +# +# $Revision: 1.8 $ +# +# last change: $Author: hr $ $Date: 2003-03-25 18:22:06 $ +# +# The Contents of this file are made available subject to the terms of +# either of the following licenses +# +# - GNU Lesser General Public License Version 2.1 +# - Sun Industry Standards Source License Version 1.1 +# +# Sun Microsystems Inc., October, 2000 +# +# GNU Lesser General Public License Version 2.1 +# ============================================= +# Copyright 2000 by Sun Microsystems, Inc. +# 901 San Antonio Road, Palo Alto, CA 94303, USA +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License version 2.1, as published by the Free Software Foundation. +# +# This library 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 for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# +# +# Sun Industry Standards Source License Version 1.1 +# ================================================= +# The contents of this file are subject to the Sun Industry Standards +# Source License Version 1.1 (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.openoffice.org/license.html. +# +# Software provided under this License is provided on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, +# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, +# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. +# See the License for the specific provisions governing your rights and +# obligations concerning the Software. +# +# The Initial Developer of the Original Code is: Sun Microsystems, Inc. +# +# Copyright: 2000 by Sun Microsystems, Inc. +# +# All Rights Reserved. +# +# Contributor(s): _______________________________________ +# +# +# +#************************************************************************* +PRJ=..$/.. + +PRJNAME= framework +TARGET= typecfg +LIBTARGET= NO +ENABLE_EXCEPTIONS= TRUE +USE_DEFFILE= TRUE +NO_BSYMBOLIC= TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : svpre.mk +.INCLUDE : settings.mk +.INCLUDE : sv.mk + +.IF "$(COM)"=="ICC" +LINKFLAGS+=/SEGMENTS:1024 /PACKD:32768 +.ENDIF + +# --- applikation: "xml2xcd" -------------------------------------------------- + +# --- applikation: "cfgview" -------------------------------------------------- + +APP2TARGET= cfgview + +APP2OBJS= $(SLO)$/cfgview.obj \ + $(SLO)$/servicemanager.obj \ + $(SLO)$/filtercachedata.obj \ + $(SLO)$/filtercache.obj \ + $(SLO)$/wildcard.obj \ + $(SLO)$/lockhelper.obj + +# [ed] 6/16/02 Add in the transactionmanager object on OS X +.IF "$(OS)"=="MACOSX" +APP2OBJS+= $(SLO)$/transactionmanager.obj +.ENDIF + +APP2STDLIBS= $(CPPULIB) \ + $(CPPUHELPERLIB) \ + $(OSLLIB) \ + $(SALLIB) \ + $(VOSLIB) \ + $(TOOLSLIB) \ + $(SVTOOLLIB) \ + $(TKLIB) \ + $(COMPHELPERLIB) \ + $(UNOTOOLSLIB) \ + $(SVLIB) + +APP2DEPN= $(SLO)$/servicemanager.obj \ + $(SLO)$/filtercachedata.obj \ + $(SLO)$/filtercache.obj \ + $(SLO)$/wildcard.obj \ + $(SLO)$/lockhelper.obj + +# [ed] 6/16/02 Add in the transactionmanager object on OS X +.IF "$(OS)"=="MACOSX" +APP2DEPN+= $(SLO)$/transactionmanager.obj +.ENDIF + +.IF "$(GUI)"=="WIN" || "$(GUI)"=="OS2" +APP2DEF= $(MISC)$/cfgview.def +.ENDIF + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk diff --git a/framework/test/typecfg/typecfg.cxx b/framework/test/typecfg/typecfg.cxx new file mode 100644 index 000000000000..82586f0c4192 --- /dev/null +++ b/framework/test/typecfg/typecfg.cxx @@ -0,0 +1,320 @@ +/************************************************************************* + * + * $RCSfile: typecfg.cxx,v $ + * + * $Revision: 1.4 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:22:07 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//_________________________________________________________________________________________________________________ +// my own includes +//_________________________________________________________________________________________________________________ + +#ifndef __FRAMEWORK_CLASSES_SERVICEMANAGER_HXX_ +#include <classes/servicemanager.hxx> +#endif + +#ifndef __FRAMEWORK_CLASSES_FILTERCACHE_HXX_ +#include <classes/filtercache.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_GENERIC_HXX_ +#include <macros/generic.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +#ifndef __FRAMEWORK_SERVICES_H_ +#include <services.h> +#endif + +//_________________________________________________________________________________________________________________ +// interface includes +//_________________________________________________________________________________________________________________ + +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include <com/sun/star/container/XNameContainer.hpp> +#endif + +#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ +#include <com/sun/star/beans/PropertyValue.hpp> +#endif + +//_________________________________________________________________________________________________________________ +// other includes +//_________________________________________________________________________________________________________________ + +#ifndef _COMPHELPER_PROCESSFACTORY_HXX_ +#include <comphelper/processfactory.hxx> +#endif + +#ifndef _VOS_PROCESS_HXX_ +#include <vos/process.hxx> +#endif + +#ifndef _RTL_USTRING_ +#include <rtl/ustring.hxx> +#endif + +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif + +#ifndef __SGI_STL_HASH_MAP +#include <hash_map> +#endif + +#include <vcl/event.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wrkwin.hxx> +#include <vcl/msgbox.hxx> +#include <stdio.h> + +//_________________________________________________________________________________________________________________ +// const +//_________________________________________________________________________________________________________________ + +#define RDBFILE DECLARE_ASCII("typecfg.rdb" ) +#define ARGUMENT_GENERATE_CFGVIEW DECLARE_ASCII("-cfgview" ) +#define ARGUMENT_CHECK_FILTERREGISTRATION DECLARE_ASCII("-registerfilter" ) +#define ARGUMENT_GENERATE_TYPEDETECTION_XCD DECLARE_ASCII("-generatexcd" ) + +//_________________________________________________________________________________________________________________ +// namespace +//_________________________________________________________________________________________________________________ + +using namespace ::std ; +using namespace ::vos ; +using namespace ::rtl ; +using namespace ::framework ; +using namespace ::comphelper ; +using namespace ::com::sun::star::uno ; +using namespace ::com::sun::star::lang ; +using namespace ::com::sun::star::container ; +using namespace ::com::sun::star::beans ; + +//_________________________________________________________________________________________________________________ +// defines +//_________________________________________________________________________________________________________________ + +//_________________________________________________________________________________________________________________ +// declarations +//_________________________________________________________________________________________________________________ + +enum EMode +{ + E_GENERATE_CFGVIEW , + E_CHECK_FILTERREGISTRATION , + E_GENERATE_TYPEDETECTION_XCD +}; + +/*-***************************************************************************************************************/ +class TypeApplication : public Application +{ + //************************************************************************************************************* + public: + + void Main(); + + //************************************************************************************************************* + private: + + void impl_parseCommandLine (); + void impl_generateCFGView (); + void impl_checkFilterRegistration (); + void impl_generateTypeDetectionXCD (); + + //************************************************************************************************************* + private: + + EMode m_eMode ; + Reference< XMultiServiceFactory > m_xServiceManager ; + + FilterCache* m_pCache ; + +}; // class FilterApplication + +//_________________________________________________________________________________________________________________ +// global variables +//_________________________________________________________________________________________________________________ + +TypeApplication gApplication; + +//***************************************************************************************************************** +void TypeApplication::Main() +{ + // Init global servicemanager and set it. + ServiceManager aManager; + m_xServiceManager = aManager.getSharedUNOServiceManager( RDBFILE ); + setProcessServiceFactory( m_xServiceManager ); + + m_pCache = new FilterCache; + + impl_parseCommandLine(); + + switch( m_eMode ) + { + case E_GENERATE_CFGVIEW : impl_generateCFGView(); + break; + case E_CHECK_FILTERREGISTRATION : impl_checkFilterRegistration(); + break; + case E_GENERATE_TYPEDETECTION_XCD : impl_generateTypeDetectionXCD(); + break; + } + + delete m_pCache; + m_pCache = NULL; +} + +//***************************************************************************************************************** +void TypeApplication::impl_parseCommandLine() +{ + OStartupInfo aInfo ; + OUString sArgument ; + sal_Int32 nArgument = 0 ; + sal_Int32 nCount = aInfo.getCommandArgCount(); + + while( nArgument<nCount ) + { + aInfo.getCommandArg( nArgument, sArgument ); + + if( sArgument == ARGUMENT_GENERATE_CFGVIEW ) + { + m_eMode = E_GENERATE_CFGVIEW; + break; + } + else + if( sArgument == ARGUMENT_CHECK_FILTERREGISTRATION ) + { + m_eMode = E_CHECK_FILTERREGISTRATION; + break; + } + else + if( sArgument == ARGUMENT_GENERATE_TYPEDETECTION_XCD ) + { + m_eMode = E_GENERATE_TYPEDETECTION_XCD; + break; + } + + ++nArgument; + } +} + +//***************************************************************************************************************** +void TypeApplication::impl_generateCFGView() +{ + #ifdef ENABLE_FILTERCACHEDEBUG + // Cache use ref count! + FilterCache aCache; + aCache.impldbg_generateHTMLView(); + #endif //ENABLE_FILTERCACHEDEBUG +} + +//***************************************************************************************************************** +void TypeApplication::impl_checkFilterRegistration() +{ + Reference< XNameContainer > xFilterContainer( m_xServiceManager->createInstance( SERVICENAME_FILTERFACTORY ), UNO_QUERY ); + LOG_ASSERT2( xFilterContainer.is()==sal_False, "TypeApplication::impl_checkFilterRegistration()", "Couldn't create filter factory!" ) + if( xFilterContainer.is() == sal_True ) + { + Sequence< PropertyValue > lProperties( 8 ); + + lProperties[0].Name = DECLARE_ASCII("Type") ; + lProperties[0].Value <<= DECLARE_ASCII("MeinType") ; + + lProperties[1].Name = DECLARE_ASCII("UIName") ; + lProperties[1].Value <<= DECLARE_ASCII("MeinUIName") ; + + lProperties[2].Name = DECLARE_ASCII("UINames") ; + lProperties[2].Value <<= Sequence< PropertyValue >() ; + + lProperties[3].Name = DECLARE_ASCII("DocumentService") ; + lProperties[3].Value <<= DECLARE_ASCII("MeinDocService") ; + + lProperties[4].Name = DECLARE_ASCII("FilterService") ; + lProperties[4].Value <<= DECLARE_ASCII("MeinFilterService") ; + + lProperties[5].Name = DECLARE_ASCII("Flags") ; + lProperties[5].Value <<= (sal_Int32)256 ; + + lProperties[6].Name = DECLARE_ASCII("UserData") ; + lProperties[6].Value <<= Sequence< OUString >() ; + + lProperties[7].Name = DECLARE_ASCII("FileFormatVersion") ; + lProperties[7].Value <<= (sal_Int32)0 ; + + lProperties[8].Name = DECLARE_ASCII("TemplateName") ; + lProperties[8].Value <<= DECLARE_ASCII("MeinTemplate") ; + } +} + +//***************************************************************************************************************** +void TypeApplication::impl_generateTypeDetectionXCD() +{ + #ifdef ENABLE_GENERATEFILTERCACHE + // Cache use ref count! + FilterCache aCache ; + sal_Bool bWriteable = sal_True; + sal_Unicode cSeparator = ',' ; + aCache.impldbg_generateXCD( "org.openoffice.Office.TypeDetection.xcd", bWriteable, cSeparator ); + #endif //ENABLE_GENERATEFILTERCACHE +} diff --git a/framework/test/typecfg/xml2xcd.cxx b/framework/test/typecfg/xml2xcd.cxx new file mode 100644 index 000000000000..e6a6f2fbd23a --- /dev/null +++ b/framework/test/typecfg/xml2xcd.cxx @@ -0,0 +1,2474 @@ +/************************************************************************* + * + * $RCSfile: xml2xcd.cxx,v $ + * + * $Revision: 1.9 $ + * + * last change: $Author: hr $ $Date: 2003-03-25 18:22:07 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library 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 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (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.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +//_________________________________________________________________________________________________________________ +// my own includes +//_________________________________________________________________________________________________________________ + +#define VCL_NEED_BASETSD +#include <tools/presys.h> +#include <windows.h> +#include <tools/postsys.h> + +#ifndef __FRAMEWORK_CLASSES_SERVICEMANAGER_HXX_ +#include <classes/servicemanager.hxx> +#endif + +#ifndef __FRAMEWORK_CLASSES_FILTERCACHE_HXX_ +#include <classes/filtercache.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_GENERIC_HXX_ +#include <macros/generic.hxx> +#endif + +#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_ +#include <macros/debug.hxx> +#endif + +#ifndef __FRAMEWORK_SERVICES_H_ +#include <services.h> +#endif + +#ifndef __FRAMEWORK_FILTERFLAGS_H_ +#include <filterflags.h> +#endif + +//_________________________________________________________________________________________________________________ +// interface includes +//_________________________________________________________________________________________________________________ + +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +//_________________________________________________________________________________________________________________ +// other includes +//_________________________________________________________________________________________________________________ + +#ifndef _COMPHELPER_PROCESSFACTORY_HXX_ +#include <comphelper/processfactory.hxx> +#endif + +#ifndef _UNOTOOLS_PROCESSFACTORY_HXX_ +#include <unotools/processfactory.hxx> +#endif + +#ifndef _VOS_PROCESS_HXX_ +#include <vos/process.hxx> +#endif + +#ifndef _RTL_USTRING_ +#include <rtl/ustring.hxx> +#endif + +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif + +#include <vcl/event.hxx> +#include <vcl/svapp.hxx> +#include <vcl/wrkwin.hxx> +#include <vcl/msgbox.hxx> + +//_________________________________________________________________________________________________________________ +// namespace +//_________________________________________________________________________________________________________________ + +using namespace ::framework ; + +//_________________________________________________________________________________________________________________ +// const +//_________________________________________________________________________________________________________________ + +//_________________________________________________________________________________________________________________ +// defines +//_________________________________________________________________________________________________________________ + +/* + Versions: 1) first revision + - one entry for every property + - full loclized values + 2) new property "Order" for filters ... but not right set! + all values are 0 + 3) decrease size of xml file + - don't write full localized values + - use own formated string for all non localized values + - seperate "Installed" flag for filters + 4) set right values for "Order" property of filters + 5) support for ContentHandler + draft 6) reactivate old filter names + ??? draft 7) split xml into standard/optional => use DRAFT_SPLIT_VERSION till this version is well known! + */ +#define DRAFT_SPLIT_VERSION 7 + +#define ARGUMENT_PACKAGE_STANDARD DECLARE_ASCII("-pas=") // argument for package name of standard filters +#define ARGUMENT_PACKAGE_ADDITIONAL DECLARE_ASCII("-paa=") // argument for package name of additional filters +#define ARGUMENT_WRITEABLE DECLARE_ASCII("-wri=") // argument for "writeable" [true|false] +#define ARGUMENT_VERSION_INPUT DECLARE_ASCII("-vin=") // argument for file version to read [1|2|3] +#define ARGUMENT_VERSION_OUTPUT DECLARE_ASCII("-vou=") // argument for file version to write [1|2|3] + +#define ARGUMENTLENGTH 5 // All arguments should have the same lenght ... it's better to detect it! +#define ARGUMENTFOUND 0 // OUString::compareTo returns 0 if searched string match given one + +#define WRITEABLE_ON DECLARE_ASCII("true" ) +#define WRITEABLE_OFF DECLARE_ASCII("false") + +#define MINARGUMENTCOUNT 5 // no optional arguments allowed yet! + +#define LISTFILE_STANDARDTYPES "typelist_standard.txt" +#define LISTFILE_ADDITIONALTYPES "typelist_additional.txt" +#define LISTFILE_STANDARDFILTER "filterlist_standard.txt" +#define LISTFILE_ADDITIONALFILTER "filterlist_additional.txt" +#define SCPFILE_STANDARD "scp_standard.txt" +#define SCPFILE_ADDITIONAL "scp_additional.txt" + +//_________________________________________________________________________________________________________________ +// declarations +//_________________________________________________________________________________________________________________ + +/*-***************************************************************************************************************/ +struct AppMember +{ + FilterCache* pFilterCache ; // pointer to configuration + StringHash aOldFilterNamesHash ; // converter tabel to restaurate old filter names + EFilterPackage ePackage ; // specify which package should be used => specify using of file name and buffer too! +// ::rtl::OUString sFileNameStandard ; // file name of our standard filter cfg +// ::rtl::OUString sFileNameAdditional ; // file name of our additional filter cfg + ::rtl::OUString sPackageStandard ; // package name of our standard filter cfg + ::rtl::OUString sPackageAdditional ; // package name of our additional filter cfg + ::rtl::OUStringBuffer sBufferStandard ; // buffer of our standard filter cfg + ::rtl::OUStringBuffer sBufferAdditional ; // buffer of our standard filter cfg + ::rtl::OUStringBuffer sNew2OldSCPStandard ; // setup script to convert new to old filternames (standard filter) + ::rtl::OUStringBuffer sNew2OldSCPAdditional ; // setup script to convert new to old filternames (additional filter) + ::rtl::OUStringBuffer sStandardFilterList ; + ::rtl::OUStringBuffer sAdditionalFilterList ; + ::rtl::OUStringBuffer sStandardTypeList ; + ::rtl::OUStringBuffer sAdditionalTypeList ; + sal_Bool bWriteable ; // enable/disable writable configuration items + sal_Int32 nVersionInput ; // format version of input xml file + sal_Int32 nVersionOutput ; // format version of output xcd file + + sal_Int32 nOriginalTypes ; + sal_Int32 nOriginalFilters ; + sal_Int32 nOriginalDetectors ; + sal_Int32 nOriginalLoaders ; + sal_Int32 nOriginalContentHandlers ; + + sal_Int32 nWrittenTypes ; + sal_Int32 nWrittenFilters ; + sal_Int32 nWrittenDetectors ; + sal_Int32 nWrittenLoaders ; + sal_Int32 nWrittenContentHandlers ; +}; + +/*-***************************************************************************************************************/ +class XCDGenerator : public Application +{ + //************************************************************************************************************* + public: + void Main(); + + //************************************************************************************************************* + private: + void impl_printCopyright ( ); // print copyright to stdout :-) + void impl_printSyntax ( ); // print help to stout for user + void impl_parseCommandLine ( AppMember& rMember ); // parse command line arguments and fill given struct + + void impl_generateXCD ( ); // generate all xcd files by using current configuration + void impl_generateCopyright ( ); // generate copyrights + void impl_generateTypeTemplate ( ); // generate templates ... + void impl_generateFilterTemplate ( ); + void impl_generateDetectorTemplate ( ); + void impl_generateLoaderTemplate ( ); + void impl_generateTypeSet ( ); // generate sets + void impl_generateFilterSet ( ); + void impl_generateDetectorSet ( ); + void impl_generateLoaderSet ( ); + void impl_generateDefaults ( ); // generate defaults + void impl_generateContentHandlerTemplate ( ); + void impl_generateContentHandlerSet ( ); + void impl_generateFilterFlagTemplate ( const ::rtl::OUString& sName , // helper to write atomic elements + sal_Int32 nValue , + const ::rtl::OString& sDescription = ::rtl::OString() ); + void impl_generateIntProperty ( ::rtl::OUStringBuffer& sXCD , + const ::rtl::OUString& sName , + sal_Int32 nValue ); + void impl_generateBoolProperty ( ::rtl::OUStringBuffer& sXCD , + const ::rtl::OUString& sName , + sal_Bool bValue ); + void impl_generateStringProperty ( ::rtl::OUStringBuffer& sXCD , + const ::rtl::OUString& sName , + const ::rtl::OUString& sValue ); + void impl_generateStringListProperty ( ::rtl::OUStringBuffer& sXCD , + const ::rtl::OUString& sName , + const ::framework::StringList& lValue ); + void impl_generateUINamesProperty ( ::rtl::OUStringBuffer& sXCD , + const ::rtl::OUString& sName , + const StringHash& lUINames ); + ::rtl::OUString impl_getOldFilterName ( const ::rtl::OUString& sNewName ); // convert filter names to old format + + static void impl_classifyType ( const AppMember& rData , + const ::rtl::OUString& sTypeName , + EFilterPackage& ePackage ); // classify type as STANDARD or ADDITIONAL one + static void impl_classifyFilter ( const AppMember& rData , + const ::rtl::OUString& sFilterName , + EFilterPackage& ePackage , + sal_Int32& nOrder ); // classify filter as STANDARD or ADDITIONAL filter, set order of standard filter too + static ::rtl::OUString impl_encodeSpecialSigns ( const ::rtl::OUString& sValue ); // encode strings for xml + static sal_Unicode impl_defineSeperator ( const ::framework::StringList& lList ); // search seperator for lists + static void impl_initFilterHashNew2Old ( StringHash& aHash ); // initialize converter table to restaurate old filter names + static void impl_orderAlphabetical ( css::uno::Sequence< ::rtl::OUString >& lList ); // sort stringlist of internal type-, filter- ... names in alphabetical order to generate xcd files everytime in the same way + static sal_Bool impl_isUsAsciiAlphaDigit ( sal_Unicode c , + sal_Bool bDigitAllowed = sal_True ); + static ::rtl::OUString impl_encodeSetName ( const ::rtl::OUString& rSource ); + + //************************************************************************************************************* + private: + AppMember m_aData; + +}; // class XCDGenerator + +//_________________________________________________________________________________________________________________ +// global variables +//_________________________________________________________________________________________________________________ + +XCDGenerator gGenerator; + +//***************************************************************************************************************** +void XCDGenerator::Main() +{ + // Must be :-) +// impl_printCopyright(); + + // Init global servicemanager and set it. + // It's neccessary for other services ... e.g. configuration. + ServiceManager aManager; + ::comphelper::setProcessServiceFactory( aManager.getGlobalUNOServiceManager() ); + ::utl::setProcessServiceFactory ( aManager.getGlobalUNOServiceManager() ); + + // Get optional commands from command line. + impl_parseCommandLine( m_aData ); + + // initialize converter table to match new to old filter names! + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + XCDGenerator::impl_initFilterHashNew2Old( m_aData.aOldFilterNamesHash ); + } + + // Create access to current set filter configuration. + // Attention: Please use it for a full fat office installation only!! + // We need an installation with ALL filters. + // Member m_pData is used in some impl-methods directly ... + m_aData.pFilterCache = new FilterCache( m_aData.nVersionInput, CONFIG_MODE_ALL_LOCALES ); + + // Get some statistic informations of current filled filter cache ... (e.g. count of current activae filters) + // because we need it to check if all filters are converted and written to disk. + // May be it's possible to lose some of them during convertion!!! + m_aData.nOriginalTypes = m_aData.pFilterCache->getAllTypeNames().getLength() ; + m_aData.nOriginalFilters = m_aData.pFilterCache->getAllFilterNames().getLength() ; + m_aData.nOriginalDetectors = m_aData.pFilterCache->getAllDetectorNames().getLength() ; + m_aData.nOriginalLoaders = m_aData.pFilterCache->getAllLoaderNames().getLength() ; + if( m_aData.nVersionInput >= 5 ) + { + m_aData.nOriginalContentHandlers = m_aData.pFilterCache->getAllContentHandlerNames().getLength() ; + } + + // Start generation of xcd file(s). + impl_generateXCD(); + + // Warn programmer if some items couldn't written to file! + LOG_ASSERT2( m_aData.nOriginalTypes != m_aData.nWrittenTypes , "XCDGenerator::Main()", "Generated xcd file could be invalid ... because I miss some types!" ) + LOG_ASSERT2( m_aData.nOriginalFilters != m_aData.nWrittenFilters , "XCDGenerator::Main()", "Generated xcd file could be invalid ... because I miss some filters!" ) + LOG_ASSERT2( m_aData.nOriginalDetectors!= m_aData.nWrittenDetectors, "XCDGenerator::Main()", "Generated xcd file could be invalid ... because I miss some detectors!" ) + LOG_ASSERT2( m_aData.nOriginalLoaders != m_aData.nWrittenLoaders , "XCDGenerator::Main()", "Generated xcd file could be invalid ... because I miss some loaders!" ) + + // Free memory. + delete m_aData.pFilterCache; + m_aData.pFilterCache = NULL; +} + +/*-************************************************************************************************************//** + @short print some info messages to stderr + @descr We must show an copyright or help for using this file. + This two methods do that. + + @seealso - + + @param - + @return - + + @onerror - +*//*-*************************************************************************************************************/ +void XCDGenerator::impl_printCopyright() +{ + fprintf( stderr, "\n(c) Copyright by Sun microsystems, 2001\n" ); +} + +//***************************************************************************************************************** +void XCDGenerator::impl_printSyntax() +{ + // It's not possible to print it out to stdout in a svdem binary :-( + // So we show an assert. + ::rtl::OStringBuffer sBuffer( 500 ); + sBuffer.append( "\nusing: xml2xcd -fis=<file standard filter> -fia=<file additional filter> -pas=<package standard filter> -paa=<package additional filter> -vin=<version input> -vou=<version output> [-wri=<true|false>]\n\n" ); + sBuffer.append( "\tneccessary parameters:\n" ); + sBuffer.append( "\t\t-fis\tname of output file in system notation\n" ); + sBuffer.append( "\t\t-fia\tname of output file in system notation\n" ); + sBuffer.append( "\t\t-pas\tpackage of standard filters\n" ); + sBuffer.append( "\t\t-paa\tpackage of additional filters\n" ); + sBuffer.append( "\t\t-vin\tformat version of input xml file\n" ); + sBuffer.append( "\t\t-vou\tformat version of generated xcd file\n\n" ); + sBuffer.append( "\toptional parameters:\n" ); + sBuffer.append( "\t\t-wri\tconfig items should be writeable ... [true|false]\n" ); + LOG_ERROR( "", sBuffer.makeStringAndClear() ) +} + +/*-************************************************************************************************************//** + @short analyze command line arguments + @descr Created binary accept different command line arguments. These parameters + regulate creation of xcd file. Follow arguments are supported: + "-fis=<filename of standard xcd>" + "-fia=<filename of additional xcd>" + "-wri=<writeable>[true|false]" + "-vin=<version of input file>[1|2|3]" + "-vou=<version of output file>[1|2|3]" + + @seealso - + + @param "rMember", reference to struct of global application member to fill arguments in it + @return right filled member struct or unchanged struct if an error occure! + + @onerror We do nothing - or warn programmer! +*//*-*************************************************************************************************************/ +void XCDGenerator::impl_parseCommandLine( AppMember& rMember ) +{ + ::vos::OStartupInfo aInfo ; + ::rtl::OUString sArgument ; + sal_Int32 nArgument = 0 ; + sal_Int32 nCount = aInfo.getCommandArgCount(); + sal_Int32 nMinCount = 0 ; + + while( nArgument<nCount ) + { + aInfo.getCommandArg( nArgument, sArgument ); +/*OBSOLETE + //_____________________________________________________________________________________________________ + // look for "-fis=..." + if( sArgument.compareTo( ARGUMENT_FILENAME_STANDARD, ARGUMENTLENGTH ) == ARGUMENTFOUND ) + { + rMember.sFileNameStandard = sArgument.copy( ARGUMENTLENGTH, sArgument.getLength()-ARGUMENTLENGTH ); + ++nMinCount; + } + else + //_____________________________________________________________________________________________________ + // look for "-fia=..." + if( sArgument.compareTo( ARGUMENT_FILENAME_ADDITIONAL, ARGUMENTLENGTH ) == ARGUMENTFOUND ) + { + rMember.sFileNameAdditional = sArgument.copy( ARGUMENTLENGTH, sArgument.getLength()-ARGUMENTLENGTH ); + ++nMinCount; + } + else +*/ + //_____________________________________________________________________________________________________ + // look for "-pas=..." + if( sArgument.compareTo( ARGUMENT_PACKAGE_STANDARD, ARGUMENTLENGTH ) == ARGUMENTFOUND ) + { + rMember.sPackageStandard = sArgument.copy( ARGUMENTLENGTH, sArgument.getLength()-ARGUMENTLENGTH ); + ++nMinCount; + } + else + //_____________________________________________________________________________________________________ + // look for "-paa=..." + if( sArgument.compareTo( ARGUMENT_PACKAGE_ADDITIONAL, ARGUMENTLENGTH ) == ARGUMENTFOUND ) + { + rMember.sPackageAdditional = sArgument.copy( ARGUMENTLENGTH, sArgument.getLength()-ARGUMENTLENGTH ); + ++nMinCount; + } + else + //_____________________________________________________________________________________________________ + // look for "-wri=..." + if( sArgument.compareTo( ARGUMENT_WRITEABLE, ARGUMENTLENGTH ) == ARGUMENTFOUND ) + { + ::rtl::OUString sWriteable = sArgument.copy( ARGUMENTLENGTH, sArgument.getLength()-ARGUMENTLENGTH ); + if( sWriteable == WRITEABLE_ON ) + { + rMember.bWriteable = sal_True; + } + else + { + rMember.bWriteable = sal_False; + } + ++nMinCount; + } + //_____________________________________________________________________________________________________ + // look for "-vin=..." + if( sArgument.compareTo( ARGUMENT_VERSION_INPUT, ARGUMENTLENGTH ) == ARGUMENTFOUND ) + { + ::rtl::OUString sVersion = sArgument.copy( ARGUMENTLENGTH, sArgument.getLength()-ARGUMENTLENGTH ); + rMember.nVersionInput = sVersion.toInt32(); + ++nMinCount; + } + //_____________________________________________________________________________________________________ + // look for "-vou=..." + if( sArgument.compareTo( ARGUMENT_VERSION_OUTPUT, ARGUMENTLENGTH ) == ARGUMENTFOUND ) + { + ::rtl::OUString sVersion = sArgument.copy( ARGUMENTLENGTH, sArgument.getLength()-ARGUMENTLENGTH ); + rMember.nVersionOutput = sVersion.toInt32(); + ++nMinCount; + } + + ++nArgument; + } + + // Show help if user don't call us right! + if( nMinCount != MINARGUMENTCOUNT ) + { + impl_printSyntax(); + exit(-1); + } +} + +/*-************************************************************************************************************//** + @short regulate generation of complete xcd file(s) + @descr This method is the toppest one and implement the global structure of generated xcd file(s). + We create a unicode string buffer for complete xcd file in memory ... + use different helper methods to fill it ... + and write it to disk at the end of this method! + + @seealso struct AppMember + + @param - + @return - + + @onerror - +*//*-*************************************************************************************************************/ +void XCDGenerator::impl_generateXCD() +{ + impl_generateCopyright(); + + // Write header + m_aData.sBufferStandard.appendAscii ( "\n<!-- PLEASE DON'T CHANGE TEMPLATES OR FILE FORMAT BY HAND! USE \"XML2XCD.EXE\" TO DO THAT. THANKS. -->\n\n" ); + m_aData.sBufferStandard.appendAscii ( "<!DOCTYPE schema:component SYSTEM \"../../../../schema/schema.description.dtd\">\n" ); + m_aData.sBufferStandard.appendAscii ( "<schema:component cfg:name=\"" ); + m_aData.sBufferStandard.append ( m_aData.sPackageStandard ); + m_aData.sBufferStandard.appendAscii ( "\" cfg:package=\"org.openoffice.Office\" xml:lang=\"en-US\" xmlns:schema=\"http://openoffice.org/2000/registry/schema/description\" xmlns:default=\"http://openoffice.org/2000/registry/schema/default\" xmlns:cfg=\"http://openoffice.org/2000/registry/instance\">\n" ); + m_aData.sBufferStandard.appendAscii ( "\t<schema:templates>\n" ); + + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + m_aData.sBufferAdditional.appendAscii ( "\n<!-- PLEASE DON'T CHANGE TEMPLATES OR FILE FORMAT BY HAND! USE \"XML2XCD.EXE\" TO DO THAT. THANKS. -->\n\n" ); + m_aData.sBufferAdditional.appendAscii ( "<!DOCTYPE schema:component SYSTEM \"../../../../schema/schema.description.dtd\">\n" ); + m_aData.sBufferAdditional.appendAscii ( "<schema:component cfg:name=\"" ); + m_aData.sBufferAdditional.append ( m_aData.sPackageAdditional ); + m_aData.sBufferAdditional.appendAscii ( "\" cfg:package=\"org.openoffice.Office\" xml:lang=\"en-US\" xmlns:schema=\"http://openoffice.org/2000/registry/schema/description\" xmlns:default=\"http://openoffice.org/2000/registry/schema/default\" xmlns:cfg=\"http://openoffice.org/2000/registry/instance\">\n" ); + m_aData.sBufferAdditional.appendAscii ( "\t<schema:import cfg:name=\"" ); + m_aData.sBufferAdditional.append ( m_aData.sPackageStandard ); + m_aData.sBufferAdditional.appendAscii ( "\"/>\n" ); + } + + // Follow ...generate... methods to nothing for additional filters! + impl_generateTypeTemplate (); + impl_generateFilterTemplate (); + impl_generateDetectorTemplate(); + if( m_aData.nVersionOutput >= 5 ) + { + impl_generateContentHandlerTemplate (); + } + impl_generateLoaderTemplate (); + + m_aData.sBufferStandard.appendAscii ( "\t</schema:templates>\n" ); + m_aData.sBufferStandard.appendAscii ( "<schema:schema cfg:localized=\"false\">\n" ); + + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + m_aData.sBufferAdditional.appendAscii( "\t<schema:schema cfg:localized=\"false\">\n" ); + } + + impl_generateTypeSet (); + impl_generateFilterSet (); + impl_generateDetectorSet (); + if( m_aData.nVersionInput >= 5 ) + { + impl_generateContentHandlerSet (); + } + impl_generateLoaderSet (); + impl_generateDefaults (); + + m_aData.sBufferStandard.appendAscii ( "\t</schema:schema>\n" ); + m_aData.sBufferStandard.appendAscii ( "</schema:component>\n" ); + + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + m_aData.sBufferAdditional.appendAscii ( "\t</schema:schema>\n" ); + m_aData.sBufferAdditional.appendAscii ( "</schema:component>\n" ); + } + + ::rtl::OUString sFileName = m_aData.sPackageStandard ; + sFileName += DECLARE_ASCII(".xcd") ; + + WRITE_LOGFILE( U2B( sFileName ) , U2B(m_aData.sBufferStandard.makeStringAndClear() )) + WRITE_LOGFILE( LISTFILE_STANDARDFILTER , U2B(m_aData.sStandardFilterList.makeStringAndClear() )) + WRITE_LOGFILE( LISTFILE_STANDARDTYPES , U2B(m_aData.sStandardTypeList.makeStringAndClear() )) + WRITE_LOGFILE( SCPFILE_STANDARD , U2B(m_aData.sNew2OldSCPStandard.makeStringAndClear() )) + + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + sFileName = m_aData.sPackageAdditional ; + sFileName += DECLARE_ASCII(".xcd") ; + + WRITE_LOGFILE( U2B(sFileName) , U2B(m_aData.sBufferAdditional.makeStringAndClear() )) + WRITE_LOGFILE( LISTFILE_ADDITIONALFILTER, U2B(m_aData.sAdditionalFilterList.makeStringAndClear() )) + WRITE_LOGFILE( LISTFILE_ADDITIONALTYPES , U2B(m_aData.sAdditionalTypeList.makeStringAndClear() )) + WRITE_LOGFILE( SCPFILE_ADDITIONAL , U2B(m_aData.sNew2OldSCPAdditional.makeStringAndClear() )) + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateCopyright() +{ + m_aData.sBufferStandard.appendAscii( "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" ); + m_aData.sBufferStandard.appendAscii( "<!-- The Contents of this file are made available subject to the terms of\n" ); + m_aData.sBufferStandard.appendAscii( " either of the following licenses\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " - GNU Lesser General Public License Version 2.1\n" ); + m_aData.sBufferStandard.appendAscii( " - Sun Industry Standards Source License Version 1.1\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " Sun Microsystems Inc., October, 2000\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " GNU Lesser General Public License Version 2.1\n" ); + m_aData.sBufferStandard.appendAscii( " =============================================\n" ); + m_aData.sBufferStandard.appendAscii( " Copyright 2000 by Sun Microsystems, Inc.\n" ); + m_aData.sBufferStandard.appendAscii( " 901 San Antonio Road, Palo Alto, CA 94303, USA\n" ); + m_aData.sBufferStandard.appendAscii( " This library is free software; you can redistribute it and/or\n" ); + m_aData.sBufferStandard.appendAscii( " modify it under the terms of the GNU Lesser General Public\n" ); + m_aData.sBufferStandard.appendAscii( " License version 2.1, as published by the Free Software Foundation.\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " This library is distributed in the hope that it will be useful,\n" ); + m_aData.sBufferStandard.appendAscii( " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" ); + m_aData.sBufferStandard.appendAscii( " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" ); + m_aData.sBufferStandard.appendAscii( " Lesser General Public License for more details.\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " You should have received a copy of the GNU Lesser General Public\n" ); + m_aData.sBufferStandard.appendAscii( " License along with this library; if not, write to the Free Software\n" ); + m_aData.sBufferStandard.appendAscii( " Foundation, Inc., 59 Temple Place, Suite 330, Boston,\n" ); + m_aData.sBufferStandard.appendAscii( " MA 02111-1307 USA\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " Sun Industry Standards Source License Version 1.1\n" ); + m_aData.sBufferStandard.appendAscii( " =================================================\n" ); + m_aData.sBufferStandard.appendAscii( " The contents of this file are subject to the Sun Industry Standards\n" ); + m_aData.sBufferStandard.appendAscii( " Source License Version 1.1 (the \"License\"); You may not use this file\n"); + m_aData.sBufferStandard.appendAscii( " except in compliance with the License. You may obtain a copy of the\n" ); + m_aData.sBufferStandard.appendAscii( " License at http://www.openoffice.org/license.html.\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " Software provided under this License is provided on an \"AS IS\" basis,\n"); + m_aData.sBufferStandard.appendAscii( " WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,\n" ); + m_aData.sBufferStandard.appendAscii( " WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,\n" ); + m_aData.sBufferStandard.appendAscii( " MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.\n" ); + m_aData.sBufferStandard.appendAscii( " See the License for the specific provisions governing your rights and\n" ); + m_aData.sBufferStandard.appendAscii( " obligations concerning the Software.\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " The Initial Developer of the Original Code is: Sun Microsystems, Inc.\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " Copyright: 2000 by Sun Microsystems, Inc.\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " All Rights Reserved.\n" ); + m_aData.sBufferStandard.appendAscii( "\n" ); + m_aData.sBufferStandard.appendAscii( " Contributor(s): _______________________________________\n" ); + m_aData.sBufferStandard.appendAscii( "-->\n" ); + + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + m_aData.sBufferAdditional.appendAscii( "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" ); + m_aData.sBufferAdditional.appendAscii( "<!-- The Contents of this file are made available subject to the terms of\n" ); + m_aData.sBufferAdditional.appendAscii( " either of the following licenses\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " - GNU Lesser General Public License Version 2.1\n" ); + m_aData.sBufferAdditional.appendAscii( " - Sun Industry Standards Source License Version 1.1\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " Sun Microsystems Inc., October, 2000\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " GNU Lesser General Public License Version 2.1\n" ); + m_aData.sBufferAdditional.appendAscii( " =============================================\n" ); + m_aData.sBufferAdditional.appendAscii( " Copyright 2000 by Sun Microsystems, Inc.\n" ); + m_aData.sBufferAdditional.appendAscii( " 901 San Antonio Road, Palo Alto, CA 94303, USA\n" ); + m_aData.sBufferAdditional.appendAscii( " This library is free software; you can redistribute it and/or\n" ); + m_aData.sBufferAdditional.appendAscii( " modify it under the terms of the GNU Lesser General Public\n" ); + m_aData.sBufferAdditional.appendAscii( " License version 2.1, as published by the Free Software Foundation.\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " This library is distributed in the hope that it will be useful,\n" ); + m_aData.sBufferAdditional.appendAscii( " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" ); + m_aData.sBufferAdditional.appendAscii( " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" ); + m_aData.sBufferAdditional.appendAscii( " Lesser General Public License for more details.\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " You should have received a copy of the GNU Lesser General Public\n" ); + m_aData.sBufferAdditional.appendAscii( " License along with this library; if not, write to the Free Software\n" ); + m_aData.sBufferAdditional.appendAscii( " Foundation, Inc., 59 Temple Place, Suite 330, Boston,\n" ); + m_aData.sBufferAdditional.appendAscii( " MA 02111-1307 USA\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " Sun Industry Standards Source License Version 1.1\n" ); + m_aData.sBufferAdditional.appendAscii( " =================================================\n" ); + m_aData.sBufferAdditional.appendAscii( " The contents of this file are subject to the Sun Industry Standards\n" ); + m_aData.sBufferAdditional.appendAscii( " Source License Version 1.1 (the \"License\"); You may not use this file\n"); + m_aData.sBufferAdditional.appendAscii( " except in compliance with the License. You may obtain a copy of the\n" ); + m_aData.sBufferAdditional.appendAscii( " License at http://www.openoffice.org/license.html.\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " Software provided under this License is provided on an \"AS IS\" basis,\n"); + m_aData.sBufferAdditional.appendAscii( " WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,\n" ); + m_aData.sBufferAdditional.appendAscii( " WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,\n" ); + m_aData.sBufferAdditional.appendAscii( " MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.\n" ); + m_aData.sBufferAdditional.appendAscii( " See the License for the specific provisions governing your rights and\n" ); + m_aData.sBufferAdditional.appendAscii( " obligations concerning the Software.\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " The Initial Developer of the Original Code is: Sun Microsystems, Inc.\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " Copyright: 2000 by Sun Microsystems, Inc.\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " All Rights Reserved.\n" ); + m_aData.sBufferAdditional.appendAscii( "\n" ); + m_aData.sBufferAdditional.appendAscii( " Contributor(s): _______________________________________\n" ); + m_aData.sBufferAdditional.appendAscii( "-->\n" ); + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateTypeTemplate() +{ + //_________________________________________________________________________________________________________________ + if( m_aData.nVersionOutput==1 || m_aData.nVersionOutput==2 ) + { + m_aData.sBufferStandard.appendAscii( "\t\t<schema:group cfg:name=\"Type\">\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Preferred\" cfg:type=\"boolean\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii("\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the preferred type for an extension if more then one match given URL</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<default:data>false</default:data>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"UIName\" cfg:type=\"string\" cfg:localized=\"true\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the external name of this type</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"MediaType\" cfg:type=\"string\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the mime type </schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"ClipboardFormat\" cfg:type=\"string\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the clipboard format name</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"URLPattern\" cfg:type=\"string\" cfg:derivedBy=\"list\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the patterns used for URLs. This type is only relevant for HTTP, FTP etc. and is used for internal URL formats like private:factory etc.</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Extensions\" cfg:type=\"string\" cfg:derivedBy=\"list\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the possible file extensions.</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"DocumentIconID\" cfg:type=\"int\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the document icon ID of this type</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<default:data>0</default:data>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t</schema:group>\n" ); + } + //_________________________________________________________________________________________________________________ + else if( m_aData.nVersionOutput>=3 ) + { + m_aData.sBufferStandard.appendAscii( "\t\t<schema:group cfg:name=\"Type\">\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"UIName\" cfg:type=\"string\" cfg:localized=\"true\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the external name of this type</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Data\" cfg:type=\"string\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii("\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Containes all data of a type as an own formated string.{Preferred, MediaType, ClipboardFormat, URLPattern, Extensions, DocumentIconID}</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<default:data>false</default:data>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t</schema:group>\n" ); + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateFilterTemplate() +{ + //_________________________________________________________________________________________________________________ + if( m_aData.nVersionOutput==1 || m_aData.nVersionOutput==2 ) + { + m_aData.sBufferStandard.appendAscii( "\t\t<schema:group cfg:name=\"Filter\">\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Installed\" cfg:type=\"boolean\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Make it possible to enable or disable filter by setup!</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<default:data>false</default:data>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + if( m_aData.nVersionOutput==2 ) + { + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Order\" cfg:type=\"int\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies order of filters for relevant module; don't used for default filter!</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<default:data>0</default:data>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + } + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"UIName\" cfg:type=\"string\" cfg:localized=\"true\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the external name of the filter which is displayed at the user interface (dialog).</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Type\" cfg:type=\"string\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the relative type key name of the filter, e.g. Type/T1</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"DocumentService\" cfg:type=\"string\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the name of the UNO service to implement the document.</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"FilterService\" cfg:type=\"string\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the name of the UNO service for importing the document.</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Flags\" cfg:type=\"int\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the properties of the filter</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:type-info>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:value-names>\n" ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_IMPORT , FILTERFLAG_IMPORT , "mark filter for import" ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_EXPORT , FILTERFLAG_EXPORT , "mark filter for export" ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_TEMPLATE , FILTERFLAG_TEMPLATE ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_INTERNAL , FILTERFLAG_INTERNAL ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_TEMPLATEPATH , FILTERFLAG_TEMPLATEPATH ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_OWN , FILTERFLAG_OWN ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_ALIEN , FILTERFLAG_ALIEN ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_USESOPTIONS , FILTERFLAG_USESOPTIONS ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_DEFAULT , FILTERFLAG_DEFAULT , "most important filter, if more then ones available" ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_NOTINFILEDIALOG , FILTERFLAG_NOTINFILEDIALOG, "don't show it in file dialogs!" ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_NOTINCHOOSER , FILTERFLAG_NOTINCHOOSER , "don't show it in chooser!" ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_ASYNCHRON , FILTERFLAG_ASYNCHRON ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_NOTINSTALLED , FILTERFLAG_NOTINSTALLED , "set, if the filter is not installed, but available on CD" ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_CONSULTSERVICE , FILTERFLAG_CONSULTSERVICE , "set, if the filter is not installed and not available an CD" ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_3RDPARTYFILTER , FILTERFLAG_3RDPARTYFILTER , "must set, if the filter is an external one" ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_PACKED , FILTERFLAG_PACKED ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_SILENTEXPORT , FILTERFLAG_SILENTEXPORT ); + impl_generateFilterFlagTemplate( FILTERFLAGNAME_PREFERED , FILTERFLAG_PREFERED ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t</schema:value-names>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:constraints xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\"/>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:type-info>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<default:data>0</default:data>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"UserData\" cfg:type=\"string\" cfg:derivedBy=\"list\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the user-defined data</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<default:data/>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"FileFormatVersion\" cfg:type=\"int\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<!--This should be removed to UserData later-->\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the file format version of the filter</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<default:data>0</default:data>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"TemplateName\" cfg:type=\"string\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<!--This should be removed to UserData later-->\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the template used for importing the file with the specified filter.</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t</schema:group>\n" ); + //_________________________________________________________________________________________________________________ + } + else if( m_aData.nVersionOutput>=3 ) + { + m_aData.sBufferStandard.appendAscii( "\t\t<schema:group cfg:name=\"Filter\">\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Installed\" cfg:type=\"boolean\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Make it possible to enable or disable filter by setup!</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<default:data>false</default:data>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"UIName\" cfg:type=\"string\" cfg:localized=\"true\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the external name of the filter which is displayed at the user interface (dialog).</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Data\" cfg:type=\"string\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>All data of filter written in own format. {Order, OldName, Type, DocumentService, FilterService, Flags, UserData, FilteFormatVersion, TemplateName}</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + + m_aData.sBufferStandard.appendAscii( "\t\t</schema:group>\n" ); + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateFilterFlagTemplate( const ::rtl::OUString& sName, sal_Int32 nValue, const ::rtl::OString& sDescription ) +{ + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t\t<schema:named-value name=\"" ); + m_aData.sBufferStandard.append ( sName ); + m_aData.sBufferStandard.appendAscii( "\" value=\"" ); + m_aData.sBufferStandard.append ( nValue ); + m_aData.sBufferStandard.appendAscii( "\"" ); + + if( sDescription.getLength() > 0 ) + { + m_aData.sBufferStandard.appendAscii( ">\n\t\t\t\t\t\t\t<schema:description>" ); + m_aData.sBufferStandard.appendAscii( sDescription ); + m_aData.sBufferStandard.appendAscii( "</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t\t</schema:named-value>\n" ); + } + else + { + m_aData.sBufferStandard.appendAscii( "/>\n" ); + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateDetectorTemplate() +{ + m_aData.sBufferStandard.appendAscii( "\t\t<schema:group cfg:name=\"DetectService\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Types\" cfg:type=\"string\" cfg:derivedBy=\"list\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>List of types which the service has registered for.</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t</schema:group>\n" ); +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateLoaderTemplate() +{ + m_aData.sBufferStandard.appendAscii( "\t\t<schema:group cfg:name=\"FrameLoader\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"UIName\" cfg:type=\"string\" cfg:localized=\"true\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>Specifies the external name of the filter which is displayed at the user interface (dialog).</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Types\" cfg:type=\"string\" cfg:derivedBy=\"list\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>List of types which the service has registered for.</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t</schema:group>\n" ); +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateContentHandlerTemplate() +{ + m_aData.sBufferStandard.appendAscii( "\t\t<schema:group cfg:name=\"ContentHandler\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t<schema:value cfg:name=\"Types\" cfg:type=\"string\" cfg:derivedBy=\"list\" cfg:writable=\"" ); + m_aData.sBufferStandard.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t<schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t\t<schema:description>List of types which could be handled by this service.</schema:description>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t\t</schema:documentation>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t</schema:value>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t</schema:group>\n" ); +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateTypeSet() +{ + if( m_aData.pFilterCache->hasTypes() == sal_False ) + { + // generate empty set! + m_aData.sBufferStandard.appendAscii ( "\t<schema:set cfg:name=\"Types\" cfg:element-type=\"Type\"/>\n" ); + + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + m_aData.sBufferAdditional.appendAscii( "\t<schema:set cfg:name=\"Types\" cfg:element-type=\"Type\" cfg:component=\"" ); + m_aData.sBufferAdditional.append ( m_aData.sPackageStandard ); + m_aData.sBufferAdditional.appendAscii( "\"/>\n" ); + } + } + else + { + // generate filled set + // open set + m_aData.sBufferStandard.appendAscii ( "\t<schema:set cfg:name=\"Types\" cfg:element-type=\"Type\">\n" ); + + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + m_aData.sBufferAdditional.appendAscii( "\t<schema:set cfg:name=\"Types\" cfg:element-type=\"Type\" cfg:component=\"" ); + m_aData.sBufferAdditional.append ( m_aData.sPackageStandard ); + m_aData.sBufferAdditional.appendAscii( "\">\n" ); + } + + css::uno::Sequence< ::rtl::OUString > lNames = m_aData.pFilterCache->getAllTypeNames(); + css::uno::Sequence< ::rtl::OUString > lEncNames ( lNames ) ; + sal_Int32 nCount = lNames.getLength() ; + sal_Int32 nItem = 0 ; + + XCDGenerator::impl_orderAlphabetical( lNames ); + + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + ::rtl::OUString sName ; + ::rtl::OUString sEncName; + for( nItem=0; nItem<nCount; ++nItem ) + { + sName = lNames[nItem] ; + lEncNames[nItem] = impl_encodeSetName( sName ); + } + } + + for( nItem=0; nItem<nCount; ++nItem ) + { + ::rtl::OUString sName = lNames[nItem] ; + FileType aItem = m_aData.pFilterCache->getType( sName ); + EFilterPackage ePackage ; + + ++m_aData.nWrittenTypes; + + if( m_aData.nVersionOutput==1 || m_aData.nVersionOutput==2 ) + { + // open set entry by using name + m_aData.sBufferStandard.appendAscii( "\t\t<default:group cfg:name=\"" ); + m_aData.sBufferStandard.append ( sName ); + m_aData.sBufferStandard.appendAscii( "\">\n" ); + + // write properties + impl_generateBoolProperty ( m_aData.sBufferStandard, SUBKEY_PREFERRED , aItem.bPreferred ); + impl_generateUINamesProperty ( m_aData.sBufferStandard, SUBKEY_UINAME , aItem.lUINames ); + impl_generateStringProperty ( m_aData.sBufferStandard, SUBKEY_MEDIATYPE , aItem.sMediaType ); + impl_generateStringProperty ( m_aData.sBufferStandard, SUBKEY_CLIPBOARDFORMAT , aItem.sClipboardFormat ); + impl_generateStringListProperty ( m_aData.sBufferStandard, SUBKEY_URLPATTERN , aItem.lURLPattern ); + impl_generateStringListProperty ( m_aData.sBufferStandard, SUBKEY_EXTENSIONS , aItem.lExtensions ); + impl_generateIntProperty ( m_aData.sBufferStandard, SUBKEY_DOCUMENTICONID , aItem.nDocumentIconID ); + + // close set node + m_aData.sBufferStandard.appendAscii( "\t\t</default:group>\n" ); + } + else if( m_aData.nVersionOutput >= 3 ) + { + ::rtl::OUString sPath = DECLARE_ASCII("org.openoffice.Office."); + ::rtl::OUStringBuffer* pXCDBuffer = &(m_aData.sBufferStandard ); + ::rtl::OUStringBuffer* pSCPBuffer = &(m_aData.sNew2OldSCPStandard ); + ::rtl::OUStringBuffer* pListBuffer = &(m_aData.sStandardTypeList ); + + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + XCDGenerator::impl_classifyType( m_aData, sName, ePackage ); + switch( ePackage ) + { + case E_ADDITIONAL : { + sPath += m_aData.sPackageAdditional ; + pXCDBuffer = &(m_aData.sBufferAdditional ); + pSCPBuffer = &(m_aData.sNew2OldSCPAdditional); + pListBuffer = &(m_aData.sAdditionalTypeList ); + } + } + } + else + { + sPath += m_aData.sPackageStandard; + } + + sPath += CFG_PATH_SEPERATOR ; + sPath += DECLARE_ASCII( "Types" ); + sPath += CFG_PATH_SEPERATOR ; + + pListBuffer->append ( sName ); + pListBuffer->appendAscii( "\n" ); + + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + pSCPBuffer->appendAscii( "\"" ); + pSCPBuffer->append ( sPath ); + pSCPBuffer->append ( lNames[nItem] ); + pSCPBuffer->appendAscii( "\"\t\"" ); + pSCPBuffer->append ( sPath ); + pSCPBuffer->appendAscii( "Type" ); + pSCPBuffer->append ( CFG_ENCODING_OPEN ); + pSCPBuffer->append ( lNames[nItem] ); + pSCPBuffer->append ( CFG_ENCODING_CLOSE ); + pSCPBuffer->appendAscii( "\"\n" ); + + sName = lEncNames[nItem]; + aItem.sName = sName; + } + + // open set entry by using name + pXCDBuffer->appendAscii( "\t\t<default:group cfg:name=\"" ); + pXCDBuffer->append ( sName ); + pXCDBuffer->appendAscii( "\">\n" ); + + // write properties + impl_generateUINamesProperty( *pXCDBuffer, SUBKEY_UINAME, aItem.lUINames ); + impl_generateStringProperty ( *pXCDBuffer, SUBKEY_DATA , FilterCFGAccess::encodeTypeData( aItem ) ); + + // close set node + pXCDBuffer->appendAscii( "\t\t</default:group>\n" ); + } + } + + // close set + m_aData.sBufferStandard.appendAscii( "\t</schema:set>\n" ); + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + m_aData.sBufferAdditional.appendAscii( "\t</schema:set>\n" ); + } + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateFilterSet() +{ + if( m_aData.pFilterCache->hasFilters() == sal_False ) + { + // write empty filter set. + m_aData.sBufferStandard.appendAscii( "\t<schema:set cfg:name=\"Filters\" cfg:element-type=\"Filter\"/>\n" ); + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + m_aData.sBufferAdditional.appendAscii( "\t<schema:set cfg:name=\"Filters\" cfg:element-type=\"Filter\" cfg:component=\"" ); + m_aData.sBufferAdditional.append ( m_aData.sPackageStandard ); + m_aData.sBufferAdditional.appendAscii( "\"/>\n" ); + } + } + else + { + // open set + m_aData.sBufferStandard.appendAscii( "\t<schema:set cfg:name=\"Filters\" cfg:element-type=\"Filter\">\n" ); + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + m_aData.sBufferAdditional.appendAscii( "\t<schema:set cfg:name=\"Filters\" cfg:element-type=\"Filter\" cfg:component=\"" ); + m_aData.sBufferAdditional.append ( m_aData.sPackageStandard ); + m_aData.sBufferAdditional.appendAscii( "\">\n" ); + } + + css::uno::Sequence< ::rtl::OUString > lNewNames = m_aData.pFilterCache->getAllFilterNames(); + css::uno::Sequence< ::rtl::OUString > lOldNames ( lNewNames ) ; + css::uno::Sequence< ::rtl::OUString > lEncNames ( lNewNames ) ; + sal_Int32 nCount = lNewNames.getLength() ; + sal_Int32 nItem = 0 ; + + XCDGenerator::impl_orderAlphabetical( lNewNames ); + + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + ::rtl::OUString sNewName; + ::rtl::OUString sOldName; + for( nItem=0; nItem<nCount; ++nItem ) + { + sNewName = lNewNames[nItem] ; + sOldName = impl_getOldFilterName ( sNewName ); + lOldNames[nItem] = sOldName ; + lEncNames[nItem] = impl_encodeSetName ( sOldName ); + } + } + + for( nItem=0; nItem<nCount; ++nItem ) + { + ::rtl::OUString sName = lNewNames[nItem] ; + Filter aItem = m_aData.pFilterCache->getFilter( lNewNames[nItem] ) ; + EFilterPackage ePackage ; + + ++m_aData.nWrittenFilters; + + if( m_aData.nVersionOutput==1 || m_aData.nVersionOutput==2 ) + { + // open set node by using name + m_aData.sBufferStandard.appendAscii( "\t\t<default:group cfg:name=\"" ); + m_aData.sBufferStandard.append ( sName ); + m_aData.sBufferStandard.appendAscii( "\">\n" ); + + // write properties + // Attention: + // We generate "Installed=false" for all entries ... because it's the default for all filters. + // You must work with a full office installation and change this to "true" in generated XML file!!! + impl_generateBoolProperty ( m_aData.sBufferStandard, SUBKEY_INSTALLED , sal_False ); + impl_generateIntProperty ( m_aData.sBufferStandard, SUBKEY_ORDER , aItem.nOrder ); + impl_generateStringProperty ( m_aData.sBufferStandard, SUBKEY_TYPE , aItem.sType ); + impl_generateUINamesProperty ( m_aData.sBufferStandard, SUBKEY_UINAME , aItem.lUINames ); + impl_generateStringProperty ( m_aData.sBufferStandard, SUBKEY_DOCUMENTSERVICE , aItem.sDocumentService ); + impl_generateStringProperty ( m_aData.sBufferStandard, SUBKEY_FILTERSERVICE , aItem.sFilterService ); + impl_generateIntProperty ( m_aData.sBufferStandard, SUBKEY_FLAGS , aItem.nFlags ); + impl_generateStringListProperty ( m_aData.sBufferStandard, SUBKEY_USERDATA , aItem.lUserData ); + impl_generateIntProperty ( m_aData.sBufferStandard, SUBKEY_FILEFORMATVERSION, aItem.nFileFormatVersion ); + impl_generateStringProperty ( m_aData.sBufferStandard, SUBKEY_TEMPLATENAME , aItem.sTemplateName ); + + // close set node + m_aData.sBufferStandard.appendAscii( "\t\t</default:group>\n" ); + } + else if( m_aData.nVersionOutput>=3 ) + { + ::rtl::OUString sPath = DECLARE_ASCII("org.openoffice.Office."); + ::rtl::OUStringBuffer* pXCDBuffer = &(m_aData.sBufferStandard ); + ::rtl::OUStringBuffer* pSCPBuffer = &(m_aData.sNew2OldSCPStandard ); + ::rtl::OUStringBuffer* pListBuffer = &(m_aData.sStandardFilterList ); + + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + XCDGenerator::impl_classifyFilter( m_aData, sName, ePackage, aItem.nOrder ); + switch( ePackage ) + { + case E_ADDITIONAL : { + sPath += m_aData.sPackageAdditional ; + pXCDBuffer = &(m_aData.sBufferAdditional ); + pSCPBuffer = &(m_aData.sNew2OldSCPAdditional); + pListBuffer = &(m_aData.sAdditionalFilterList); + } + } + } + else + { + sPath += m_aData.sPackageStandard; + } + + sPath += CFG_PATH_SEPERATOR ; + sPath += DECLARE_ASCII( "Filters" ); + sPath += CFG_PATH_SEPERATOR ; + + pListBuffer->append ( sName ); + pListBuffer->appendAscii( "\n" ); + + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + pSCPBuffer->appendAscii( "\"" ); + pSCPBuffer->append ( sPath ); + pSCPBuffer->append ( lNewNames[nItem] ); + pSCPBuffer->appendAscii( "\"\t\"" ); + pSCPBuffer->append ( sPath ); + pSCPBuffer->appendAscii( "Filter" ); + pSCPBuffer->append ( CFG_ENCODING_OPEN ); + pSCPBuffer->append ( lOldNames[nItem] ); + pSCPBuffer->append ( CFG_ENCODING_CLOSE ); + pSCPBuffer->appendAscii( "\"\n" ); + + sName = lEncNames[nItem]; + aItem.sName = sName; + } + + // open set node by using name + pXCDBuffer->appendAscii( "\t\t<default:group cfg:name=\"" ); + pXCDBuffer->append ( sName ); + pXCDBuffer->appendAscii( "\">\n" ); + + // write properties + // Attention: + // We generate "Installed=false" for all entries ... because it's the default for all filters. + // You must work with a full office installation and change this to "true" in generated XML file!!! + impl_generateBoolProperty ( *pXCDBuffer, SUBKEY_INSTALLED, sal_False ); + impl_generateUINamesProperty( *pXCDBuffer, SUBKEY_UINAME , aItem.lUINames ); + impl_generateStringProperty ( *pXCDBuffer, SUBKEY_DATA , FilterCFGAccess::encodeFilterData( aItem ) ); + + // close set node + pXCDBuffer->appendAscii( "\t\t</default:group>\n" ); + } + } + + // close set + m_aData.sBufferStandard.appendAscii( "\t</schema:set>\n" ); + if( m_aData.nVersionOutput >= DRAFT_SPLIT_VERSION ) + { + m_aData.sBufferAdditional.appendAscii( "\t</schema:set>\n" ); + } + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateDetectorSet() +{ + if( m_aData.pFilterCache->hasDetectors() == sal_False ) + { + // write empty detector set! + m_aData.sBufferStandard.appendAscii( "\t<schema:set cfg:name=\"DetectServices\" cfg:element-type=\"DetectService\"/>\n" ); + } + else + { + // open set + m_aData.sBufferStandard.appendAscii( "\t<schema:set cfg:name=\"DetectServices\" cfg:element-type=\"DetectService\">\n" ); + + css::uno::Sequence< ::rtl::OUString > lNames = m_aData.pFilterCache->getAllDetectorNames(); + css::uno::Sequence< ::rtl::OUString > lEncNames ( lNames ) ; + sal_Int32 nCount = lNames.getLength() ; + sal_Int32 nItem = 0 ; + + XCDGenerator::impl_orderAlphabetical( lNames ); + + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + ::rtl::OUString sName ; + ::rtl::OUString sEncName; + for( nItem=0; nItem<nCount; ++nItem ) + { + sName = lNames[nItem] ; + lEncNames[nItem] = impl_encodeSetName( sName ); + + m_aData.sNew2OldSCPStandard.appendAscii ( "org.openoffice.Office." ); + m_aData.sNew2OldSCPStandard.append ( m_aData.sPackageStandard ); + m_aData.sNew2OldSCPStandard.append ( CFG_PATH_SEPERATOR ); + m_aData.sNew2OldSCPStandard.append ( sName ); + m_aData.sNew2OldSCPStandard.appendAscii ( "\torg.openoffice.Office."); + m_aData.sNew2OldSCPStandard.append ( m_aData.sPackageStandard ); + m_aData.sNew2OldSCPStandard.append ( CFG_PATH_SEPERATOR ); + m_aData.sNew2OldSCPStandard.appendAscii ( "DetectService" ); + m_aData.sNew2OldSCPStandard.append ( CFG_ENCODING_OPEN ); + m_aData.sNew2OldSCPStandard.append ( sName ); + m_aData.sNew2OldSCPStandard.append ( CFG_ENCODING_CLOSE ); + m_aData.sNew2OldSCPStandard.appendAscii ( "\n" ); + } + } + + for( nItem=0; nItem<nCount; ++nItem ) + { + ::rtl::OUString sName = lNames[nItem] ; + Detector aItem = m_aData.pFilterCache->getDetector( sName ); + + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + sName = lEncNames[nItem]; + } + + ++m_aData.nWrittenDetectors; + + // open set node by using name + m_aData.sBufferStandard.appendAscii( "\t\t<default:group cfg:name=\"" ); + m_aData.sBufferStandard.append ( sName ); + m_aData.sBufferStandard.appendAscii( "\">\n" ); + + // write properties + impl_generateStringListProperty ( m_aData.sBufferStandard, SUBKEY_TYPES, aItem.lTypes ); + + // close set node + m_aData.sBufferStandard.appendAscii( "\t\t</default:group>\n" ); + } + + // close set + m_aData.sBufferStandard.appendAscii( "\t</schema:set>\n" ); + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateLoaderSet() +{ + if( m_aData.pFilterCache->hasLoaders() == sal_False ) + { + // write empty loader set! + m_aData.sBufferStandard.appendAscii( "\t<schema:set cfg:name=\"FrameLoaders\" cfg:element-type=\"FrameLoader\"/>\n" ); + } + else + { + // open set + m_aData.sBufferStandard.appendAscii( "\t<schema:set cfg:name=\"FrameLoaders\" cfg:element-type=\"FrameLoader\">\n" ); + + css::uno::Sequence< ::rtl::OUString > lNames = m_aData.pFilterCache->getAllLoaderNames(); + css::uno::Sequence< ::rtl::OUString > lEncNames ( lNames ) ; + sal_Int32 nCount = lNames.getLength() ; + sal_Int32 nItem = 0 ; + + XCDGenerator::impl_orderAlphabetical( lNames ); + + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + ::rtl::OUString sName ; + ::rtl::OUString sEncName; + for( nItem=0; nItem<nCount; ++nItem ) + { + sName = lNames[nItem] ; + lEncNames[nItem] = impl_encodeSetName( sName ); + + m_aData.sNew2OldSCPStandard.appendAscii ( "org.openoffice.Office." ); + m_aData.sNew2OldSCPStandard.append ( m_aData.sPackageStandard ); + m_aData.sNew2OldSCPStandard.append ( CFG_PATH_SEPERATOR ); + m_aData.sNew2OldSCPStandard.append ( sName ); + m_aData.sNew2OldSCPStandard.appendAscii ( "\torg.openoffice.Office."); + m_aData.sNew2OldSCPStandard.append ( m_aData.sPackageStandard ); + m_aData.sNew2OldSCPStandard.append ( CFG_PATH_SEPERATOR ); + m_aData.sNew2OldSCPStandard.appendAscii ( "FrameLoader" ); + m_aData.sNew2OldSCPStandard.append ( CFG_ENCODING_OPEN ); + m_aData.sNew2OldSCPStandard.append ( sName ); + m_aData.sNew2OldSCPStandard.append ( CFG_ENCODING_CLOSE ); + m_aData.sNew2OldSCPStandard.appendAscii ( "\n" ); + } + } + + for( nItem=0; nItem<nCount; ++nItem ) + { + ::rtl::OUString sName = lNames[nItem] ; + Loader aItem = m_aData.pFilterCache->getLoader( sName ); + + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + sName = lEncNames[nItem]; + } + + ++m_aData.nWrittenLoaders; + + // open set node by using name + m_aData.sBufferStandard.appendAscii( "\t\t<default:group cfg:name=\"" ); + m_aData.sBufferStandard.append ( sName ); + m_aData.sBufferStandard.appendAscii( "\">\n" ); + + // write properties + impl_generateUINamesProperty ( m_aData.sBufferStandard, SUBKEY_UINAME, aItem.lUINames ); + impl_generateStringListProperty ( m_aData.sBufferStandard, SUBKEY_TYPES , aItem.lTypes ); + + // close set node + m_aData.sBufferStandard.appendAscii( "\t\t</default:group>\n" ); + } + + // close set + m_aData.sBufferStandard.appendAscii( "\t</schema:set>\n" ); + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateDefaults() +{ + // open group + m_aData.sBufferStandard.appendAscii( "\t<schema:group cfg:name=\"Defaults\">\n" ); + + // write generic loader + m_aData.sBufferStandard.appendAscii( "\t\t<schema:value cfg:name=\"FrameLoader\" cfg:type=\"string\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t<default:data>" ); + m_aData.sBufferStandard.append ( m_aData.pFilterCache->getDefaultLoader() ); + m_aData.sBufferStandard.appendAscii( "</default:data>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t</schema:value>\n" ); + + // write default detector + m_aData.sBufferStandard.appendAscii( "\t\t<schema:value cfg:name=\"DetectService\" cfg:type=\"string\">\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t\t<default:data>" ); + m_aData.sBufferStandard.append ( m_aData.pFilterCache->getDefaultDetector() ); + m_aData.sBufferStandard.appendAscii( "</default:data>\n" ); + m_aData.sBufferStandard.appendAscii( "\t\t</schema:value>\n" ); + + // close group + m_aData.sBufferStandard.appendAscii( "\t</schema:group>\n" ); +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateContentHandlerSet() +{ + if( m_aData.pFilterCache->hasContentHandlers() == sal_False ) + { + // write empty handler set! + m_aData.sBufferStandard.appendAscii( "\t<schema:set cfg:name=\"ContentHandlers\" cfg:element-type=\"ContentHandler\"/>\n" ); + } + else + { + // open set + m_aData.sBufferStandard.appendAscii( "\t<schema:set cfg:name=\"ContentHandlers\" cfg:element-type=\"ContentHandler\">\n" ); + + css::uno::Sequence< ::rtl::OUString > lNames = m_aData.pFilterCache->getAllContentHandlerNames(); + css::uno::Sequence< ::rtl::OUString > lEncNames ( lNames ) ; + sal_Int32 nCount = lNames.getLength() ; + sal_Int32 nItem = 0 ; + + XCDGenerator::impl_orderAlphabetical( lNames ); + + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + ::rtl::OUString sName ; + ::rtl::OUString sEncName; + for( nItem=0; nItem<nCount; ++nItem ) + { + sName = lNames[nItem] ; + lEncNames[nItem] = impl_encodeSetName( sName ); + + m_aData.sNew2OldSCPStandard.appendAscii ( "org.openoffice.Office." ); + m_aData.sNew2OldSCPStandard.append ( m_aData.sPackageStandard ); + m_aData.sNew2OldSCPStandard.append ( CFG_PATH_SEPERATOR ); + m_aData.sNew2OldSCPStandard.append ( sName ); + m_aData.sNew2OldSCPStandard.appendAscii ( "\torg.openoffice.Office."); + m_aData.sNew2OldSCPStandard.append ( m_aData.sPackageStandard ); + m_aData.sNew2OldSCPStandard.append ( CFG_PATH_SEPERATOR ); + m_aData.sNew2OldSCPStandard.appendAscii ( "ContentHandler" ); + m_aData.sNew2OldSCPStandard.append ( CFG_ENCODING_OPEN ); + m_aData.sNew2OldSCPStandard.append ( sName ); + m_aData.sNew2OldSCPStandard.append ( CFG_ENCODING_CLOSE ); + m_aData.sNew2OldSCPStandard.appendAscii ( "\n" ); + } + } + + for( nItem=0; nItem<nCount; ++nItem ) + { + ::rtl::OUString sName = lNames[nItem] ; + ContentHandler aItem = m_aData.pFilterCache->getContentHandler( sName ); + + if( m_aData.nVersionOutput == 6 && m_aData.nVersionInput < 6 ) + { + sName = lEncNames[nItem]; + } + + ++m_aData.nWrittenContentHandlers; + + // open set node by using name + m_aData.sBufferStandard.appendAscii( "\t\t<default:group cfg:name=\"" ); + m_aData.sBufferStandard.append ( sName ); + m_aData.sBufferStandard.appendAscii( "\">\n" ); + + // write properties + impl_generateStringListProperty( m_aData.sBufferStandard, SUBKEY_TYPES, aItem.lTypes ); + + // close set node + m_aData.sBufferStandard.appendAscii( "\t\t</default:group>\n" ); + } + + // close set + m_aData.sBufferStandard.appendAscii( "\t</schema:set>\n" ); + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateIntProperty( ::rtl::OUStringBuffer& sXCD , + const ::rtl::OUString& sName , + sal_Int32 nValue ) +{ + sXCD.appendAscii( "\t\t\t<default:value cfg:name=\"" ); + sXCD.append ( sName ); + sXCD.appendAscii( "\" cfg:type=\"int\" cfg:writable=\"" ); + sXCD.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + sXCD.appendAscii( "\t\t\t\t<default:data>" ); + sXCD.append ( (sal_Int32)(nValue) ); + sXCD.appendAscii( "</default:data>\n\t\t\t</default:value>\n" ); +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateBoolProperty( ::rtl::OUStringBuffer& sXCD , + const ::rtl::OUString& sName , + sal_Bool bValue ) +{ + sXCD.appendAscii( "\t\t\t<default:value cfg:name=\"" ); + sXCD.append ( sName ); + sXCD.appendAscii( "\" cfg:type=\"boolean\" cfg:writable=\"" ); + sXCD.appendAscii( m_aData.bWriteable==sal_True ? "true\">\n" : "false\">\n" ); + sXCD.appendAscii( "\t\t\t\t<default:data>" ); + sXCD.appendAscii( bValue==sal_True ? "true" : "false" ); + sXCD.appendAscii( "</default:data>\n\t\t\t</default:value>\n" ); +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateStringProperty( ::rtl::OUStringBuffer& sXCD , + const ::rtl::OUString& sName , + const ::rtl::OUString& sValue ) +{ + sXCD.appendAscii( "\t\t\t<default:value cfg:name=\"" ); + sXCD.append ( sName ); + sXCD.appendAscii( "\" cfg:type=\"string\" cfg:writable=\"" ); + sXCD.appendAscii( m_aData.bWriteable==sal_True ? "true\"" : "false\"" ); + if( sValue.getLength() > 0 ) + { + sXCD.appendAscii( ">\n\t\t\t\t<default:data>" ); + sXCD.append ( XCDGenerator::impl_encodeSpecialSigns( sValue ) ); + sXCD.appendAscii( "</default:data>\n\t\t\t</default:value>\n" ); + } + else + { + sXCD.appendAscii( "/>\n" ); + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateStringListProperty( ::rtl::OUStringBuffer& sXCD , + const ::rtl::OUString& sName , + const ::framework::StringList& lValue ) +{ + sXCD.appendAscii( "\t\t\t<default:value cfg:name=\"" ); + sXCD.append ( sName ); + sXCD.appendAscii( "\" cfg:type=\"string\" cfg:derivedBy=\"list\"" ); + + sal_Unicode cSeperator = XCDGenerator::impl_defineSeperator( lValue ); + if( cSeperator != ' ' ) + { + sXCD.appendAscii( " cfg:separator=\"" ); + sXCD.append ( cSeperator ); + sXCD.appendAscii( "\"" ); + } + + sXCD.appendAscii( " cfg:writable=\"" ); + sXCD.appendAscii( m_aData.bWriteable==sal_True ? "true\"" : "false\"" ); + + sal_Int32 nCount = (sal_Int32)(lValue.size()); + sal_Int32 nPosition = 1; + + if( nCount > 0 ) + { + sXCD.appendAscii( ">\n\t\t\t\t<default:data>" ); + for( ConstStringListIterator pEntry=lValue.begin(); pEntry!=lValue.end(); ++pEntry ) + { + sXCD.append( *pEntry ); + if( nPosition < nCount ) + { + // Seperator for lists allowed only between two values! + // Don't write leading or leaving seperators ... + sXCD.append( cSeperator ); + } + ++nPosition; + } + sXCD.appendAscii( "</default:data>\n\t\t\t</default:value>\n" ); + } + else + { + sXCD.appendAscii( "/>\n" ); + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_generateUINamesProperty( ::rtl::OUStringBuffer& sXCD , + const ::rtl::OUString& sName , + const StringHash& lUINames ) +{ + sXCD.appendAscii( "\t\t\t<default:value cfg:name=\"" ); + sXCD.append ( sName ); + sXCD.appendAscii( "\" cfg:type=\"string\" cfg:localized=\"true\" cfg:writable=\"" ); + sXCD.appendAscii( m_aData.bWriteable==sal_True ? "true\"" : "false\"" ); + + if( lUINames.size() > 0 ) + { + sXCD.appendAscii( ">\n" ); + + // Search for localized values, which doesn't need full localized set ... + // because all values for all locales are the same! + sal_Bool bDifferent = sal_False ; + ConstStringHashIterator pUIName = lUINames.begin(); + ::rtl::OUString sUIName = pUIName->second ; + while( pUIName!=lUINames.end() ) + { + if( sUIName != pUIName->second ) + { + bDifferent = sal_True; + break; + } + ++pUIName; + } + + // Generate full localized set, if some values are realy loclaized. + if( bDifferent == sal_True ) + { + for( ConstStringHashIterator pUIName=lUINames.begin(); pUIName!=lUINames.end(); ++pUIName ) + { + sXCD.appendAscii( "\t\t\t\t<default:data xml:lang=\"" ); + sXCD.append ( pUIName->first ); + sXCD.appendAscii( "\">" ); + sXCD.append ( XCDGenerator::impl_encodeSpecialSigns( pUIName->second ) ); + sXCD.appendAscii( "</default:data>\n" ); + } + } + // Generate ONE entry as default for our configuration if all localized values are equal! + else + { + sXCD.appendAscii( "\t\t\t\t<default:data xml:lang=\"" ); + sXCD.appendAscii( "en-US" ); + sXCD.appendAscii( "\">" ); + sXCD.append ( XCDGenerator::impl_encodeSpecialSigns( lUINames.find(DECLARE_ASCII("en-US"))->second )); + sXCD.appendAscii( "</default:data>\n" ); + } + sXCD.appendAscii( "\t\t\t</default:value>\n" ); + } + else + { + sXCD.appendAscii( "/>\n" ); + } +} + +//***************************************************************************************************************** +::rtl::OUString XCDGenerator::impl_encodeSpecialSigns( const ::rtl::OUString& sValue ) +{ + ::rtl::OUStringBuffer sSource ( sValue ); + ::rtl::OUStringBuffer sDestination( 10000 ); + sal_Int32 nCount = sValue.getLength(); + sal_Int32 i = 0; + + for( i=0; i<nCount; ++i ) + { + sal_Unicode cSign = sSource.charAt(i); + switch( cSign ) + { + // code &, ", ', <, > ... + case '&' : sDestination.appendAscii( "&" ); + break; + case '<' : sDestination.appendAscii( "<" ); + break; + case '>' : sDestination.appendAscii( ">" ); + break; + case '\'': sDestination.appendAscii( "’" ); + break; + case '\"': sDestination.appendAscii( """ ); + break; + // copy all other letters + default : sDestination.append( cSign ); + break; + } + } + + return sDestination.makeStringAndClear(); +} + +//***************************************************************************************************************** +// Step over all elements of list to find one seperator, which isn't used for any value in list. +// We return an empty string if list contains no elements - because we must disable writing of +// "... cfg:seperator="<seperatorvalue> ..." +// => Otherwise we get a Sequence< OUString > with one empty element from configuration!!! +sal_Unicode XCDGenerator::impl_defineSeperator( const ::framework::StringList& lList ) +{ + static cSeperator1 = ' '; + static cSeperator2 = ';'; + static cSeperator3 = '+'; + static cSeperator4 = '-'; + static cSeperator5 = '*'; + + // Start with first seperator. + // Step over all list items. + // If one item contains this seperator - try next one! + // If no new one avaliable (5 tests failed!) - show an error message for user. + // => File will be wrong then! + // If seperator was changed start search during list again ... because + // new seperator could exist at already compared elements! + + sal_Unicode cSeperator = cSeperator1 ; + sal_Bool bOK = sal_False ; + ConstStringListIterator pItem = lList.begin(); + + while( bOK == sal_False ) + { + if( pItem == lList.end() ) + { + bOK = sal_True; + } + else + { + while( pItem!=lList.end() ) + { + if( pItem->indexOf( cSeperator, 0 ) != -1 ) + { + if( cSeperator == cSeperator1 ) + { + cSeperator = cSeperator2; + pItem = lList.begin(); + break; + } + else + if( cSeperator == cSeperator2 ) + { + cSeperator = cSeperator3; + pItem = lList.begin(); + break; + } + else + if( cSeperator == cSeperator3 ) + { + cSeperator = cSeperator4; + pItem = lList.begin(); + break; + } + else + if( cSeperator == cSeperator4 ) + { + cSeperator = cSeperator5; + pItem = lList.begin(); + break; + } + else + if( cSeperator == cSeperator5 ) + { + LOG_ERROR( "XCDGenerator::impl_defineSeperator()", "Can't find seperator for given list! Generated XCD file will be wrong!" ) + exit(-1); + } + } + else + { + ++pItem; + } + } + } + } + + return cSeperator; +} + +//***************************************************************************************************************** +void XCDGenerator::impl_initFilterHashNew2Old( StringHash& aHash ) +{ + // key = new filter name, value = old name + aHash[DECLARE_ASCII("writer_StarOffice_XML_Writer" )] = DECLARE_ASCII("swriter: StarOffice XML (Writer)" ); + aHash[DECLARE_ASCII("writer_StarWriter_50" )] = DECLARE_ASCII("swriter: StarWriter 5.0" ); + aHash[DECLARE_ASCII("writer_StarWriter_50_VorlageTemplate" )] = DECLARE_ASCII("swriter: StarWriter 5.0 Vorlage/Template" ); + aHash[DECLARE_ASCII("writer_StarWriter_40" )] = DECLARE_ASCII("swriter: StarWriter 4.0" ); + aHash[DECLARE_ASCII("writer_StarWriter_40_VorlageTemplate" )] = DECLARE_ASCII("swriter: StarWriter 4.0 Vorlage/Template" ); + aHash[DECLARE_ASCII("writer_StarWriter_30" )] = DECLARE_ASCII("swriter: StarWriter 3.0" ); + aHash[DECLARE_ASCII("writer_StarWriter_30_VorlageTemplate" )] = DECLARE_ASCII("swriter: StarWriter 3.0 Vorlage/Template" ); + aHash[DECLARE_ASCII("writer_StarWriter_20" )] = DECLARE_ASCII("swriter: StarWriter 2.0" ); + aHash[DECLARE_ASCII("writer_StarWriter_10" )] = DECLARE_ASCII("swriter: StarWriter 1.0" ); + aHash[DECLARE_ASCII("writer_StarWriter_DOS" )] = DECLARE_ASCII("swriter: StarWriter DOS" ); + aHash[DECLARE_ASCII("writer_HTML_StarWriter" )] = DECLARE_ASCII("swriter: HTML (StarWriter)" ); + aHash[DECLARE_ASCII("writer_Text" )] = DECLARE_ASCII("swriter: Text" ); + aHash[DECLARE_ASCII("writer_Text_Unix" )] = DECLARE_ASCII("swriter: Text Unix" ); + aHash[DECLARE_ASCII("writer_Text_Mac" )] = DECLARE_ASCII("swriter: Text Mac" ); + aHash[DECLARE_ASCII("writer_Text_DOS" )] = DECLARE_ASCII("swriter: Text DOS" ); + aHash[DECLARE_ASCII("writer_Rich_Text_Format" )] = DECLARE_ASCII("swriter: Rich Text Format" ); + aHash[DECLARE_ASCII("writer_MS_Word_97" )] = DECLARE_ASCII("swriter: MS Word 97" ); + aHash[DECLARE_ASCII("writer_MS_Word_95" )] = DECLARE_ASCII("swriter: MS Word 95" ); + aHash[DECLARE_ASCII("writer_MS_Word_97_Vorlage" )] = DECLARE_ASCII("swriter: MS Word 97 Vorlage" ); + aHash[DECLARE_ASCII("writer_MS_Word_95_Vorlage" )] = DECLARE_ASCII("swriter: MS Word 95 Vorlage" ); + aHash[DECLARE_ASCII("writer_MS_WinWord_60" )] = DECLARE_ASCII("swriter: MS WinWord 6.0" ); + aHash[DECLARE_ASCII("writer_MS_Word_6x_W4W" )] = DECLARE_ASCII("swriter: MS Word 6.x (W4W)" ); + aHash[DECLARE_ASCII("writer_MS_WinWord_5" )] = DECLARE_ASCII("swriter: MS WinWord 5" ); + aHash[DECLARE_ASCII("writer_MS_WinWord_2x_W4W" )] = DECLARE_ASCII("swriter: MS WinWord 2.x (W4W)" ); + aHash[DECLARE_ASCII("writer_MS_MacWord_5x_W4W" )] = DECLARE_ASCII("swriter: MS MacWord 5.x (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_Win_61_W4W" )] = DECLARE_ASCII("swriter: WordPerfect (Win) 6.1 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_Win_70_W4W" )] = DECLARE_ASCII("swriter: WordPerfect (Win) 7.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordStar_Win_1x_20_W4W" )] = DECLARE_ASCII("swriter: WordStar (Win) 1.x-2.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordStar_70_W4W" )] = DECLARE_ASCII("swriter: WordStar 7.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_Ami_Pro_11_12_W4W" )] = DECLARE_ASCII("swriter: Ami Pro 1.1-1.2 (W4W)" ); + aHash[DECLARE_ASCII("writer_Ami_Pro_20_31_W4W" )] = DECLARE_ASCII("swriter: Ami Pro 2.0-3.1 (W4W)" ); + aHash[DECLARE_ASCII("writer_MS_Excel_40_StarWriter" )] = DECLARE_ASCII("swriter: MS Excel 4.0 (StarWriter)" ); + aHash[DECLARE_ASCII("writer_MS_Excel_50_StarWriter" )] = DECLARE_ASCII("swriter: MS Excel 5.0 (StarWriter)" ); + aHash[DECLARE_ASCII("writer_MS_Excel_95_StarWriter" )] = DECLARE_ASCII("swriter: MS Excel 95 (StarWriter)" ); + aHash[DECLARE_ASCII("writer_MS_Works_20_DOS_W4W" )] = DECLARE_ASCII("swriter: MS Works 2.0 DOS (W4W)" ); + aHash[DECLARE_ASCII("writer_MS_Works_30_Win_W4W" )] = DECLARE_ASCII("swriter: MS Works 3.0 Win (W4W)" ); + aHash[DECLARE_ASCII("writer_Lotus_1_2_3_10_DOS_StarWriter" )] = DECLARE_ASCII("swriter: Lotus 1-2-3 1.0 (DOS) (StarWriter)" ); + aHash[DECLARE_ASCII("writer_Lotus_1_2_3_10_WIN_StarWriter" )] = DECLARE_ASCII("swriter: Lotus 1-2-3 1.0 (WIN) (StarWriter)" ); + aHash[DECLARE_ASCII("writer_Frame_Maker_MIF_50_W4W" )] = DECLARE_ASCII("swriter: Frame Maker MIF 5.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_Win_Write_3x_W4W" )] = DECLARE_ASCII("swriter: Win Write 3.x (W4W)" ); + aHash[DECLARE_ASCII("writer_Text_encoded" )] = DECLARE_ASCII("swriter: Text (encoded)" ); + aHash[DECLARE_ASCII("writer_MS_WinWord_1x_W4W" )] = DECLARE_ASCII("swriter: MS WinWord 1.x (W4W)" ); + aHash[DECLARE_ASCII("writer_MS_Word_5x_W4W" )] = DECLARE_ASCII("swriter: MS Word 5.x (W4W)" ); + aHash[DECLARE_ASCII("writer_MS_Word_4x_W4W" )] = DECLARE_ASCII("swriter: MS Word 4.x (W4W)" ); + aHash[DECLARE_ASCII("writer_MS_Word_3x_W4W" )] = DECLARE_ASCII("swriter: MS Word 3.x (W4W)" ); + aHash[DECLARE_ASCII("writer_MS_MacWord_40_W4W" )] = DECLARE_ASCII("swriter: MS MacWord 4.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_MS_MacWord_30_W4W" )] = DECLARE_ASCII("swriter: MS MacWord 3.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_Mac_1_W4W" )] = DECLARE_ASCII("swriter: WordPerfect Mac 1 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_Mac_2_W4W" )] = DECLARE_ASCII("swriter: WordPerfect Mac 2 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_Mac_3_W4W" )] = DECLARE_ASCII("swriter: WordPerfect Mac 3 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_Win_51_52_W4W" )] = DECLARE_ASCII("swriter: WordPerfect (Win) 5.1-5.2 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_Win_60_W4W" )] = DECLARE_ASCII("swriter: WordPerfect (Win) 6.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_41_W4W" )] = DECLARE_ASCII("swriter: WordPerfect 4.1 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_42_W4W" )] = DECLARE_ASCII("swriter: WordPerfect 4.2 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_50_W4W" )] = DECLARE_ASCII("swriter: WordPerfect 5.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_51_W4W" )] = DECLARE_ASCII("swriter: WordPerfect 5.1 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_60_W4W" )] = DECLARE_ASCII("swriter: WordPerfect 6.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordPerfect_61_W4W" )] = DECLARE_ASCII("swriter: WordPerfect 6.1 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordStar_2000_Rel_30_W4W" )] = DECLARE_ASCII("swriter: WordStar 2000 Rel. 3.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordStar_2000_Rel_35_W4W" )] = DECLARE_ASCII("swriter: WordStar 2000 Rel. 3.5 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordStar_33x_W4W" )] = DECLARE_ASCII("swriter: WordStar 3.3x (W4W)" ); + aHash[DECLARE_ASCII("writer_WordStar_345_W4W" )] = DECLARE_ASCII("swriter: WordStar 3.45 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordStar_40_W4W" )] = DECLARE_ASCII("swriter: WordStar 4.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordStar_50_W4W" )] = DECLARE_ASCII("swriter: WordStar 5.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordStar_55_W4W" )] = DECLARE_ASCII("swriter: WordStar 5.5 (W4W)" ); + aHash[DECLARE_ASCII("writer_WordStar_60_W4W" )] = DECLARE_ASCII("swriter: WordStar 6.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_MS_Works_40_Mac_W4W" )] = DECLARE_ASCII("swriter: MS Works 4.0 Mac (W4W)" ); + aHash[DECLARE_ASCII("writer_Mac_Write_4x_50_W4W" )] = DECLARE_ASCII("swriter: Mac Write 4.x 5.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_Mac_Write_II_W4W" )] = DECLARE_ASCII("swriter: Mac Write II (W4W)" ); + aHash[DECLARE_ASCII("writer_Mac_Write_Pro_W4W" )] = DECLARE_ASCII("swriter: Mac Write Pro (W4W)" ); + aHash[DECLARE_ASCII("writer_Lotus_Manuscript_W4W" )] = DECLARE_ASCII("swriter: Lotus Manuscript (W4W)" ); + aHash[DECLARE_ASCII("writer_MASS_11_Rel_80_83_W4W" )] = DECLARE_ASCII("swriter: MASS 11 Rel. 8.0-8.3 (W4W)" ); + aHash[DECLARE_ASCII("writer_MASS_11_Rel_85_90_W4W" )] = DECLARE_ASCII("swriter: MASS 11 Rel. 8.5-9.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_Claris_Works_W4W" )] = DECLARE_ASCII("swriter: Claris Works (W4W)" ); + aHash[DECLARE_ASCII("writer_CTOS_DEF_W4W" )] = DECLARE_ASCII("swriter: CTOS DEF (W4W)" ); + aHash[DECLARE_ASCII("writer_OfficeWriter_40_W4W" )] = DECLARE_ASCII("swriter: OfficeWriter 4.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_OfficeWriter_50_W4W" )] = DECLARE_ASCII("swriter: OfficeWriter 5.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_OfficeWriter_6x_W4W" )] = DECLARE_ASCII("swriter: OfficeWriter 6.x (W4W)" ); + aHash[DECLARE_ASCII("writer_XyWrite_III_W4W" )] = DECLARE_ASCII("swriter: XyWrite III ( W4W)" ); + aHash[DECLARE_ASCII("writer_XyWrite_IIIP_W4W" )] = DECLARE_ASCII("swriter: XyWrite III+ ( W4W)" ); + aHash[DECLARE_ASCII("writer_XyWrite_Signature_W4W" )] = DECLARE_ASCII("swriter: XyWrite Signature (W4W)" ); + aHash[DECLARE_ASCII("writer_XyWrite_Sig_Win_W4W" )] = DECLARE_ASCII("swriter: XyWrite Sig. (Win) (W4W)" ); + aHash[DECLARE_ASCII("writer_XyWrite_IV_W4W" )] = DECLARE_ASCII("swriter: XyWrite IV (W4W)" ); + aHash[DECLARE_ASCII("writer_XyWrite_Win_10_W4W" )] = DECLARE_ASCII("swriter: XyWrite (Win) 1.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_XEROX_XIF_50_W4W" )] = DECLARE_ASCII("swriter: XEROX XIF 5.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_XEROX_XIF_50_Illustrator_W4W" )] = DECLARE_ASCII("swriter: XEROX XIF 5.0 (Illustrator) (W4W)" ); + aHash[DECLARE_ASCII("writer_XEROX_XIF_60_Color_Bitmap_W4W" )] = DECLARE_ASCII("swriter: XEROX XIF 6.0 (Color Bitmap) (W4W)" ); + aHash[DECLARE_ASCII("writer_XEROX_XIF_60_Res_Graphic_W4W" )] = DECLARE_ASCII("swriter: XEROX XIF 6.0 (Res Graphic) (W4W)" ); + aHash[DECLARE_ASCII("writer_WriteNow_30_Macintosh_W4W" )] = DECLARE_ASCII("swriter: WriteNow 3.0 (Macintosh) (W4W)" ); + aHash[DECLARE_ASCII("writer_Writing_Assistant_W4W" )] = DECLARE_ASCII("swriter: Writing Assistant (W4W)" ); + aHash[DECLARE_ASCII("writer_VolksWriter_Deluxe_W4W" )] = DECLARE_ASCII("swriter: VolksWriter Deluxe (W4W)" ); + aHash[DECLARE_ASCII("writer_VolksWriter_3_and_4_W4W" )] = DECLARE_ASCII("swriter: VolksWriter 3 and 4 (W4W)" ); + aHash[DECLARE_ASCII("writer_MultiMate_33_W4W" )] = DECLARE_ASCII("swriter: MultiMate 3.3 (W4W)" ); + aHash[DECLARE_ASCII("writer_MultiMate_Adv_36_W4W" )] = DECLARE_ASCII("swriter: MultiMate Adv. 3.6 (W4W)" ); + aHash[DECLARE_ASCII("writer_MultiMate_Adv_II_37_W4W" )] = DECLARE_ASCII("swriter: MultiMate Adv. II 3.7 (W4W)" ); + aHash[DECLARE_ASCII("writer_MultiMate_4_W4W" )] = DECLARE_ASCII("swriter: MultiMate 4 (W4W)" ); + aHash[DECLARE_ASCII("writer_NAVY_DIF_W4W" )] = DECLARE_ASCII("swriter: NAVY DIF (W4W)" ); + aHash[DECLARE_ASCII("writer_PFS_Write_W4W" )] = DECLARE_ASCII("swriter: PFS Write (W4W)" ); + aHash[DECLARE_ASCII("writer_PFS_First_Choice_10_W4W" )] = DECLARE_ASCII("swriter: PFS First Choice 1.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_PFS_First_Choice_20_W4W" )] = DECLARE_ASCII("swriter: PFS First Choice 2.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_PFS_First_Choice_30_W4W" )] = DECLARE_ASCII("swriter: PFS First Choice 3.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_Professional_Write_10_W4W" )] = DECLARE_ASCII("swriter: Professional Write 1.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_Professional_Write_2x_W4W" )] = DECLARE_ASCII("swriter: Professional Write 2.x (W4W)" ); + aHash[DECLARE_ASCII("writer_Professional_Write_Plus_W4W" )] = DECLARE_ASCII("swriter: Professional Write Plus (W4W)" ); + aHash[DECLARE_ASCII("writer_Peach_Text_W4W" )] = DECLARE_ASCII("swriter: Peach Text (W4W)" ); + aHash[DECLARE_ASCII("writer_DCA_Revisable_Form_Text_W4W" )] = DECLARE_ASCII("swriter: DCA Revisable Form Text (W4W)" ); + aHash[DECLARE_ASCII("writer_DCA_with_Display_Write_5_W4W" )] = DECLARE_ASCII("swriter: DCA with Display Write 5 (W4W)" ); + aHash[DECLARE_ASCII("writer_DCAFFT_Final_Form_Text_W4W" )] = DECLARE_ASCII("swriter: DCA/FFT-Final Form Text (W4W)" ); + aHash[DECLARE_ASCII("writer_DEC_DX_W4W" )] = DECLARE_ASCII("swriter: DEC DX (W4W)" ); + aHash[DECLARE_ASCII("writer_DEC_WPS_PLUS_W4W" )] = DECLARE_ASCII("swriter: DEC WPS-PLUS (W4W)" ); + aHash[DECLARE_ASCII("writer_DisplayWrite_20_4x_W4W" )] = DECLARE_ASCII("swriter: DisplayWrite 2.0-4.x (W4W)" ); + aHash[DECLARE_ASCII("writer_DisplayWrite_5x_W4W" )] = DECLARE_ASCII("swriter: DisplayWrite 5.x (W4W)" ); + aHash[DECLARE_ASCII("writer_DataGeneral_CEO_Write_W4W" )] = DECLARE_ASCII("swriter: DataGeneral CEO Write (W4W)" ); + aHash[DECLARE_ASCII("writer_EBCDIC_W4W" )] = DECLARE_ASCII("swriter: EBCDIC (W4W)" ); + aHash[DECLARE_ASCII("writer_Enable_W4W" )] = DECLARE_ASCII("swriter: Enable (W4W)" ); + aHash[DECLARE_ASCII("writer_Frame_Maker_MIF_30_W4W" )] = DECLARE_ASCII("swriter: Frame Maker MIF 3.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_Frame_Maker_MIF_40_W4W" )] = DECLARE_ASCII("swriter: Frame Maker MIF 4.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_Frame_Work_III_W4W" )] = DECLARE_ASCII("swriter: Frame Work III (W4W)" ); + aHash[DECLARE_ASCII("writer_Frame_Work_IV_W4W" )] = DECLARE_ASCII("swriter: Frame Work IV (W4W)" ); + aHash[DECLARE_ASCII("writer_HP_AdvanceWrite_Plus_W4W" )] = DECLARE_ASCII("swriter: HP AdvanceWrite Plus (W4W)" ); + aHash[DECLARE_ASCII("writer_ICL_Office_Power_6_W4W" )] = DECLARE_ASCII("swriter: ICL Office Power 6 (W4W)" ); + aHash[DECLARE_ASCII("writer_ICL_Office_Power_7_W4W" )] = DECLARE_ASCII("swriter: ICL Office Power 7 (W4W)" ); + aHash[DECLARE_ASCII("writer_Interleaf_W4W" )] = DECLARE_ASCII("swriter: Interleaf (W4W)" ); + aHash[DECLARE_ASCII("writer_Interleaf_5_6_W4W" )] = DECLARE_ASCII("swriter: Interleaf 5 - 6 (W4W)" ); + aHash[DECLARE_ASCII("writer_Legacy_Winstar_onGO_W4W" )] = DECLARE_ASCII("swriter: Legacy Winstar onGO (W4W)" ); + aHash[DECLARE_ASCII("writer_QA_Write_10_30_W4W" )] = DECLARE_ASCII("swriter: Q&A Write 1.0-3.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_QA_Write_40_W4W" )] = DECLARE_ASCII("swriter: Q&A Write 4.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_Rapid_File_10_W4W" )] = DECLARE_ASCII("swriter: Rapid File 1.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_Rapid_File_12_W4W" )] = DECLARE_ASCII("swriter: Rapid File 1.2 (W4W)" ); + aHash[DECLARE_ASCII("writer_Samna_Word_IV_IV_Plus_W4W" )] = DECLARE_ASCII("swriter: Samna Word IV-IV Plus (W4W)" ); + aHash[DECLARE_ASCII("writer_Total_Word_W4W" )] = DECLARE_ASCII("swriter: Total Word (W4W)" ); + aHash[DECLARE_ASCII("writer_Uniplex_onGO_W4W" )] = DECLARE_ASCII("swriter: Uniplex onGO (W4W)" ); + aHash[DECLARE_ASCII("writer_Uniplex_V7_V8_W4W" )] = DECLARE_ASCII("swriter: Uniplex V7-V8 (W4W)" ); + aHash[DECLARE_ASCII("writer_Wang_PC_W4W" )] = DECLARE_ASCII("swriter: Wang PC (W4W)" ); + aHash[DECLARE_ASCII("writer_Wang_II_SWP_W4W" )] = DECLARE_ASCII("swriter: Wang II SWP (W4W)" ); + aHash[DECLARE_ASCII("writer_Wang_WP_Plus_W4W" )] = DECLARE_ASCII("swriter: Wang WP Plus (W4W)" ); + aHash[DECLARE_ASCII("writer_WITA_W4W" )] = DECLARE_ASCII("swriter: WITA (W4W)" ); + aHash[DECLARE_ASCII("writer_WiziWord_30_W4W" )] = DECLARE_ASCII("swriter: WiziWord 3.0 (W4W)" ); + aHash[DECLARE_ASCII("writer_web_HTML" )] = DECLARE_ASCII("swriter/web: HTML" ); + aHash[DECLARE_ASCII("writer_web_StarWriterWeb_50_VorlageTemplate" )] = DECLARE_ASCII("swriter/web: StarWriter/Web 5.0 Vorlage/Template" ); + aHash[DECLARE_ASCII("writer_web_StarWriterWeb_40_VorlageTemplate" )] = DECLARE_ASCII("swriter/web: StarWriter/Web 4.0 Vorlage/Template" ); + aHash[DECLARE_ASCII("writer_web_Text_StarWriterWeb" )] = DECLARE_ASCII("swriter/web: Text (StarWriter/Web)" ); + aHash[DECLARE_ASCII("writer_web_Text_DOS_StarWriterWeb" )] = DECLARE_ASCII("swriter/web: Text DOS (StarWriter/Web)" ); + aHash[DECLARE_ASCII("writer_web_Text_Mac_StarWriterWeb" )] = DECLARE_ASCII("swriter/web: Text Mac (StarWriter/Web)" ); + aHash[DECLARE_ASCII("writer_web_Text_Unix_StarWriterWeb" )] = DECLARE_ASCII("swriter/web: Text Unix (StarWriter/Web)" ); + aHash[DECLARE_ASCII("writer_web_StarWriter_50" )] = DECLARE_ASCII("swriter/web: StarWriter 5.0" ); + aHash[DECLARE_ASCII("writer_web_StarWriter_40" )] = DECLARE_ASCII("swriter/web: StarWriter 4.0" ); + aHash[DECLARE_ASCII("writer_web_StarWriter_30" )] = DECLARE_ASCII("swriter/web: StarWriter 3.0" ); + aHash[DECLARE_ASCII("writer_web_Text_encoded" )] = DECLARE_ASCII("swriter/web: Text (encoded)" ); + aHash[DECLARE_ASCII("writer_globaldocument_StarWriter_60GlobalDocument" )] = DECLARE_ASCII("swriter/GlobalDocument: StarOffice XML (GlobalDocument)" ); + aHash[DECLARE_ASCII("writer_globaldocument_StarWriter_50GlobalDocument" )] = DECLARE_ASCII("swriter/GlobalDocument: StarWriter 5.0/GlobalDocument" ); + aHash[DECLARE_ASCII("writer_globaldocument_StarWriter_40GlobalDocument" )] = DECLARE_ASCII("swriter/GlobalDocument: StarWriter 4.0/GlobalDocument" ); + aHash[DECLARE_ASCII("writer_globaldocument_StarWriter_50" )] = DECLARE_ASCII("swriter/GlobalDocument: StarWriter 5.0" ); + aHash[DECLARE_ASCII("writer_globaldocument_StarWriter_40" )] = DECLARE_ASCII("swriter/GlobalDocument: StarWriter 4.0" ); + aHash[DECLARE_ASCII("writer_globaldocument_StarWriter_30" )] = DECLARE_ASCII("swriter/GlobalDocument: StarWriter 3.0" ); + aHash[DECLARE_ASCII("writer_globaldocument_Text_encoded" )] = DECLARE_ASCII("swriter/GlobalDocument: Text (encoded)" ); + aHash[DECLARE_ASCII("chart_StarOffice_XML_Chart" )] = DECLARE_ASCII("schart: StarOffice XML (Chart)" ); + aHash[DECLARE_ASCII("chart_StarChart_50" )] = DECLARE_ASCII("schart: StarChart 5.0" ); + aHash[DECLARE_ASCII("chart_StarChart_40" )] = DECLARE_ASCII("schart: StarChart 4.0" ); + aHash[DECLARE_ASCII("chart_StarChart_30" )] = DECLARE_ASCII("schart: StarChart 3.0" ); + aHash[DECLARE_ASCII("calc_StarOffice_XML_Calc" )] = DECLARE_ASCII("scalc: StarOffice XML (Calc)" ); + aHash[DECLARE_ASCII("calc_StarCalc_50" )] = DECLARE_ASCII("scalc: StarCalc 5.0" ); + aHash[DECLARE_ASCII("calc_StarCalc_50_VorlageTemplate" )] = DECLARE_ASCII("scalc: StarCalc 5.0 Vorlage/Template" ); + aHash[DECLARE_ASCII("calc_StarCalc_40" )] = DECLARE_ASCII("scalc: StarCalc 4.0" ); + aHash[DECLARE_ASCII("calc_StarCalc_40_VorlageTemplate" )] = DECLARE_ASCII("scalc: StarCalc 4.0 Vorlage/Template" ); + aHash[DECLARE_ASCII("calc_StarCalc_30" )] = DECLARE_ASCII("scalc: StarCalc 3.0" ); + aHash[DECLARE_ASCII("calc_StarCalc_30_VorlageTemplate" )] = DECLARE_ASCII("scalc: StarCalc 3.0 Vorlage/Template" ); + aHash[DECLARE_ASCII("calc_MS_Excel_97" )] = DECLARE_ASCII("scalc: MS Excel 97" ); + aHash[DECLARE_ASCII("calc_MS_Excel_97_VorlageTemplate" )] = DECLARE_ASCII("scalc: MS Excel 97 Vorlage/Template" ); + aHash[DECLARE_ASCII("calc_MS_Excel_95" )] = DECLARE_ASCII("scalc: MS Excel 95" ); + aHash[DECLARE_ASCII("calc_MS_Excel_95_VorlageTemplate" )] = DECLARE_ASCII("scalc: MS Excel 95 Vorlage/Template" ); + aHash[DECLARE_ASCII("calc_MS_Excel_5095" )] = DECLARE_ASCII("scalc: MS Excel 5.0/95" ); + aHash[DECLARE_ASCII("calc_MS_Excel_5095_VorlageTemplate" )] = DECLARE_ASCII("scalc: MS Excel 5.0/95 Vorlage/Template" ); + aHash[DECLARE_ASCII("calc_MS_Excel_40" )] = DECLARE_ASCII("scalc: MS Excel 4.0" ); + aHash[DECLARE_ASCII("calc_MS_Excel_40_VorlageTemplate" )] = DECLARE_ASCII("scalc: MS Excel 4.0 Vorlage/Template" ); + aHash[DECLARE_ASCII("calc_Rich_Text_Format_StarCalc" )] = DECLARE_ASCII("scalc: Rich Text Format (StarCalc)" ); + aHash[DECLARE_ASCII("calc_SYLK" )] = DECLARE_ASCII("scalc: SYLK" ); + aHash[DECLARE_ASCII("calc_DIF" )] = DECLARE_ASCII("scalc: DIF" ); + aHash[DECLARE_ASCII("calc_HTML_StarCalc" )] = DECLARE_ASCII("scalc: HTML (StarCalc)" ); + aHash[DECLARE_ASCII("calc_dBase" )] = DECLARE_ASCII("scalc: dBase" ); + aHash[DECLARE_ASCII("calc_Lotus" )] = DECLARE_ASCII("scalc: Lotus" ); + aHash[DECLARE_ASCII("calc_StarCalc_10" )] = DECLARE_ASCII("scalc: StarCalc 1.0" ); + aHash[DECLARE_ASCII("calc_Text_txt_csv_StarCalc" )] = DECLARE_ASCII("scalc: Text - txt - csv (StarCalc)" ); + aHash[DECLARE_ASCII("impress_StarOffice_XML_Impress" )] = DECLARE_ASCII("simpress: StarOffice XML (Impress)" ); + aHash[DECLARE_ASCII("impress_StarImpress_50" )] = DECLARE_ASCII("simpress: StarImpress 5.0" ); + aHash[DECLARE_ASCII("impress_StarImpress_50_Vorlage" )] = DECLARE_ASCII("simpress: StarImpress 5.0 Vorlage" ); + aHash[DECLARE_ASCII("impress_StarImpress_40" )] = DECLARE_ASCII("simpress: StarImpress 4.0" ); + aHash[DECLARE_ASCII("impress_StarImpress_40_Vorlage" )] = DECLARE_ASCII("simpress: StarImpress 4.0 Vorlage" ); + aHash[DECLARE_ASCII("impress_StarDraw_50_StarImpress" )] = DECLARE_ASCII("simpress: StarDraw 5.0 (StarImpress)" ); + aHash[DECLARE_ASCII("impress_StarDraw_50_Vorlage_StarImpress" )] = DECLARE_ASCII("simpress: StarDraw 5.0 Vorlage (StarImpress)" ); + aHash[DECLARE_ASCII("impress_StarDraw_30_StarImpress" )] = DECLARE_ASCII("simpress: StarDraw 3.0 (StarImpress)" ); + aHash[DECLARE_ASCII("impress_StarDraw_30_Vorlage_StarImpress" )] = DECLARE_ASCII("simpress: StarDraw 3.0 Vorlage (StarImpress)" ); + aHash[DECLARE_ASCII("impress_MS_PowerPoint_97" )] = DECLARE_ASCII("simpress: MS PowerPoint 97" ); + aHash[DECLARE_ASCII("impress_MS_PowerPoint_97_Vorlage" )] = DECLARE_ASCII("simpress: MS PowerPoint 97 Vorlage" ); + aHash[DECLARE_ASCII("impress_CGM_Computer_Graphics_Metafile" )] = DECLARE_ASCII("simpress: CGM - Computer Graphics Metafile" ); + aHash[DECLARE_ASCII("impress_StarImpress_50_packed" )] = DECLARE_ASCII("simpress: StarImpress 5.0 (packed)" ); + aHash[DECLARE_ASCII("draw_StarOffice_XML_Draw" )] = DECLARE_ASCII("sdraw: StarOffice XML (Draw)" ); + aHash[DECLARE_ASCII("draw_GIF_Graphics_Interchange" )] = DECLARE_ASCII("sdraw: GIF - Graphics Interchange" ); + aHash[DECLARE_ASCII("draw_PCD_Photo_CD" )] = DECLARE_ASCII("sdraw: PCD - Photo CD" ); + aHash[DECLARE_ASCII("draw_PCX_Zsoft_Paintbrush" )] = DECLARE_ASCII("sdraw: PCX - Zsoft Paintbrush" ); + aHash[DECLARE_ASCII("draw_PSD_Adobe_Photoshop" )] = DECLARE_ASCII("sdraw: PSD - Adobe Photoshop" ); + aHash[DECLARE_ASCII("draw_PNG_Portable_Network_Graphic" )] = DECLARE_ASCII("sdraw: PNG - Portable Network Graphic" ); + aHash[DECLARE_ASCII("draw_StarDraw_50" )] = DECLARE_ASCII("sdraw: StarDraw 5.0" ); + aHash[DECLARE_ASCII("draw_PBM_Portable_Bitmap" )] = DECLARE_ASCII("sdraw: PBM - Portable Bitmap" ); + aHash[DECLARE_ASCII("draw_PGM_Portable_Graymap" )] = DECLARE_ASCII("sdraw: PGM - Portable Graymap" ); + aHash[DECLARE_ASCII("draw_PPM_Portable_Pixelmap" )] = DECLARE_ASCII("sdraw: PPM - Portable Pixelmap" ); + aHash[DECLARE_ASCII("draw_RAS_Sun_Rasterfile" )] = DECLARE_ASCII("sdraw: RAS - Sun Rasterfile" ); + aHash[DECLARE_ASCII("draw_TGA_Truevision_TARGA" )] = DECLARE_ASCII("sdraw: TGA - Truevision TARGA" ); + aHash[DECLARE_ASCII("draw_SGV_StarDraw_20" )] = DECLARE_ASCII("sdraw: SGV - StarDraw 2.0" ); + aHash[DECLARE_ASCII("draw_TIF_Tag_Image_File" )] = DECLARE_ASCII("sdraw: TIF - Tag Image File" ); + aHash[DECLARE_ASCII("draw_SGF_StarOffice_Writer_SGF" )] = DECLARE_ASCII("sdraw: SGF - StarOffice Writer SGF" ); + aHash[DECLARE_ASCII("draw_XPM" )] = DECLARE_ASCII("sdraw: XPM" ); + aHash[DECLARE_ASCII("gif_Graphics_Interchange" )] = DECLARE_ASCII("sdraw: GIF - Graphics Interchange" ); + aHash[DECLARE_ASCII("pcd_Photo_CD" )] = DECLARE_ASCII("sdraw: PCD - Photo CD" ); + aHash[DECLARE_ASCII("pcx_Zsoft_Paintbrush" )] = DECLARE_ASCII("sdraw: PCX - Zsoft Paintbrush" ); + aHash[DECLARE_ASCII("psd_Adobe_Photoshop" )] = DECLARE_ASCII("sdraw: PSD - Adobe Photoshop" ); + aHash[DECLARE_ASCII("png_Portable_Network_Graphic" )] = DECLARE_ASCII("sdraw: PNG - Portable Network Graphic" ); + aHash[DECLARE_ASCII("pbm_Portable_Bitmap" )] = DECLARE_ASCII("sdraw: PBM - Portable Bitmap" ); + aHash[DECLARE_ASCII("pgm_Portable_Graymap" )] = DECLARE_ASCII("sdraw: PGM - Portable Graymap" ); + aHash[DECLARE_ASCII("ppm_Portable_Pixelmap" )] = DECLARE_ASCII("sdraw: PPM - Portable Pixelmap" ); + aHash[DECLARE_ASCII("ras_Sun_Rasterfile" )] = DECLARE_ASCII("sdraw: RAS - Sun Rasterfile" ); + aHash[DECLARE_ASCII("tga_Truevision_TARGA" )] = DECLARE_ASCII("sdraw: TGA - Truevision TARGA" ); + aHash[DECLARE_ASCII("sgv_StarDraw_20" )] = DECLARE_ASCII("sdraw: SGV - StarDraw 2.0" ); + aHash[DECLARE_ASCII("tif_Tag_Image_File" )] = DECLARE_ASCII("sdraw: TIF - Tag Image File" ); + aHash[DECLARE_ASCII("sgf_StarOffice_Writer_SGF" )] = DECLARE_ASCII("sdraw: SGF - StarOffice Writer SGF" ); + aHash[DECLARE_ASCII("xpm_XPM" )] = DECLARE_ASCII("sdraw: XPM" ); + aHash[DECLARE_ASCII("draw_StarDraw_50_Vorlage" )] = DECLARE_ASCII("sdraw: StarDraw 5.0 Vorlage" ); + aHash[DECLARE_ASCII("draw_StarImpress_50_StarDraw" )] = DECLARE_ASCII("sdraw: StarImpress 5.0 (StarDraw)" ); + aHash[DECLARE_ASCII("draw_StarImpress_50_Vorlage_StarDraw" )] = DECLARE_ASCII("sdraw: StarImpress 5.0 Vorlage (StarDraw)" ); + aHash[DECLARE_ASCII("draw_StarImpress_40_StarDraw" )] = DECLARE_ASCII("sdraw: StarImpress 4.0 (StarDraw)" ); + aHash[DECLARE_ASCII("draw_StarImpress_40_Vorlage_StarDraw" )] = DECLARE_ASCII("sdraw: StarImpress 4.0 Vorlage (StarDraw)" ); + aHash[DECLARE_ASCII("draw_StarDraw_30" )] = DECLARE_ASCII("sdraw: StarDraw 3.0" ); + aHash[DECLARE_ASCII("draw_StarDraw_30_Vorlage" )] = DECLARE_ASCII("sdraw: StarDraw 3.0 Vorlage" ); + aHash[DECLARE_ASCII("draw_EMF_MS_Windows_Metafile" )] = DECLARE_ASCII("sdraw: EMF - MS Windows Metafile" ); + aHash[DECLARE_ASCII("draw_MET_OS2_Metafile" )] = DECLARE_ASCII("sdraw: MET - OS/2 Metafile" ); + aHash[DECLARE_ASCII("draw_DXF_AutoCAD_Interchange" )] = DECLARE_ASCII("sdraw: DXF - AutoCAD Interchange" ); + aHash[DECLARE_ASCII("draw_EPS_Encapsulated_PostScript" )] = DECLARE_ASCII("sdraw: EPS - Encapsulated PostScript" ); + aHash[DECLARE_ASCII("draw_WMF_MS_Windows_Metafile" )] = DECLARE_ASCII("sdraw: WMF - MS Windows Metafile" ); + aHash[DECLARE_ASCII("draw_PCT_Mac_Pict" )] = DECLARE_ASCII("sdraw: PCT - Mac Pict" ); + aHash[DECLARE_ASCII("draw_SVM_StarView_Metafile" )] = DECLARE_ASCII("sdraw: SVM - StarView Metafile" ); + aHash[DECLARE_ASCII("draw_BMP_MS_Windows" )] = DECLARE_ASCII("sdraw: BMP - MS Windows" ); + aHash[DECLARE_ASCII("draw_JPG_JPEG" )] = DECLARE_ASCII("sdraw: JPG - JPEG" ); + aHash[DECLARE_ASCII("draw_XBM_X_Consortium" )] = DECLARE_ASCII("sdraw: XBM - X-Consortium" ); + aHash[DECLARE_ASCII("emf_MS_Windows_Metafile" )] = DECLARE_ASCII("sdraw: EMF - MS Windows Metafile" ); + aHash[DECLARE_ASCII("met_OS2_Metafile" )] = DECLARE_ASCII("sdraw: MET - OS/2 Metafile" ); + aHash[DECLARE_ASCII("dxf_AutoCAD_Interchange" )] = DECLARE_ASCII("sdraw: DXF - AutoCAD Interchange" ); + aHash[DECLARE_ASCII("eps_Encapsulated_PostScript" )] = DECLARE_ASCII("sdraw: EPS - Encapsulated PostScript" ); + aHash[DECLARE_ASCII("wmf_MS_Windows_Metafile" )] = DECLARE_ASCII("sdraw: WMF - MS Windows Metafile" ); + aHash[DECLARE_ASCII("pct_Mac_Pict" )] = DECLARE_ASCII("sdraw: PCT - Mac Pict" ); + aHash[DECLARE_ASCII("svm_StarView_Metafile" )] = DECLARE_ASCII("sdraw: SVM - StarView Metafile" ); + aHash[DECLARE_ASCII("bmp_MS_Windows" )] = DECLARE_ASCII("sdraw: BMP - MS Windows" ); + aHash[DECLARE_ASCII("jpg_JPEG" )] = DECLARE_ASCII("sdraw: JPG - JPEG" ); + aHash[DECLARE_ASCII("xbm_X_Consortium" )] = DECLARE_ASCII("sdraw: XBM - X-Consortium" ); + aHash[DECLARE_ASCII("math_StarOffice_XML_Math" )] = DECLARE_ASCII("smath: StarOffice XML (Math)" ); + aHash[DECLARE_ASCII("math_MathML_XML_Math" )] = DECLARE_ASCII("smath: MathML XML (Math)" ); + aHash[DECLARE_ASCII("math_StarMath_50" )] = DECLARE_ASCII("smath: StarMath 5.0" ); + aHash[DECLARE_ASCII("math_StarMath_40" )] = DECLARE_ASCII("smath: StarMath 4.0" ); + aHash[DECLARE_ASCII("math_StarMath_30" )] = DECLARE_ASCII("smath: StarMath 3.0" ); + aHash[DECLARE_ASCII("math_StarMath_20" )] = DECLARE_ASCII("smath: StarMath 2.0" ); + aHash[DECLARE_ASCII("math_MathType_3x" )] = DECLARE_ASCII("smath: MathType 3.x" ); +} + +//***************************************************************************************************************** +::rtl::OUString XCDGenerator::impl_getOldFilterName( const ::rtl::OUString& sNewName ) +{ + ::rtl::OUString sOldName; + ConstStringHashIterator pEntry = m_aData.aOldFilterNamesHash.find(sNewName); + if( pEntry==m_aData.aOldFilterNamesHash.end() ) + { + sOldName = sNewName; + } + else + { + sOldName = m_aData.aOldFilterNamesHash[sNewName]; + } + return sOldName; +} + +//***************************************************************************************************************** +void XCDGenerator::impl_classifyType( const AppMember& rData, const ::rtl::OUString& sTypeName, EFilterPackage& ePackage ) +{ + ePackage = E_STANDARD; + + // Step over all registered filters for this type ... + // Classify all of these filters. If one of them a standard filter ... + // type must be a standard type too - otherwise not! + + CheckedStringListIterator pIterator ; + ::rtl::OUString sFilterName ; + sal_Int32 nOrder ; + while( rData.pFilterCache->searchFilterForType( sTypeName, pIterator, sFilterName ) == sal_True ) + { + EFilterPackage eFilterPackage; + XCDGenerator::impl_classifyFilter( rData, sFilterName, eFilterPackage, nOrder ); + if( eFilterPackage == E_STANDARD ) + { + ePackage = E_STANDARD; + break; + } + } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_classifyFilter( const AppMember& rData, const ::rtl::OUString& sFilterName, EFilterPackage& ePackage, sal_Int32& nOrder ) +{ + // a) For versions less then 4 => use hard coded list of filter names to differ between standard or additional filters. + // Why? This version don't support the order flag or hasn't set it right! + // b) For version greater then 3 => use order of currently cached types in FilterCache! + + ePackage = E_STANDARD; + nOrder = 0; + + // writer + if( sFilterName == DECLARE_ASCII("writer_StarOffice_XML_Writer" ) ) { ePackage = E_STANDARD; nOrder = 1; } else + if( sFilterName == DECLARE_ASCII("writer_StarOffice_XML_Writer_Template" ) ) { ePackage = E_STANDARD; nOrder = 2; } else + if( sFilterName == DECLARE_ASCII("writer_StarWriter_50" ) ) { ePackage = E_STANDARD; nOrder = 3; } else + if( sFilterName == DECLARE_ASCII("writer_StarWriter_50_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 4; } else + if( sFilterName == DECLARE_ASCII("writer_StarWriter_40" ) ) { ePackage = E_STANDARD; nOrder = 5; } else + if( sFilterName == DECLARE_ASCII("writer_StarWriter_40_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 6; } else + if( sFilterName == DECLARE_ASCII("writer_StarWriter_30" ) ) { ePackage = E_STANDARD; nOrder = 7; } else + if( sFilterName == DECLARE_ASCII("writer_StarWriter_30_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 8; } else + if( sFilterName == DECLARE_ASCII("writer_StarWriter_20" ) ) { ePackage = E_STANDARD; nOrder = 9; } else + if( sFilterName == DECLARE_ASCII("writer_MS_Word_97" ) ) { ePackage = E_STANDARD; nOrder = 10; } else + if( sFilterName == DECLARE_ASCII("writer_MS_Word_97_Vorlage" ) ) { ePackage = E_STANDARD; nOrder = 11; } else + if( sFilterName == DECLARE_ASCII("writer_MS_Word_95" ) ) { ePackage = E_STANDARD; nOrder = 12; } else + if( sFilterName == DECLARE_ASCII("writer_MS_Word_95_Vorlage" ) ) { ePackage = E_STANDARD; nOrder = 13; } else + if( sFilterName == DECLARE_ASCII("writer_MS_WinWord_2x_W4W" ) ) { ePackage = E_STANDARD; nOrder = 14; } else + if( sFilterName == DECLARE_ASCII("writer_MS_WinWord_1x_W4W" ) ) { ePackage = E_STANDARD; nOrder = 15; } else + if( sFilterName == DECLARE_ASCII("writer_MS_Word_6x_W4W" ) ) { ePackage = E_STANDARD; nOrder = 16; } else + if( sFilterName == DECLARE_ASCII("writer_MS_Word_5x_W4W" ) ) { ePackage = E_STANDARD; nOrder = 17; } else + if( sFilterName == DECLARE_ASCII("writer_MS_Word_4x_W4W" ) ) { ePackage = E_STANDARD; nOrder = 18; } else + if( sFilterName == DECLARE_ASCII("writer_MS_Word_3x_W4W" ) ) { ePackage = E_STANDARD; nOrder = 19; } else + if( sFilterName == DECLARE_ASCII("writer_WordPerfect_Win_70_W4W" ) ) { ePackage = E_STANDARD; nOrder = 20; } else + if( sFilterName == DECLARE_ASCII("writer_WordPerfect_Win_61_W4W" ) ) { ePackage = E_STANDARD; nOrder = 21; } else + if( sFilterName == DECLARE_ASCII("writer_WordPerfect_Win_60_W4W" ) ) { ePackage = E_STANDARD; nOrder = 22; } else + if( sFilterName == DECLARE_ASCII("writer_WordPerfect_Win_51_52_W4W" ) ) { ePackage = E_STANDARD; nOrder = 23; } else + if( sFilterName == DECLARE_ASCII("writer_HTML_StarWriter" ) ) { ePackage = E_STANDARD; nOrder = 24; } else + if( sFilterName == DECLARE_ASCII("writer_Text" ) ) { ePackage = E_STANDARD; nOrder = 25; } else + if( sFilterName == DECLARE_ASCII("writer_Text_encoded" ) ) { ePackage = E_STANDARD; nOrder = 26; } else + if( sFilterName == DECLARE_ASCII("writer_Text_DOS" ) ) { ePackage = E_STANDARD; nOrder = 27; } else + if( sFilterName == DECLARE_ASCII("writer_Text_Unix" ) ) { ePackage = E_STANDARD; nOrder = 28; } else + if( sFilterName == DECLARE_ASCII("writer_Text_Mac" ) ) { ePackage = E_STANDARD; nOrder = 29; } else + if( sFilterName == DECLARE_ASCII("writer_Rich_Text_Format" ) ) { ePackage = E_STANDARD; nOrder = 30; } + + // writer web + if( sFilterName == DECLARE_ASCII("writer_web_HTML" ) ) { ePackage = E_STANDARD; nOrder = 1; } else + if( sFilterName == DECLARE_ASCII("writer_web_StarOffice_XML_Writer" ) ) { ePackage = E_STANDARD; nOrder = 2; } else + if( sFilterName == DECLARE_ASCII("writer_web_StarOffice_XML_Writer_Web_Template" ) ) { ePackage = E_STANDARD; nOrder = 3; } else + if( sFilterName == DECLARE_ASCII("writer_web_StarWriter_50" ) ) { ePackage = E_STANDARD; nOrder = 4; } else + if( sFilterName == DECLARE_ASCII("writer_web_StarWriterWeb_50_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 5; } else + if( sFilterName == DECLARE_ASCII("writer_web_StarWriter_40" ) ) { ePackage = E_STANDARD; nOrder = 6; } else + if( sFilterName == DECLARE_ASCII("writer_web_StarWriterWeb_40_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 7; } else + if( sFilterName == DECLARE_ASCII("writer_web_StarWriter_30" ) ) { ePackage = E_STANDARD; nOrder = 8; } else + if( sFilterName == DECLARE_ASCII("writer_web_Text_StarWriterWeb" ) ) { ePackage = E_STANDARD; nOrder = 9; } else + if( sFilterName == DECLARE_ASCII("writer_web_Text_encoded" ) ) { ePackage = E_STANDARD; nOrder = 10; } else + if( sFilterName == DECLARE_ASCII("writer_web_Text_DOS_StarWriterWeb" ) ) { ePackage = E_STANDARD; nOrder = 11; } else + if( sFilterName == DECLARE_ASCII("writer_web_Text_Unix_StarWriterWeb" ) ) { ePackage = E_STANDARD; nOrder = 12; } else + if( sFilterName == DECLARE_ASCII("writer_web_Text_Mac_StarWriterWeb" ) ) { ePackage = E_STANDARD; nOrder = 13; } + + // global document + if( sFilterName == DECLARE_ASCII("writer_globaldocument_StarOffice_XML_Writer_GlobalDocument" ) ) { ePackage = E_STANDARD; nOrder = 1; } else + if( sFilterName == DECLARE_ASCII("writer_globaldocument_StarOffice_XML_Writer" ) ) { ePackage = E_STANDARD; nOrder = 2; } else + if( sFilterName == DECLARE_ASCII("writer_globaldocument_StarWriter_50" ) ) { ePackage = E_STANDARD; nOrder = 3; } else + if( sFilterName == DECLARE_ASCII("writer_globaldocument_StarWriter_50GlobalDocument" ) ) { ePackage = E_STANDARD; nOrder = 4; } else + if( sFilterName == DECLARE_ASCII("writer_globaldocument_StarWriter_40" ) ) { ePackage = E_STANDARD; nOrder = 5; } else + if( sFilterName == DECLARE_ASCII("writer_globaldocument_StarWriter_40GlobalDocument" ) ) { ePackage = E_STANDARD; nOrder = 6; } else + if( sFilterName == DECLARE_ASCII("writer_globaldocument_StarWriter_30" ) ) { ePackage = E_STANDARD; nOrder = 7; } else + if( sFilterName == DECLARE_ASCII("writer_globaldocument_Text_encoded" ) ) { ePackage = E_STANDARD; nOrder = 8; } + + // calc + if( sFilterName == DECLARE_ASCII("calc_StarOffice_XML_Calc" ) ) { ePackage = E_STANDARD; nOrder = 1; } else + if( sFilterName == DECLARE_ASCII("calc_StarOffice_XML_Calc_Template" ) ) { ePackage = E_STANDARD; nOrder = 2; } else + if( sFilterName == DECLARE_ASCII("calc_StarCalc_50" ) ) { ePackage = E_STANDARD; nOrder = 3; } else + if( sFilterName == DECLARE_ASCII("calc_StarCalc_50_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 4; } else + if( sFilterName == DECLARE_ASCII("calc_StarCalc_40" ) ) { ePackage = E_STANDARD; nOrder = 5; } else + if( sFilterName == DECLARE_ASCII("calc_StarCalc_40_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 6; } else + if( sFilterName == DECLARE_ASCII("calc_StarCalc_30" ) ) { ePackage = E_STANDARD; nOrder = 7; } else + if( sFilterName == DECLARE_ASCII("calc_StarCalc_30_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 8; } else + if( sFilterName == DECLARE_ASCII("calc_StarCalc_10" ) ) { ePackage = E_STANDARD; nOrder = 9; } else + if( sFilterName == DECLARE_ASCII("calc_MS_Excel_97" ) ) { ePackage = E_STANDARD; nOrder = 10; } else + if( sFilterName == DECLARE_ASCII("calc_MS_Excel_97_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 11; } else + if( sFilterName == DECLARE_ASCII("calc_MS_Excel_95" ) ) { ePackage = E_STANDARD; nOrder = 12; } else + if( sFilterName == DECLARE_ASCII("calc_MS_Excel_95_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 13; } else + if( sFilterName == DECLARE_ASCII("calc_MS_Excel_5095" ) ) { ePackage = E_STANDARD; nOrder = 14; } else + if( sFilterName == DECLARE_ASCII("calc_MS_Excel_5095_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 15; } else + if( sFilterName == DECLARE_ASCII("calc_MS_Excel_40" ) ) { ePackage = E_STANDARD; nOrder = 16; } else + if( sFilterName == DECLARE_ASCII("calc_MS_Excel_40_VorlageTemplate" ) ) { ePackage = E_STANDARD; nOrder = 17; } else + if( sFilterName == DECLARE_ASCII("calc_HTML_StarCalc" ) ) { ePackage = E_STANDARD; nOrder = 18; } else + if( sFilterName == DECLARE_ASCII("calc_HTML_WebQuery" ) ) { ePackage = E_STANDARD; nOrder = 19; } else + if( sFilterName == DECLARE_ASCII("calc_Rich_Text_Format_StarCalc" ) ) { ePackage = E_STANDARD; nOrder = 20; } else + if( sFilterName == DECLARE_ASCII("calc_Text_txt_csv_StarCalc" ) ) { ePackage = E_STANDARD; nOrder = 21; } else + if( sFilterName == DECLARE_ASCII("calc_dBase" ) ) { ePackage = E_STANDARD; nOrder = 22; } else + if( sFilterName == DECLARE_ASCII("calc_Lotus" ) ) { ePackage = E_STANDARD; nOrder = 23; } else + if( sFilterName == DECLARE_ASCII("calc_SYLK" ) ) { ePackage = E_STANDARD; nOrder = 24; } else + if( sFilterName == DECLARE_ASCII("calc_DIF" ) ) { ePackage = E_STANDARD; nOrder = 25; } + + // impress + if( sFilterName == DECLARE_ASCII("impress_StarOffice_XML_Impress" ) ) { ePackage = E_STANDARD; nOrder = 1; } else + if( sFilterName == DECLARE_ASCII("impress_StarOffice_XML_Impress_Template" ) ) { ePackage = E_STANDARD; nOrder = 2; } else + if( sFilterName == DECLARE_ASCII("impress_StarImpress_50" ) ) { ePackage = E_STANDARD; nOrder = 3; } else + if( sFilterName == DECLARE_ASCII("impress_StarImpress_50_Vorlage" ) ) { ePackage = E_STANDARD; nOrder = 4; } else + if( sFilterName == DECLARE_ASCII("impress_StarImpress_50_packed" ) ) { ePackage = E_STANDARD; nOrder = 5; } else + if( sFilterName == DECLARE_ASCII("impress_StarImpress_40" ) ) { ePackage = E_STANDARD; nOrder = 6; } else + if( sFilterName == DECLARE_ASCII("impress_StarImpress_40_Vorlage" ) ) { ePackage = E_STANDARD; nOrder = 7; } else + if( sFilterName == DECLARE_ASCII("impress_MS_PowerPoint_97" ) ) { ePackage = E_STANDARD; nOrder = 8; } else + if( sFilterName == DECLARE_ASCII("impress_MS_PowerPoint_97_Vorlage" ) ) { ePackage = E_STANDARD; nOrder = 9; } else + if( sFilterName == DECLARE_ASCII("impress_StarOffice_XML_Draw" ) ) { ePackage = E_STANDARD; nOrder = 10; } else + if( sFilterName == DECLARE_ASCII("impress_StarDraw_50_StarImpress" ) ) { ePackage = E_STANDARD; nOrder = 11; } else + if( sFilterName == DECLARE_ASCII("impress_StarDraw_50_Vorlage_StarImpress" ) ) { ePackage = E_STANDARD; nOrder = 12; } else + if( sFilterName == DECLARE_ASCII("impress_StarDraw_30_StarImpress" ) ) { ePackage = E_STANDARD; nOrder = 13; } else + if( sFilterName == DECLARE_ASCII("impress_StarDraw_30_Vorlage_StarImpress" ) ) { ePackage = E_STANDARD; nOrder = 14; } else + if( sFilterName == DECLARE_ASCII("impress_CGM_Computer_Graphics_Metafile" ) ) { ePackage = E_STANDARD; nOrder = 15; } + + // draw + if( sFilterName == DECLARE_ASCII("draw_StarOffice_XML_Draw" ) ) { ePackage = E_STANDARD; nOrder = 1; } else + if( sFilterName == DECLARE_ASCII("draw_StarOffice_XML_Draw_Template" ) ) { ePackage = E_STANDARD; nOrder = 2; } else + if( sFilterName == DECLARE_ASCII("draw_StarDraw_50" ) ) { ePackage = E_STANDARD; nOrder = 3; } else + if( sFilterName == DECLARE_ASCII("draw_StarDraw_50_Vorlage" ) ) { ePackage = E_STANDARD; nOrder = 4; } else + if( sFilterName == DECLARE_ASCII("draw_StarDraw_30" ) ) { ePackage = E_STANDARD; nOrder = 5; } else + if( sFilterName == DECLARE_ASCII("draw_StarDraw_30_Vorlage" ) ) { ePackage = E_STANDARD; nOrder = 6; } else + if( sFilterName == DECLARE_ASCII("draw_StarOffice_XML_Impress" ) ) { ePackage = E_STANDARD; nOrder = 7; } else + if( sFilterName == DECLARE_ASCII("draw_StarImpress_50_StarDraw" ) ) { ePackage = E_STANDARD; nOrder = 8; } else + if( sFilterName == DECLARE_ASCII("draw_StarImpress_50_Vorlage_StarDraw" ) ) { ePackage = E_STANDARD; nOrder = 9; } else + if( sFilterName == DECLARE_ASCII("draw_StarImpress_40_StarDraw" ) ) { ePackage = E_STANDARD; nOrder = 10; } else + if( sFilterName == DECLARE_ASCII("draw_StarImpress_40_Vorlage_StarDraw" ) ) { ePackage = E_STANDARD; nOrder = 11; } else + if( sFilterName == DECLARE_ASCII("draw_SGV_StarDraw_20" ) ) { ePackage = E_STANDARD; nOrder = 12; } else + if( sFilterName == DECLARE_ASCII("draw_SGF_StarOffice_Writer_SGF" ) ) { ePackage = E_STANDARD; nOrder = 13; } else + if( sFilterName == DECLARE_ASCII("draw_SVM_StarView_Metafile" ) ) { ePackage = E_STANDARD; nOrder = 14; } else + if( sFilterName == DECLARE_ASCII("draw_WMF_MS_Windows_Metafile" ) ) { ePackage = E_STANDARD; nOrder = 15; } else + if( sFilterName == DECLARE_ASCII("draw_EMF_MS_Windows_Metafile" ) ) { ePackage = E_STANDARD; nOrder = 16; } else + if( sFilterName == DECLARE_ASCII("draw_EPS_Encapsulated_PostScript" ) ) { ePackage = E_STANDARD; nOrder = 17; } else + if( sFilterName == DECLARE_ASCII("draw_DXF_AutoCAD_Interchange" ) ) { ePackage = E_STANDARD; nOrder = 18; } else + if( sFilterName == DECLARE_ASCII("draw_BMP_MS_Windows" ) ) { ePackage = E_STANDARD; nOrder = 19; } else + if( sFilterName == DECLARE_ASCII("draw_GIF_Graphics_Interchange" ) ) { ePackage = E_STANDARD; nOrder = 20; } else + if( sFilterName == DECLARE_ASCII("draw_JPG_JPEG" ) ) { ePackage = E_STANDARD; nOrder = 21; } else + if( sFilterName == DECLARE_ASCII("draw_MET_OS2_Metafile" ) ) { ePackage = E_STANDARD; nOrder = 22; } else + if( sFilterName == DECLARE_ASCII("draw_PBM_Portable_Bitmap" ) ) { ePackage = E_STANDARD; nOrder = 23; } else + if( sFilterName == DECLARE_ASCII("draw_PCD_Photo_CD_Base" ) ) { ePackage = E_STANDARD; nOrder = 24; } else + if( sFilterName == DECLARE_ASCII("draw_PCD_Photo_CD_Base4" ) ) { ePackage = E_STANDARD; nOrder = 25; } else + if( sFilterName == DECLARE_ASCII("draw_PCD_Photo_CD_Base16" ) ) { ePackage = E_STANDARD; nOrder = 26; } else + if( sFilterName == DECLARE_ASCII("draw_PCT_Mac_Pict" ) ) { ePackage = E_STANDARD; nOrder = 27; } else + if( sFilterName == DECLARE_ASCII("draw_PCX_Zsoft_Paintbrush" ) ) { ePackage = E_STANDARD; nOrder = 28; } else + if( sFilterName == DECLARE_ASCII("draw_PGM_Portable_Graymap" ) ) { ePackage = E_STANDARD; nOrder = 29; } else + if( sFilterName == DECLARE_ASCII("draw_PNG_Portable_Network_Graphic" ) ) { ePackage = E_STANDARD; nOrder = 30; } else + if( sFilterName == DECLARE_ASCII("draw_PPM_Portable_Pixelmap" ) ) { ePackage = E_STANDARD; nOrder = 31; } else + if( sFilterName == DECLARE_ASCII("draw_PSD_Adobe_Photoshop" ) ) { ePackage = E_STANDARD; nOrder = 32; } else + if( sFilterName == DECLARE_ASCII("draw_RAS_Sun_Rasterfile" ) ) { ePackage = E_STANDARD; nOrder = 33; } else + if( sFilterName == DECLARE_ASCII("draw_TGA_Truevision_TARGA" ) ) { ePackage = E_STANDARD; nOrder = 34; } else + if( sFilterName == DECLARE_ASCII("draw_TIF_Tag_Image_File" ) ) { ePackage = E_STANDARD; nOrder = 35; } else + if( sFilterName == DECLARE_ASCII("draw_XBM_X_Consortium" ) ) { ePackage = E_STANDARD; nOrder = 36; } else + if( sFilterName == DECLARE_ASCII("draw_XPM" ) ) { ePackage = E_STANDARD; nOrder = 37; } + + // chart + if( sFilterName == DECLARE_ASCII("chart_StarOffice_XML_Chart" ) ) { ePackage = E_STANDARD; nOrder = 1; } else + if( sFilterName == DECLARE_ASCII("chart_StarChart_50" ) ) { ePackage = E_STANDARD; nOrder = 2; } else + if( sFilterName == DECLARE_ASCII("chart_StarChart_40" ) ) { ePackage = E_STANDARD; nOrder = 3; } else + if( sFilterName == DECLARE_ASCII("chart_StarChart_30" ) ) { ePackage = E_STANDARD; nOrder = 4; } + + // math + if( sFilterName == DECLARE_ASCII("math_StarOffice_XML_Math" ) ) { ePackage = E_STANDARD; nOrder = 1; } else + if( sFilterName == DECLARE_ASCII("math_StarMath_50" ) ) { ePackage = E_STANDARD; nOrder = 2; } else + if( sFilterName == DECLARE_ASCII("math_StarMath_40" ) ) { ePackage = E_STANDARD; nOrder = 3; } else + if( sFilterName == DECLARE_ASCII("math_StarMath_30" ) ) { ePackage = E_STANDARD; nOrder = 4; } else + if( sFilterName == DECLARE_ASCII("math_StarMath_20" ) ) { ePackage = E_STANDARD; nOrder = 5; } else + if( sFilterName == DECLARE_ASCII("math_MathML_XML_Math" ) ) { ePackage = E_STANDARD; nOrder = 6; } else + if( sFilterName == DECLARE_ASCII("math_MathType_3x" ) ) { ePackage = E_STANDARD; nOrder = 7; } + + // graphics + if( sFilterName == DECLARE_ASCII("bmp_Import" ) ) { ePackage = E_STANDARD; nOrder = 1; } else + if( sFilterName == DECLARE_ASCII("bmp_Export" ) ) { ePackage = E_STANDARD; nOrder = 2; } else + if( sFilterName == DECLARE_ASCII("dxf_Import" ) ) { ePackage = E_STANDARD; nOrder = 3; } else + if( sFilterName == DECLARE_ASCII("emf_Import" ) ) { ePackage = E_STANDARD; nOrder = 4; } else + if( sFilterName == DECLARE_ASCII("emf_Export" ) ) { ePackage = E_STANDARD; nOrder = 5; } else + if( sFilterName == DECLARE_ASCII("eps_Import" ) ) { ePackage = E_STANDARD; nOrder = 6; } else + if( sFilterName == DECLARE_ASCII("eps_Export" ) ) { ePackage = E_STANDARD; nOrder = 7; } else + if( sFilterName == DECLARE_ASCII("gif_Import" ) ) { ePackage = E_STANDARD; nOrder = 8; } else + if( sFilterName == DECLARE_ASCII("gif_Export" ) ) { ePackage = E_STANDARD; nOrder = 9; } else + if( sFilterName == DECLARE_ASCII("jpg_Import" ) ) { ePackage = E_STANDARD; nOrder = 10; } else + if( sFilterName == DECLARE_ASCII("jpg_Export" ) ) { ePackage = E_STANDARD; nOrder = 11; } else + if( sFilterName == DECLARE_ASCII("met_Import" ) ) { ePackage = E_STANDARD; nOrder = 12; } else + if( sFilterName == DECLARE_ASCII("met_Export" ) ) { ePackage = E_STANDARD; nOrder = 13; } else + if( sFilterName == DECLARE_ASCII("pbm_Import" ) ) { ePackage = E_STANDARD; nOrder = 14; } else + if( sFilterName == DECLARE_ASCII("pbm_Export" ) ) { ePackage = E_STANDARD; nOrder = 15; } else + if( sFilterName == DECLARE_ASCII("pcd_Import_Base16" ) ) { ePackage = E_STANDARD; nOrder = 16; } else + if( sFilterName == DECLARE_ASCII("pcd_Import_Base4" ) ) { ePackage = E_STANDARD; nOrder = 17; } else + if( sFilterName == DECLARE_ASCII("pcd_Import_Base" ) ) { ePackage = E_STANDARD; nOrder = 18; } else + if( sFilterName == DECLARE_ASCII("pct_Import" ) ) { ePackage = E_STANDARD; nOrder = 19; } else + if( sFilterName == DECLARE_ASCII("pct_Export" ) ) { ePackage = E_STANDARD; nOrder = 20; } else + if( sFilterName == DECLARE_ASCII("pcx_Import" ) ) { ePackage = E_STANDARD; nOrder = 21; } else + if( sFilterName == DECLARE_ASCII("pgm_Import" ) ) { ePackage = E_STANDARD; nOrder = 22; } else + if( sFilterName == DECLARE_ASCII("pgm_Export" ) ) { ePackage = E_STANDARD; nOrder = 23; } else + if( sFilterName == DECLARE_ASCII("png_Import" ) ) { ePackage = E_STANDARD; nOrder = 24; } else + if( sFilterName == DECLARE_ASCII("png_Export" ) ) { ePackage = E_STANDARD; nOrder = 25; } else + if( sFilterName == DECLARE_ASCII("ppm_Import" ) ) { ePackage = E_STANDARD; nOrder = 26; } else + if( sFilterName == DECLARE_ASCII("ppm_Export" ) ) { ePackage = E_STANDARD; nOrder = 27; } else + if( sFilterName == DECLARE_ASCII("psd_Import" ) ) { ePackage = E_STANDARD; nOrder = 28; } else + if( sFilterName == DECLARE_ASCII("ras_Import" ) ) { ePackage = E_STANDARD; nOrder = 29; } else + if( sFilterName == DECLARE_ASCII("ras_Export" ) ) { ePackage = E_STANDARD; nOrder = 30; } else + if( sFilterName == DECLARE_ASCII("sgf_Import" ) ) { ePackage = E_STANDARD; nOrder = 31; } else + if( sFilterName == DECLARE_ASCII("sgv_Import" ) ) { ePackage = E_STANDARD; nOrder = 32; } else + if( sFilterName == DECLARE_ASCII("svg_Export" ) ) { ePackage = E_STANDARD; nOrder = 33; } else + if( sFilterName == DECLARE_ASCII("svm_Import" ) ) { ePackage = E_STANDARD; nOrder = 34; } else + if( sFilterName == DECLARE_ASCII("svm_Export" ) ) { ePackage = E_STANDARD; nOrder = 35; } else + if( sFilterName == DECLARE_ASCII("tga_Import" ) ) { ePackage = E_STANDARD; nOrder = 36; } else + if( sFilterName == DECLARE_ASCII("tif_Import" ) ) { ePackage = E_STANDARD; nOrder = 37; } else + if( sFilterName == DECLARE_ASCII("tif_Export" ) ) { ePackage = E_STANDARD; nOrder = 38; } else + if( sFilterName == DECLARE_ASCII("wmf_Import" ) ) { ePackage = E_STANDARD; nOrder = 39; } else + if( sFilterName == DECLARE_ASCII("wmf_Export" ) ) { ePackage = E_STANDARD; nOrder = 40; } else + if( sFilterName == DECLARE_ASCII("xbm_Import" ) ) { ePackage = E_STANDARD; nOrder = 41; } else + if( sFilterName == DECLARE_ASCII("xpm_Import" ) ) { ePackage = E_STANDARD; nOrder = 42; } else + if( sFilterName == DECLARE_ASCII("xpm_Export" ) ) { ePackage = E_STANDARD; nOrder = 43; } +} + +//***************************************************************************************************************** +void XCDGenerator::impl_orderAlphabetical( css::uno::Sequence< ::rtl::OUString >& lList ) +{ + ::std::vector< ::rtl::OUString > lSortedList; + sal_Int32 nCount ; + sal_Int32 nItem ; + + // Copy sequence to vector + nCount = lList.getLength(); + for( nItem=0; nItem<nCount; ++nItem ) + { + lSortedList.push_back( lList[nItem] ); + } + + // sort in a alphabetical order + ::std::sort( lSortedList.begin(), lSortedList.end() ); + + // copy sorted list back to sequence + nItem = 0; + for( ::std::vector< ::rtl::OUString >::iterator pIterator=lSortedList.begin(); pIterator!=lSortedList.end(); ++pIterator ) + { + lList[nItem] = *pIterator; + ++nItem; + } +} + +//***************************************************************************************************************** +class ModifiedUTF7Buffer +{ + rtl::OUStringBuffer & m_rBuffer; + sal_uInt32 m_nValue; + int m_nFilled; + +public: + ModifiedUTF7Buffer(rtl::OUStringBuffer * pTheBuffer): + m_rBuffer(*pTheBuffer), m_nFilled(0) {} + + inline void write(sal_Unicode c); + + void flush(); +}; + +inline void ModifiedUTF7Buffer::write(sal_Unicode c) +{ + switch (m_nFilled) + { + case 0: + m_nValue = sal_uInt32(c) << 8; + m_nFilled = 2; + break; + + case 1: + m_nValue |= sal_uInt32(c); + m_nFilled = 3; + flush(); + break; + + case 2: + m_nValue |= sal_uInt32(c) >> 8; + m_nFilled = 3; + flush(); + m_nValue = (sal_uInt32(c) & 0xFF) << 16; + m_nFilled = 1; + break; + } +} + +void ModifiedUTF7Buffer::flush() +{ + static sal_Unicode const aModifiedBase64[64] + = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', + 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '.' }; + switch (m_nFilled) + { + case 1: + m_rBuffer.append(aModifiedBase64[m_nValue >> 18]); + m_rBuffer.append(aModifiedBase64[m_nValue >> 12 & 63]); + break; + + case 2: + m_rBuffer.append(aModifiedBase64[m_nValue >> 18]); + m_rBuffer.append(aModifiedBase64[m_nValue >> 12 & 63]); + m_rBuffer.append(aModifiedBase64[m_nValue >> 6 & 63]); + break; + + case 3: + m_rBuffer.append(aModifiedBase64[m_nValue >> 18]); + m_rBuffer.append(aModifiedBase64[m_nValue >> 12 & 63]); + m_rBuffer.append(aModifiedBase64[m_nValue >> 6 & 63]); + m_rBuffer.append(aModifiedBase64[m_nValue & 63]); + break; + } + m_nFilled = 0; + m_nValue = 0; +} + + +sal_Bool XCDGenerator::impl_isUsAsciiAlphaDigit(sal_Unicode c, sal_Bool bDigitAllowed) +{ + return c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' + || bDigitAllowed && c >= '0' && c <= '9'; +} + +::rtl::OUString XCDGenerator::impl_encodeSetName( const ::rtl::OUString& rSource ) +{ + return impl_encodeSpecialSigns( rSource ); +/* + rtl::OUStringBuffer aTarget; + + sal_Unicode const * pBegin = rSource.getStr(); + sal_Unicode const * pEnd = pBegin + rSource.getLength(); + sal_Unicode const * pCopyEnd = pBegin; + sal_Unicode const * p = pBegin; + while (p != pEnd) + { + sal_Unicode c = *p; + if (!impl_isUsAsciiAlphaDigit(c,p != pBegin)) + switch (c) + { + case '-': + case '.': + if (p != pBegin) + break; + default: + aTarget.append(pCopyEnd, p - pCopyEnd); + aTarget.append(sal_Unicode('_')); + ModifiedUTF7Buffer aBuffer(&aTarget); + for (;;) + { + aBuffer.write(c); + ++p; + if (p == pEnd) + break; + c = *p; + if (impl_isUsAsciiAlphaDigit(c) || c == '-' || c == '.') + break; + } + aBuffer.flush(); + aTarget.append(sal_Unicode('_')); + pCopyEnd = p; + continue; + } + ++p; + } + + if (pCopyEnd == pBegin) + return rSource; + else + { + aTarget.append(pCopyEnd, pEnd - pCopyEnd); + return aTarget.makeStringAndClear(); + } +*/ +} diff --git a/framework/util/defs/wntmsci8 b/framework/util/defs/wntmsci8 index 6bfd5739523d..1d25513377d0 100644 --- a/framework/util/defs/wntmsci8 +++ b/framework/util/defs/wntmsci8 @@ -1124,3884 +1124,3 @@ cpp_release ?s_pType_com_sun_star_xml_sax_SAXException@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBVSAXException@sax@xml@456@@Z@4PAU_typelib_TypeDescriptionReference@@A
__CT??_R0?AVWrappedTargetException@lang@star@sun@com@@@8??0WrappedTargetException@lang@star@sun@com@@QAE@ABV01234@@Z20
__CTA2?AVWrappedTargetException@lang@star@sun@com@@
-??0?$Reference@VXChangesBatch@util@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??0?$Sequence@VAny@uno@star@sun@com@@@uno@star@sun@com@@QAE@J@Z
-??0ConfigAccess@framework@@QAE@ABV?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-??0PropertyValue@beans@star@sun@com@@QAE@XZ
-??0WriteGuard@framework@@QAE@AAVIRWLock@1@@Z
-??1?$Reference@VXChangesBatch@util@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Sequence@VAny@uno@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1ConfigAccess@framework@@UAE@XZ
-??1PropertyValue@beans@star@sun@com@@QAE@XZ
-??1WriteGuard@framework@@QAE@XZ
-??4?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@QAAAAV01234@ABV01234@@Z
-??C?$Reference@VXChangesBatch@util@star@sun@com@@@uno@star@sun@com@@QBAPAVXChangesBatch@util@234@XZ
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABUPropertyValue@beans@123@@Z
-??_7ConfigAccess@framework@@6B@
-??_C@_0CA@PLFAEILA@com?4sun?4star?4util?4XChangesBatch?$AA@
-??_C@_0CH@CJPJMNHE@com?4sun?4star?4lang?4XMultiServiceF@
-??_GConfigAccess@framework@@UAEPAXI@Z
-?cfg@ConfigAccess@framework@@UAEABV?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?close@ConfigAccess@framework@@UAEXXZ
-?cpp_acquire@uno@star@sun@com@@YAXPAX@Z
-?cpp_release@uno@star@sun@com@@YAXPAX@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXChangesBatch@util@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@2345@@Z
-?iquery@?$Reference@VXChangesBatch@util@star@sun@com@@@uno@star@sun@com@@CAPAVXChangesBatch@util@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@uno@star@sun@com@@CAPAVXMultiServiceFactory@lang@345@PAVXInterface@2345@@Z
-?iquery@BaseReference@uno@star@sun@com@@KAPAVXInterface@2345@PAV62345@ABVType@2345@@Z
-?lock@WriteGuard@framework@@QAEXXZ
-?open@ConfigAccess@framework@@UAEXW4EOpenMode@12@@Z
-?s_pType_com_sun_star_lang_XMultiServiceFactory@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_util_XChangesBatch@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXChangesBatch@util@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?set@?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@QAAEPAVXInterface@2345@@Z
-?unlock@WriteGuard@framework@@QAEXXZ
-??0OUString@rtl@@QAE@PBG@Z
-?GetNTDomainName@NetworkDomain@framework@@SA?AVOUString@rtl@@XZ
-?GetYPDomainName@NetworkDomain@framework@@SA?AVOUString@rtl@@XZ
-??0?$BaseHash@UProtocolHandler@framework@@@framework@@QAE@XZ
-??0?$BaseHash@VOUString@rtl@@@framework@@QAE@XZ
-??0?$Sequence@VOUString@rtl@@@uno@star@sun@com@@QAE@J@Z
-??0?$Sequence@VOUString@rtl@@@uno@star@sun@com@@QAE@XZ
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@@2@@std@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@2@@std@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@1@I@Z
-??0?$_STLP_alloc_proxy@PAVOUString@rtl@@V12@V?$allocator@VOUString@rtl@@@std@@@std@@QAE@ABV?$allocator@VOUString@rtl@@@1@PAVOUString@rtl@@@Z
-??0?$_Vector_base@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAE@ABV?$allocator@VOUString@rtl@@@1@@Z
-??0?$_Vector_base@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAE@IABV?$allocator@VOUString@rtl@@@1@@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@1@@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@QAE@XZ
-??0?$allocator@VOUString@rtl@@@std@@QAE@ABV01@@Z
-??0?$allocator@VOUString@rtl@@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UProtocolHandler@framework@@UOUStringHashCode@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@7@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@QAE@ABVOUString@rtl@@ABUProtocolHandler@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@V12@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@V12@@std@@QAE@ABVOUString@rtl@@0@Z
-??0?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAE@ABV01@@Z
-??0?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAE@ABV?$allocator@VOUString@rtl@@@1@@Z
-??0HandlerCFGAccess@framework@@QAE@ABVOUString@rtl@@@Z
-??0HandlerCache@framework@@QAE@XZ
-??0OUStringList@framework@@QAE@ABV01@@Z
-??0OUStringList@framework@@QAE@XZ
-??0PatternHash@framework@@QAE@XZ
-??0ProtocolHandler@framework@@QAE@ABU01@@Z
-??0ProtocolHandler@framework@@QAE@XZ
-??0ReadGuard@framework@@QAE@AAVIRWLock@1@@Z
-??1?$BaseHash@UProtocolHandler@framework@@@framework@@QAE@XZ
-??1?$BaseHash@VOUString@rtl@@@framework@@QAE@XZ
-??1?$Sequence@VOUString@rtl@@@uno@star@sun@com@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@2@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAVOUString@rtl@@V12@V?$allocator@VOUString@rtl@@@std@@@std@@QAE@XZ
-??1?$_Vector_base@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@QAE@XZ
-??1?$allocator@VOUString@rtl@@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UProtocolHandler@framework@@UOUStringHashCode@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@7@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@V12@@std@@QAE@XZ
-??1?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAE@XZ
-??1HandlerCFGAccess@framework@@UAE@XZ
-??1HandlerCache@framework@@UAE@XZ
-??1OUStringList@framework@@QAE@XZ
-??1PatternHash@framework@@QAE@XZ
-??1ProtocolHandler@framework@@QAE@XZ
-??1ReadGuard@framework@@QAE@XZ
-??4?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAEAAV01@ABV01@@Z
-??4OUStringList@framework@@QAEAAV01@ABV01@@Z
-??4ProtocolHandler@framework@@QAEAAU01@ABU01@@Z
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@0@0@Z
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@0@0@Z
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@0@0@Z
-??A?$hash_map@VOUString@rtl@@UProtocolHandler@framework@@UOUStringHashCode@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@7@@std@@QAEAAUProtocolHandler@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAEAAVOUString@rtl@@ABV23@@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEPAU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QBEAAU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEAAU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEAAU01@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@V12@@1@@Z
-??R?$equal_to@VOUString@rtl@@@std@@QBE_NABVOUString@rtl@@0@Z
-??R?$less@I@std@@QBE_NABI0@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Sequence@VOUString@rtl@@@0123@@Z
-??_7HandlerCFGAccess@framework@@6B@
-??_7HandlerCache@framework@@6B@
-??_G?$BaseHash@UProtocolHandler@framework@@@framework@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@V12@@std@@QAEPAXI@Z
-??_GHandlerCFGAccess@framework@@UAEPAXI@Z
-??_GHandlerCache@framework@@UAEPAXI@Z
-??_GOUString@rtl@@QAEPAXI@Z
-??_GPatternHash@framework@@QAEPAXI@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@1@ABU21@@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@V12@@1@ABU21@@Z
-?_Construct@std@@YAXPAVOUString@rtl@@ABV23@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@1@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@V12@@1@@Z
-?_Destroy@std@@YAXPAVOUString@rtl@@0@Z
-?_Destroy@std@@YAXPAVOUString@rtl@@@Z
-?_M_allocate_and_copy@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@IAEPAVOUString@rtl@@IPBV34@0@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@V12@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_clear@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@IAEXXZ
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@AAEXI@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QAEAAU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEAAU?$pair@$$CBVOUString@rtl@@V12@@2@ABU32@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEII@Z
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@XZ
-?__advance@std@@YAXAAPBIHABUrandom_access_iterator_tag@1@@Z
-?__copy@std@@YAPAVOUString@rtl@@PBV23@0PAV23@ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_ptrs@std@@YAPAVOUString@rtl@@PBV23@0PAV23@ABU__false_type@1@@Z
-?__destroy@std@@YAXPAVOUString@rtl@@00@Z
-?__destroy_aux@std@@YAXPAVOUString@rtl@@0ABU__false_type@1@@Z
-?__distance@std@@YAHABQBI0ABUrandom_access_iterator_tag@1@@Z
-?__less@std@@YA?AU?$less@I@1@PAI@Z
-?__lower_bound@std@@YAPBIPBI0ABIU?$less@I@1@PAH@Z
-?__uninitialized_copy@std@@YAPAVOUString@rtl@@PBV23@0PAV23@ABU__false_type@1@@Z
-?advance@std@@YAXAAPBIH@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@IPBX@Z
-?allocate@?$allocator@VOUString@rtl@@@std@@QBEPAVOUString@rtl@@IPBX@Z
-?begin@?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?begin@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAEPAVOUString@rtl@@XZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEIXZ
-?capacity@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QBEIXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEXXZ
-?cpp_queryInterface@uno@star@sun@com@@YAPAXPAXPAU_typelib_TypeDescriptionReference@@@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@I@Z
-?deallocate@?$allocator@VOUString@rtl@@@std@@QBEXPAVOUString@rtl@@I@Z
-?distance@std@@YAHABQBI0@Z
-?distance_type@std@@YAPAHPBVOUString@rtl@@@Z
-?end@?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?end@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAEPAVOUString@rtl@@XZ
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@ABVOUString@rtl@@@Z
-?findPatternKey@PatternHash@framework@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABVOUString@rtl@@@Z
-?free@?$BaseHash@UProtocolHandler@framework@@@framework@@QAEXXZ
-?free@?$BaseHash@VOUString@rtl@@@framework@@QAEXXZ
-?get_allocator@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QBE?AV?$allocator@VOUString@rtl@@@2@XZ
-?iterator_category@std@@YA?AUrandom_access_iterator_tag@1@PBI@Z
-?iterator_category@std@@YA?AUrandom_access_iterator_tag@1@PBVOUString@rtl@@@Z
-?lock@ReadGuard@framework@@QAEXXZ
-?m_nRefCount@HandlerCache@framework@@0JA
-?m_pHandler@HandlerCache@framework@@0PAV?$BaseHash@UProtocolHandler@framework@@@2@A
-?m_pPattern@HandlerCache@framework@@0PAVPatternHash@2@A
-?read@HandlerCFGAccess@framework@@QAEXPAPAV?$BaseHash@UProtocolHandler@framework@@@2@PAPAVPatternHash@2@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEXI@Z
-?search@HandlerCache@framework@@QBEEABUURL@util@star@sun@com@@PAUProtocolHandler@2@@Z
-?search@HandlerCache@framework@@QBEEABVOUString@rtl@@PAUProtocolHandler@2@@Z
-?size@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QBEIXZ
-?swap@?$hash_map@VOUString@rtl@@UProtocolHandler@framework@@UOUStringHashCode@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@7@@std@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@2@@std@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEXAAV12@@Z
-?swap@std@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@1@0@Z
-?swap@std@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@0@Z
-?swap@std@@YAXAAU?$equal_to@VOUString@rtl@@@1@0@Z
-?swap@std@@YAXAAUOUStringHashCode@framework@@0@Z
-?swap@std@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@std@@@std@@@2@@1@0@Z
-?swap@std@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@2@@1@0@Z
-?unlock@ReadGuard@framework@@QAEXXZ
-?value_type@std@@YAPAVOUString@rtl@@PBV23@@Z
-??0?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$SetNodeHash@UContentHandler@framework@@@framework@@QAE@XZ
-??0?$SetNodeHash@UDetector@framework@@@framework@@QAE@XZ
-??0?$SetNodeHash@UFileType@framework@@@framework@@QAE@XZ
-??0?$SetNodeHash@UFilter@framework@@@framework@@QAE@XZ
-??0?$SetNodeHash@ULoader@framework@@@framework@@QAE@XZ
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@@2@@std@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@@2@@std@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@@2@@std@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@@2@@std@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@@2@@std@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@@2@@std@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@@1@I@Z
-??0?$_STLP_alloc_proxy@PAVOUString@rtl@@V12@V?$allocator@VOUString@rtl@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@1@@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@1@@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@1@@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@1@@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@1@@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@7@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@7@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@7@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@7@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAE@ABV01@@Z
-??0?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@7@@std@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@ABV01@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@QAE@ABVOUString@rtl@@ABUContentHandler@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@QAE@ABVOUString@rtl@@ABUDetector@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@QAE@ABVOUString@rtl@@ABUFileType@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@QAE@ABVOUString@rtl@@ABUFilter@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@QAE@ABVOUString@rtl@@ABULoader@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@QAE@ABVOUString@rtl@@ABVStringList@framework@@@Z
-??0ContentHandler@framework@@QAE@ABU01@@Z
-??0ContentHandler@framework@@QAE@XZ
-??0Detector@framework@@QAE@ABU01@@Z
-??0Detector@framework@@QAE@XZ
-??0FileType@framework@@QAE@ABU01@@Z
-??0FileType@framework@@QAE@XZ
-??0Filter@framework@@QAE@ABU01@@Z
-??0Filter@framework@@QAE@XZ
-??0FilterCFGAccess@framework@@QAE@ABVOUString@rtl@@JF@Z
-??0Loader@framework@@QAE@ABU01@@Z
-??0Loader@framework@@QAE@XZ
-??0Logfile@rtl@@QAE@PBD@Z
-??0OString@rtl@@QAE@PBD@Z
-??0OUString@rtl@@QAE@PAU_rtl_uString@@@Z
-??0OUStringBuffer@rtl@@QAE@J@Z
-??0PerformanceHash@framework@@QAE@XZ
-??0StringHash@framework@@QAE@ABV01@@Z
-??0StringHash@framework@@QAE@XZ
-??0StringList@framework@@QAE@ABV01@@Z
-??0StringList@framework@@QAE@XZ
-??0Type@uno@star@sun@com@@QAE@ABV01234@@Z
-??1?$SetNodeHash@UContentHandler@framework@@@framework@@QAE@XZ
-??1?$SetNodeHash@UDetector@framework@@@framework@@QAE@XZ
-??1?$SetNodeHash@UFileType@framework@@@framework@@QAE@XZ
-??1?$SetNodeHash@UFilter@framework@@@framework@@QAE@XZ
-??1?$SetNodeHash@ULoader@framework@@@framework@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@7@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@7@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@7@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@7@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@7@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@QAE@XZ
-??1ContentHandler@framework@@QAE@XZ
-??1Detector@framework@@QAE@XZ
-??1FileType@framework@@QAE@XZ
-??1Filter@framework@@QAE@XZ
-??1FilterCFGAccess@framework@@UAE@XZ
-??1Loader@framework@@QAE@XZ
-??1Logfile@rtl@@QAE@XZ
-??1OString@rtl@@QAE@XZ
-??1OUStringBuffer@rtl@@QAE@XZ
-??1PerformanceHash@framework@@QAE@XZ
-??1StringHash@framework@@QAE@XZ
-??1StringList@framework@@QAE@XZ
-??1Type@uno@star@sun@com@@QAE@XZ
-??4?$Sequence@VOUString@rtl@@@uno@star@sun@com@@QAAAAV01234@ABV01234@@Z
-??4?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAEAAV01@ABV01@@Z
-??4?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEAAV01@ABV01@@Z
-??4ContentHandler@framework@@QAEAAU01@ABU01@@Z
-??4Detector@framework@@QAEAAU01@ABU01@@Z
-??4FileType@framework@@QAEAAU01@ABU01@@Z
-??4Filter@framework@@QAEAAU01@ABU01@@Z
-??4Loader@framework@@QAEAAU01@ABU01@@Z
-??4StringHash@framework@@QAEAAV01@ABV01@@Z
-??4StringList@framework@@QAEAAV01@ABV01@@Z
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@0@0@Z
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@0@0@Z
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@0@0@Z
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@0@0@Z
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@0@0@Z
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@0@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@0@@Z
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@0@0@Z
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@0@0@Z
-??9rtl@@YAEABVOUString@0@0@Z
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@0@0@Z
-??A?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@7@@std@@QAEAAUContentHandler@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@7@@std@@QAEAAUDetector@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QAEAAUFileType@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@7@@std@@QAEAAUFilter@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@7@@std@@QAEAAULoader@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAEAAVOUString@rtl@@ABV23@@Z
-??A?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@7@@std@@QAEAAVStringList@framework@@ABVOUString@rtl@@@Z
-??A?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QBEABVOUString@rtl@@I@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEPAU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QBEAAU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QBEAAU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QBEAAU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QBEAAU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QBEAAU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEAAU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QBEAAU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEAAU01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEAAU01@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@@Z
-??RStringHashFunction@framework@@QBEIABVOUString@rtl@@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAE@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAJ@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABE@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABJ@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABV?$Sequence@VOUString@rtl@@@0123@@Z
-??_7FilterCFGAccess@framework@@6B@
-??_C@_0BA@DKEKOKFM@?$CF06lu?5?$CFlu?5?$HN?5?$CFs?6?$AA@
-??_C@_0BA@OMBDAJEB@?$CF06lu?5?$CFlu?5?$HL?5?$CFs?6?$AA@
-??_G?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@QAEPAXI@Z
-??_GFilterCFGAccess@framework@@UAEPAXI@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@ABU21@@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@ABU21@@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@ABU21@@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@ABU21@@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@ABU21@@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@ABU21@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@V12@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_copy_from@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@AAEXABV12@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAEAAU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAEAAU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAEAAU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAEAAU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAEAAU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEAAU?$pair@$$CBVOUString@rtl@@V12@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAEAAU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@2@ABU32@@Z
-?_M_insert_overflow@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@IAEXPAVOUString@rtl@@ABV34@ABU__false_type@2@I_N@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@ABEII@Z
-?_M_set@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@IAEXPAVOUString@rtl@@00@Z
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@XZ
-?__copy@std@@YAPAVOUString@rtl@@PAV23@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_backward@std@@YAPAVOUString@rtl@@PAV23@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_backward_ptrs@std@@YAPAVOUString@rtl@@PAV23@00ABU__false_type@1@@Z
-?__copy_ptrs@std@@YAPAVOUString@rtl@@PAV23@00ABU__false_type@1@@Z
-?__find@std@@YAPAVOUString@rtl@@PAV23@0ABV23@ABUrandom_access_iterator_tag@1@@Z
-?__uninitialized_copy@std@@YAPAVOUString@rtl@@PAV23@00ABU__false_type@1@@Z
-?__uninitialized_fill_n@std@@YAPAVOUString@rtl@@PAV23@IABV23@ABU__false_type@1@@Z
-?addContentHandler@DataContainer@framework@@QAEXABUContentHandler@2@E@Z
-?addDetector@DataContainer@framework@@QAEXABUDetector@2@E@Z
-?addFilter@DataContainer@framework@@QAEXABUFilter@2@E@Z
-?addLoader@DataContainer@framework@@QAEXABULoader@2@E@Z
-?addType@DataContainer@framework@@QAEXABUFileType@2@E@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@IPBX@Z
-?append@OUStringBuffer@rtl@@QAEAAV12@ABVOUString@2@@Z
-?append@OUStringBuffer@rtl@@QAEAAV12@G@Z
-?append@OUStringBuffer@rtl@@QAEAAV12@JF@Z
-?append@OUStringBuffer@rtl@@QAEAAV12@PBGJ@Z
-?appendAscii@OUStringBuffer@rtl@@QAEAAV12@PBD@Z
-?appendAscii@OUStringBuffer@rtl@@QAEAAV12@PBDJ@Z
-?appendChange@?$SetNodeHash@UContentHandler@framework@@@framework@@QAEXABVOUString@rtl@@W4EModifyState@2@@Z
-?appendChange@?$SetNodeHash@UDetector@framework@@@framework@@QAEXABVOUString@rtl@@W4EModifyState@2@@Z
-?appendChange@?$SetNodeHash@UFileType@framework@@@framework@@QAEXABVOUString@rtl@@W4EModifyState@2@@Z
-?appendChange@?$SetNodeHash@UFilter@framework@@@framework@@QAEXABVOUString@rtl@@W4EModifyState@2@@Z
-?appendChange@?$SetNodeHash@ULoader@framework@@@framework@@QAEXABVOUString@rtl@@W4EModifyState@2@@Z
-?begin@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?begin@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QBEPBVOUString@rtl@@XZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEIXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAEXXZ
-?convertContentHandlerToPropertySequence@DataContainer@framework@@SAXABUContentHandler@2@AAV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?convertDetectorToPropertySequence@DataContainer@framework@@SAXABUDetector@2@AAV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?convertFileTypeToPropertySequence@DataContainer@framework@@SAXABUFileType@2@AAV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?convertFilterToPropertySequence@DataContainer@framework@@SAXABUFilter@2@AAV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?convertLoaderToPropertySequence@DataContainer@framework@@SAXABULoader@2@AAV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?convertPropertySequenceToFilter@DataContainer@framework@@SAXABV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@AAUFilter@2@ABVOUString@rtl@@@Z
-?convertSequenceToStringHash@DataContainer@framework@@SAXABV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@AAVStringHash@2@@Z
-?convertStringHashToSequence@DataContainer@framework@@SAXABVStringHash@2@AAV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?convertStringSequenceToVector@DataContainer@framework@@SAXABV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@AAVStringList@2@@Z
-?convertStringVectorToSequence@DataContainer@framework@@SAXABVStringList@2@AAV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@@Z
-?correctExtensions@DataContainer@framework@@SAXAAVStringList@2@@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@I@Z
-?decode@Uri@rtl@@SA?AVOUString@2@ABV32@W4rtl_UriDecodeMechanism@@G@Z
-?decodeFilterData@FilterCFGAccess@framework@@SAXABVOUString@rtl@@AAUFilter@2@@Z
-?decodeStringList@FilterCFGAccess@framework@@SA?AVStringList@2@ABVOUString@rtl@@@Z
-?decodeTypeData@FilterCFGAccess@framework@@SAXABVOUString@rtl@@AAUFileType@2@@Z
-?encode@Uri@rtl@@SA?AVOUString@2@ABV32@W4rtl_UriCharClass@@W4rtl_UriEncodeMechanism@@G@Z
-?encodeFilterData@FilterCFGAccess@framework@@SA?AVOUString@rtl@@ABUFilter@2@@Z
-?encodeStringList@FilterCFGAccess@framework@@SA?AVOUString@rtl@@ABVStringList@2@@Z
-?encodeTypeData@FilterCFGAccess@framework@@SA?AVOUString@rtl@@ABUFileType@2@@Z
-?end@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@2@XZ
-?end@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QBEPBVOUString@rtl@@XZ
-?equalsIgnoreAsciiCaseAscii@OUString@rtl@@QBEEPBD@Z
-?erase@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@7@@std@@QAEIABVOUString@rtl@@@Z
-?erase@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@7@@std@@QAEIABVOUString@rtl@@@Z
-?erase@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QAEIABVOUString@rtl@@@Z
-?erase@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@7@@std@@QAEIABVOUString@rtl@@@Z
-?erase@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@7@@std@@QAEIABVOUString@rtl@@@Z
-?erase@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAEIABVOUString@rtl@@@Z
-?erase@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAEIABVOUString@rtl@@@Z
-?erase@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAEIABVOUString@rtl@@@Z
-?erase@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAEIABVOUString@rtl@@@Z
-?erase@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAEIABVOUString@rtl@@@Z
-?erase@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAEPAVOUString@rtl@@PAV34@@Z
-?extractLocalizedStrings@DataContainer@framework@@SAXABVOUString@rtl@@ABVAny@uno@star@sun@com@@AAVStringHash@2@@Z
-?find@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@std@@YAPAVOUString@rtl@@PAV23@0ABV23@@Z
-?free@?$SetNodeHash@UContentHandler@framework@@@framework@@QAEXXZ
-?free@?$SetNodeHash@UDetector@framework@@@framework@@QAEXXZ
-?free@?$SetNodeHash@UFileType@framework@@@framework@@QAEXXZ
-?free@?$SetNodeHash@UFilter@framework@@@framework@@QAEXXZ
-?free@?$SetNodeHash@ULoader@framework@@@framework@@QAEXXZ
-?free@DataContainer@framework@@QAEXXZ
-?free@Detector@framework@@QAEXXZ
-?free@Filter@framework@@QAEXXZ
-?free@Loader@framework@@QAEXXZ
-?free@PerformanceHash@framework@@QAEXXZ
-?free@StringHash@framework@@QAEXXZ
-?free@StringList@framework@@QAEXXZ
-?getCppuType@@YAABVType@uno@star@sun@com@@PBE@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBJ@Z
-?getLength@OUStringBuffer@rtl@@QAEJXZ
-?getLocalelizedString@DataContainer@framework@@SA?AVOUString@rtl@@ABVStringHash@2@ABV34@@Z
-?getStr@OUString@rtl@@QBEPBGXZ
-?getToken@OUString@rtl@@QBE?AV12@JGAAJ@Z
-?getValueType@Any@uno@star@sun@com@@QBAABVType@2345@XZ
-?get_allocator@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBE?AV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@XZ
-?impl_clear@ContentHandler@framework@@AAEXXZ
-?impl_clear@Detector@framework@@AAEXXZ
-?impl_clear@FileType@framework@@AAEXXZ
-?impl_clear@Filter@framework@@AAEXXZ
-?impl_clear@Loader@framework@@AAEXXZ
-?impl_copy@ContentHandler@framework@@AAEAAU12@ABU12@@Z
-?impl_copy@Detector@framework@@AAEAAU12@ABU12@@Z
-?impl_copy@FileType@framework@@AAEAAU12@ABU12@@Z
-?impl_copy@Filter@framework@@AAEAAU12@ABU12@@Z
-?impl_copy@Loader@framework@@AAEAAU12@ABU12@@Z
-?impl_initKeyCounts@FilterCFGAccess@framework@@AAEXXZ
-?impl_loadContentHandlers@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_loadDefaults@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_loadDetectors@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_loadFilters@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_loadLoaders@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_loadTypes@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_removeNodes@FilterCFGAccess@framework@@AAEXAAVStringList@2@ABVOUString@rtl@@1@Z
-?impl_resetProductName@FilterCFGAccess@framework@@AAEXAAVStringHash@2@@Z
-?impl_saveContentHandlers@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_saveDetectors@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_saveFilters@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_saveLoaders@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_saveTypes@FilterCFGAccess@framework@@AAEXAAVDataContainer@2@@Z
-?impl_setProductName@FilterCFGAccess@framework@@AAEXAAVStringHash@2@@Z
-?implcp_ctor@FilterCFGAccess@framework@@CAEABVOUString@rtl@@JF@Z
-?implcp_read@FilterCFGAccess@framework@@CAEABVDataContainer@2@@Z
-?implcp_write@FilterCFGAccess@framework@@CAEABVDataContainer@2@@Z
-?indexOf@OUString@rtl@@QBEJABV12@J@Z
-?insert@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAEPAVOUString@rtl@@PAV34@ABV34@@Z
-?makeStringAndClear@OUStringBuffer@rtl@@QAE?AVOUString@2@XZ
-?max@std@@YAABIABI0@Z
-?mergeData@DataContainer@framework@@QAEXABV12@@Z
-?packLocalizedStrings@DataContainer@framework@@SAXABVOUString@rtl@@AAVAny@uno@star@sun@com@@ABVStringHash@2@@Z
-?push_back@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAEXABVOUString@rtl@@@Z
-?push_front@StringList@framework@@QAEXABVOUString@rtl@@@Z
-?read@FilterCFGAccess@framework@@QAEXAAVDataContainer@2@@Z
-?realloc@?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@QAAXJ@Z
-?removeContentHandler@DataContainer@framework@@QAEXABVOUString@rtl@@E@Z
-?removeDetector@DataContainer@framework@@QAEXABVOUString@rtl@@E@Z
-?removeFilter@DataContainer@framework@@QAEXABVOUString@rtl@@E@Z
-?removeLoader@DataContainer@framework@@QAEXABVOUString@rtl@@E@Z
-?removeType@DataContainer@framework@@QAEXABVOUString@rtl@@E@Z
-?replaceAt@OUString@rtl@@QBE?AV12@JJABV12@@Z
-?replaceContentHandler@DataContainer@framework@@QAEXABUContentHandler@2@E@Z
-?replaceDetector@DataContainer@framework@@QAEXABUDetector@2@E@Z
-?replaceFilter@DataContainer@framework@@QAEXABUFilter@2@E@Z
-?replaceLoader@DataContainer@framework@@QAEXABULoader@2@E@Z
-?replaceType@DataContainer@framework@@QAEXABUFileType@2@E@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAEXI@Z
-?setLocalelizedString@DataContainer@framework@@SAXAAVStringHash@2@ABVOUString@rtl@@1@Z
-?size@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEIXZ
-?swap@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@7@@std@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@7@@std@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@7@@std@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@7@@std@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@6@@std@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@7@@std@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAEXAAV12@@Z
-?swap@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@std@@@std@@QAEXAAV12@@Z
-?swap@std@@YAXAAPAVOUString@rtl@@0@Z
-?swap@std@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@1@0@Z
-?swap@std@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@1@0@Z
-?swap@std@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@1@0@Z
-?swap@std@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@1@0@Z
-?swap@std@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@1@0@Z
-?swap@std@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@1@0@Z
-?swap@std@@YAXAAUStringHashFunction@framework@@0@Z
-?swap@std@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@std@@@2@@1@0@Z
-?swap@std@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@std@@@2@@1@0@Z
-?swap@std@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@std@@@2@@1@0@Z
-?swap@std@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@std@@@2@@1@0@Z
-?swap@std@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@std@@@2@@1@0@Z
-?swap@std@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@std@@@2@@1@0@Z
-?swap@std@@YAXAAV?$_STLP_alloc_proxy@PAVOUString@rtl@@V12@V?$allocator@VOUString@rtl@@@std@@@1@0@Z
-?toAsciiLowerCase@OUString@rtl@@QBE?AV12@XZ
-?write@FilterCFGAccess@framework@@QAEXAAVDataContainer@2@@Z
-??0?$Guard@VMutex@osl@@@osl@@QAE@AAVMutex@1@@Z
-??0?$Sequence@VOUString@rtl@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@1@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@@Z
-??0?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@@std@@QAE@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0@Z
-??0?$_Temporary_buffer@PAVOUString@rtl@@V12@@std@@QAE@PAVOUString@rtl@@0@Z
-??0?$_Vector_base@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@1@@Z
-??0?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@std@@QAE@XZ
-??0?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@1@@Z
-??0DataContainer@framework@@QAE@XZ
-??0ElementExistException@container@star@sun@com@@QAE@ABV01234@@Z
-??0ElementExistException@container@star@sun@com@@QAE@ABVOUString@rtl@@ABV?$Reference@VXInterface@uno@star@sun@com@@@uno@234@@Z
-??0FilterCache@framework@@QAE@JF@Z
-??0INetURLObject@@QAE@ABVString@@W4EncodeMechanism@0@G@Z
-??0NoSuchElementException@container@star@sun@com@@QAE@ABV01234@@Z
-??0NoSuchElementException@container@star@sun@com@@QAE@ABVOUString@rtl@@ABV?$Reference@VXInterface@uno@star@sun@com@@@uno@234@@Z
-??0QueryAnalyzer@framework@@QAE@ABVOUString@rtl@@@Z
-??0SubString@INetURLObject@@QAE@GG@Z
-??0TransactionBase@framework@@QAE@XZ
-??0TransactionGuard@framework@@QAE@AAVITransactionManager@1@W4EExceptionMode@1@PAW4ERejectReason@1@@Z
-??0compareByOrder@framework@@QAE@E@Z
-??0matchFlags@framework@@QAE@KE@Z
-??0notMatchDocumentService@framework@@QAE@ABV01@@Z
-??0notMatchDocumentService@framework@@QAE@ABVOUString@rtl@@@Z
-??0notMatchFirstUserData@framework@@QAE@ABV01@@Z
-??0notMatchFirstUserData@framework@@QAE@ABVOUString@rtl@@@Z
-??0sortByProp@framework@@QAE@ABV01@@Z
-??0sortByProp@framework@@QAE@ABVOUString@rtl@@W4ESortProp@QueryAnalyzer@1@EE@Z
-??1?$_STLP_alloc_proxy@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QAE@XZ
-??1?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@@std@@QAE@XZ
-??1?$_Temporary_buffer@PAVOUString@rtl@@V12@@std@@QAE@XZ
-??1?$_Vector_base@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QAE@XZ
-??1?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@std@@QAE@XZ
-??1?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QAE@XZ
-??1DataContainer@framework@@QAE@XZ
-??1ElementExistException@container@star@sun@com@@QAE@XZ
-??1FilterCache@framework@@UAE@XZ
-??1Gate@framework@@QAE@XZ
-??1INetURLObject@@QAE@XZ
-??1NoSuchElementException@container@star@sun@com@@QAE@XZ
-??1TransactionBase@framework@@QAE@XZ
-??1TransactionGuard@framework@@QAE@XZ
-??1TransactionManager@framework@@QAE@XZ
-??1notMatchDocumentService@framework@@QAE@XZ
-??1notMatchFirstUserData@framework@@QAE@XZ
-??1sortByProp@framework@@QAE@XZ
-??8std@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@0@0@Z
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@0@0@Z
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@0@0@Z
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@0@0@Z
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@0@0@Z
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@0@0@Z
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@XZ
-??E?$CheckedIterator@V?$SetNodeHash@UFileType@framework@@@framework@@@framework@@QAEAAV01@XZ
-??E?$CheckedIterator@VStringList@framework@@@framework@@QAEAAV01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAEAAU01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAEAAU01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAEAAU01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAEAAU01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAEAAU01@XZ
-??R?$less@VOUString@rtl@@@std@@QBE_NABVOUString@rtl@@0@Z
-??RcompareByOrder@framework@@QBEHABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@0@Z
-??RmatchFlags@framework@@QBE_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@Z
-??RnotMatchDocumentService@framework@@QBE_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@Z
-??RnotMatchFirstUserData@framework@@QBE_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@Z
-??RselectByOrder@framework@@QBE_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@Z
-??RselectDefault@framework@@QBE_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@Z
-??RsortByProp@framework@@QBEHABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@0@Z
-??_7FilterCache@framework@@6B@
-??_7Gate@framework@@6B@
-??_C@_04MEMAJGDJ@name?$AA@
-??_C@_06DEMCDIEK@iflags?$AA@
-??_C@_06OCFBPEE@uiname?$AA@
-??_C@_06PDGCFCDO@eflags?$AA@
-??_C@_09BFEMGNAP@use_order?$AA@
-??_C@_09NNALECKD@sort_prop?$AA@
-??_C@_0BA@MDDKOLFE@_query_graphics?$AA@
-??_C@_0BJ@GOKHGANF@_filterquery_webdocument?$AA@
-??_C@_0BK@KDAIAEFG@_filterquery_textdocument?$AA@
-??_C@_0BL@BLLAGCNF@_filterquery_chartdocument?$AA@
-??_C@_0BM@NMBIEBHE@_filterquery_globaldocument?$AA@
-??_C@_0BN@IDGLFONN@_filterquery_drawingdocument?$AA@
-??_C@_0BP@BKGANPED@_filterquery_formulaproperties?$AA@
-??_C@_0CB@NNIKNGKF@_filterquery_spreadsheetdocument@
-??_C@_0CC@KJHCABCH@_filterquery_presentationdocumen@
-??_C@_0CF@KHOJBKCH@_filterquery_webdocument_withdef@
-??_C@_0CG@CMEPDIDO@_query_web?3use_order?3sort_prop?$DNu@
-??_C@_0CG@EBGGPHMO@_filterquery_textdocument_withde@
-??_C@_0CH@CELNGDK@_query_math?3use_order?3sort_prop?$DN@
-??_C@_0CH@IAMDLPON@_filterquery_chartdocument_withd@
-??_C@_0CH@IKKOEBJH@_query_draw?3use_order?3sort_prop?$DN@
-??_C@_0CH@OLFOHJJM@_query_calc?3use_order?3sort_prop?$DN@
-??_C@_0CI@BKMHIKOI@_filterquery_globaldocument_with@
-??_C@_0CI@FNJCEOPO@_query_chart?3use_order?3sort_prop@
-??_C@_0CJ@HCADIEFA@_filterquery_drawingdocument_wit@
-??_C@_0CJ@HKGANDLG@_query_global?3use_order?3sort_pro@
-??_C@_0CJ@JFEANGID@_query_writer?3use_order?3sort_pro@
-??_C@_0CK@KEEGOPLC@_query_impress?3use_order?3sort_pr@
-??_C@_0CL@NPFEDAJP@_filterquery_formulaproperties_w@
-??_C@_0CN@PPNHFLCL@_filterquery_spreadsheetdocument@
-??_C@_0CO@PLJLAJNI@_filterquery_presentationdocumen@
-??_C@_0DE@BKBMGPPI@_query_web?3default_first?3use_ord@
-??_C@_0DF@IACDIMLE@_query_math?3default_first?3use_or@
-??_C@_0DF@MKFBOMCB@_query_calc?3default_first?3use_or@
-??_C@_0DF@NMEEOGC@_query_draw?3default_first?3use_or@
-??_C@_0DG@DPHIGNID@_query_chart?3default_first?3use_o@
-??_C@_0DH@BJMIINCI@_query_global?3default_first?3use_@
-??_C@_0DH@IHGOJIHL@_query_writer?3default_first?3use_@
-??_C@_0DI@DHICOLEC@_query_impress?3default_first?3use@
-??_C@_0L@EGCMPMMI@_query_web?$AA@
-??_C@_0L@HNOIEDPD@descending?$AA@
-??_C@_0L@KCAMOCIK@_query_all?$AA@
-??_C@_0M@BNEPLFGC@_query_draw?$AA@
-??_C@_0M@IFEEEAGH@_query_math?$AA@
-??_C@_0M@MLLFNFAF@_query_calc?$AA@
-??_C@_0N@NJGMIOED@_query_chart?$AA@
-??_C@_0O@DPDBKOJI@default_first?$AA@
-??_C@_0O@EJLBKDG@_query_Writer?$AA@
-??_C@_0O@LMFOLGGP@_query_global?$AA@
-??_C@_0P@GACGEFBK@_query_impress?$AA@
-??_C@_0P@ICODGDG@case_sensitive?$AA@
-??_GDataContainer@framework@@QAEPAXI@Z
-??_GFilterCache@framework@@UAEPAXI@Z
-??_R0?AVElementExistException@container@star@sun@com@@@8
-??_R0?AVNoSuchElementException@container@star@sun@com@@@8
-?GetBuffer@String@@QBEPBGXZ
-?GetMainURL@INetURLObject@@QBE?AVString@@W4DecodeMechanism@1@G@Z
-?GetParam@INetURLObject@@QBE?AVString@@W4DecodeMechanism@1@G@Z
-?SetParam@INetURLObject@@QAE_NABVString@@W4EncodeMechanism@1@G@Z
-?_Construct@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@ABU21@@Z
-?_Destroy@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0@Z
-?_Destroy@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@@Z
-?_IsOKToMemCpy@std@@YA?AU?$_OKToMemCpy@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@@1@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0@Z
-?_IsOKToMemCpy@std@@YA?AU?$_OKToMemCpy@VOUString@rtl@@V12@@1@PAVOUString@rtl@@0@Z
-?_Is_POD@std@@YA?AU?$_IsPOD@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@1@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@@Z
-?_Is_POD@std@@YA?AU?$_IsPOD@VOUString@rtl@@@1@PAVOUString@rtl@@@Z
-?_M_allocate_buffer@?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@@std@@AAEXXZ
-?_M_allocate_buffer@?$_Temporary_buffer@PAVOUString@rtl@@V12@@std@@AAEXXZ
-?_M_clear@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@IAEXXZ
-?_M_initialize_buffer@?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@@std@@AAEXABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@ABU__false_type@2@@Z
-?_M_initialize_buffer@?$_Temporary_buffer@PAVOUString@rtl@@V12@@std@@AAEXABVOUString@rtl@@ABU__false_type@2@@Z
-?_M_insert_overflow@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@IAEXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@ABU32@ABU__false_type@2@I_N@Z
-?_M_set@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@IAEXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@00@Z
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@XZ
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@XZ
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@XZ
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@XZ
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@XZ
-?_Ret@?$_BothPtrType@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@PAU12@@std@@SA?AU__true_type@2@XZ
-?_Ret@?$_BothPtrType@PAVOUString@rtl@@PAV12@@std@@SA?AU__true_type@2@XZ
-?_Ret@?$_IsPOD@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@std@@SA?AU__false_type@2@XZ
-?_Ret@?$_IsPOD@VOUString@rtl@@@std@@SA?AU__false_type@2@XZ
-?_Ret@?$_OKToMemCpy@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@@std@@SA?AU__false_type@2@XZ
-?_Ret@?$_OKToMemCpy@VOUString@rtl@@V12@@std@@SA?AU__false_type@2@XZ
-?__advance@std@@YAXAAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@HABUrandom_access_iterator_tag@1@@Z
-?__advance@std@@YAXAAPAVOUString@rtl@@HABUrandom_access_iterator_tag@1@@Z
-?__chunk_insertion_sort@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0HVcompareByOrder@framework@@@Z
-?__chunk_insertion_sort@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0HVsortByProp@framework@@@Z
-?__chunk_insertion_sort@std@@YAXPAVOUString@rtl@@0HU?$less@VOUString@rtl@@@1@@Z
-?__copy@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_aux@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00ABU__true_type@1@@Z
-?__copy_aux@std@@YAPAVOUString@rtl@@PAV23@00ABU__true_type@1@@Z
-?__copy_backward@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_backward_aux@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00ABU__true_type@1@@Z
-?__copy_backward_aux@std@@YAPAVOUString@rtl@@PAV23@00ABU__true_type@1@@Z
-?__copy_backward_ptrs@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00ABU__false_type@1@@Z
-?__copy_ptrs@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00ABU__false_type@1@@Z
-?__destroy@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00@Z
-?__destroy_aux@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0ABU__false_type@1@@Z
-?__distance@std@@YAHABQAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0ABUrandom_access_iterator_tag@1@@Z
-?__distance@std@@YAHABQAVOUString@rtl@@0ABUrandom_access_iterator_tag@1@@Z
-?__find_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VmatchFlags@framework@@ABUrandom_access_iterator_tag@1@@Z
-?__find_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VnotMatchDocumentService@framework@@ABUrandom_access_iterator_tag@1@@Z
-?__find_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VnotMatchFirstUserData@framework@@ABUrandom_access_iterator_tag@1@@Z
-?__gcd@std@@YAHHH@Z
-?__inplace_stable_partition@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VselectByOrder@framework@@H@Z
-?__inplace_stable_partition@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VselectDefault@framework@@H@Z
-?__inplace_stable_sort@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0VcompareByOrder@framework@@@Z
-?__inplace_stable_sort@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0VsortByProp@framework@@@Z
-?__inplace_stable_sort@std@@YAXPAVOUString@rtl@@0U?$less@VOUString@rtl@@@1@@Z
-?__insertion_sort@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0VcompareByOrder@framework@@@Z
-?__insertion_sort@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0VsortByProp@framework@@@Z
-?__insertion_sort@std@@YAXPAVOUString@rtl@@0U?$less@VOUString@rtl@@@1@@Z
-?__less@std@@YA?AU?$less@VOUString@rtl@@@1@PAVOUString@rtl@@@Z
-?__linear_insert@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0U21@VcompareByOrder@framework@@@Z
-?__linear_insert@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0U21@VsortByProp@framework@@@Z
-?__linear_insert@std@@YAXPAVOUString@rtl@@0V23@U?$less@VOUString@rtl@@@1@@Z
-?__lower_bound@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0ABU21@VcompareByOrder@framework@@PAH@Z
-?__lower_bound@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0ABU21@VsortByProp@framework@@PAH@Z
-?__lower_bound@std@@YAPAVOUString@rtl@@PAV23@0ABV23@U?$less@VOUString@rtl@@@1@PAH@Z
-?__merge_adaptive@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00HH0HVcompareByOrder@framework@@@Z
-?__merge_adaptive@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00HH0HVsortByProp@framework@@@Z
-?__merge_adaptive@std@@YAXPAVOUString@rtl@@00HH0HU?$less@VOUString@rtl@@@1@@Z
-?__merge_backward@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0000VcompareByOrder@framework@@@Z
-?__merge_backward@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0000VsortByProp@framework@@@Z
-?__merge_backward@std@@YAPAVOUString@rtl@@PAV23@0000U?$less@VOUString@rtl@@@1@@Z
-?__merge_sort_loop@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00HVcompareByOrder@framework@@@Z
-?__merge_sort_loop@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00HVsortByProp@framework@@@Z
-?__merge_sort_loop@std@@YAXPAVOUString@rtl@@00HU?$less@VOUString@rtl@@@1@@Z
-?__merge_sort_with_buffer@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00PAHVcompareByOrder@framework@@@Z
-?__merge_sort_with_buffer@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00PAHVsortByProp@framework@@@Z
-?__merge_sort_with_buffer@std@@YAXPAVOUString@rtl@@00PAHU?$less@VOUString@rtl@@@1@@Z
-?__merge_without_buffer@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00HHVcompareByOrder@framework@@@Z
-?__merge_without_buffer@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00HHVsortByProp@framework@@@Z
-?__merge_without_buffer@std@@YAXPAVOUString@rtl@@00HHU?$less@VOUString@rtl@@@1@@Z
-?__rotate@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00PAH0@Z
-?__rotate@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00PAHABUrandom_access_iterator_tag@1@@Z
-?__rotate@std@@YAPAVOUString@rtl@@PAV23@00PAH0@Z
-?__rotate@std@@YAPAVOUString@rtl@@PAV23@00PAHABUrandom_access_iterator_tag@1@@Z
-?__rotate_adaptive@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00HH0H@Z
-?__rotate_adaptive@std@@YAPAVOUString@rtl@@PAV23@00HH0H@Z
-?__stable_partition_adaptive@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VselectByOrder@framework@@H0H@Z
-?__stable_partition_adaptive@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VselectDefault@framework@@H0H@Z
-?__stable_partition_aux@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VselectByOrder@framework@@0PAH@Z
-?__stable_partition_aux@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VselectDefault@framework@@0PAH@Z
-?__stable_sort_adaptive@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00HVcompareByOrder@framework@@@Z
-?__stable_sort_adaptive@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00HVsortByProp@framework@@@Z
-?__stable_sort_adaptive@std@@YAXPAVOUString@rtl@@00HU?$less@VOUString@rtl@@@1@@Z
-?__stable_sort_aux@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00PAHVcompareByOrder@framework@@@Z
-?__stable_sort_aux@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@00PAHVsortByProp@framework@@@Z
-?__stable_sort_aux@std@@YAXPAVOUString@rtl@@00PAHU?$less@VOUString@rtl@@@1@@Z
-?__unguarded_linear_insert@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@U21@VcompareByOrder@framework@@@Z
-?__unguarded_linear_insert@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@U21@VsortByProp@framework@@@Z
-?__unguarded_linear_insert@std@@YAXPAVOUString@rtl@@V23@U?$less@VOUString@rtl@@@1@@Z
-?__uninitialized_copy@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00ABU__false_type@1@@Z
-?__uninitialized_fill_n@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@HABU21@ABU__false_type@1@@Z
-?__uninitialized_fill_n@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@IABU21@ABU__false_type@1@@Z
-?__uninitialized_fill_n@std@@YAPAVOUString@rtl@@PAV23@HABV23@ABU__false_type@1@@Z
-?__upper_bound@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0ABU21@VcompareByOrder@framework@@PAH@Z
-?__upper_bound@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0ABU21@VsortByProp@framework@@PAH@Z
-?__upper_bound@std@@YAPAVOUString@rtl@@PAV23@0ABV23@U?$less@VOUString@rtl@@@1@PAH@Z
-?addFilter@FilterCache@framework@@QAEXABVOUString@rtl@@ABV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?advance@std@@YAXAAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@H@Z
-?advance@std@@YAXAAPAVOUString@rtl@@H@Z
-?allocate@?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@std@@QBEPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@IPBX@Z
-?begin@?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@@std@@QAEPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@XZ
-?begin@?$_Temporary_buffer@PAVOUString@rtl@@V12@@std@@QAEPAVOUString@rtl@@XZ
-?begin@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@2@XZ
-?begin@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QAEPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@XZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QBEIXZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QBEIXZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QBEIXZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QBEIXZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QBEIXZ
-?check@Condition@osl@@QAEEXZ
-?close@Gate@framework@@UAEXXZ
-?copy@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00@Z
-?copy@std@@YAPAVOUString@rtl@@PAV23@00@Z
-?copy_backward@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00@Z
-?copy_backward@std@@YAPAVOUString@rtl@@PAV23@00@Z
-?deallocate@?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@std@@QBEXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@I@Z
-?decode@INetURLObject@@ABE?AVString@@ABVSubString@1@DW4DecodeMechanism@1@G@Z
-?decode@INetURLObject@@SA?AVString@@ABV2@DW4DecodeMechanism@1@G@Z
-?distance@std@@YAHABQAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0@Z
-?distance@std@@YAHABQAVOUString@rtl@@0@Z
-?distance_type@std@@YAPAHPBU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@@Z
-?end@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@2@XZ
-?end@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QAEPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@XZ
-?equalsIgnoreAsciiCase@OUString@rtl@@QBEEABV12@@Z
-?erase@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QAEPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@PAU32@0@Z
-?existsContentHandler@FilterCache@framework@@QBEEABVOUString@rtl@@@Z
-?existsDetector@FilterCache@framework@@QBEEABVOUString@rtl@@@Z
-?existsFilter@FilterCache@framework@@QBEEABVOUString@rtl@@@Z
-?existsLoader@FilterCache@framework@@QBEEABVOUString@rtl@@@Z
-?existsType@FilterCache@framework@@QBEEABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@7@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VmatchFlags@framework@@@Z
-?find_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VnotMatchDocumentService@framework@@@Z
-?find_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VnotMatchFirstUserData@framework@@@Z
-?flush@FilterCache@framework@@QAEXXZ
-?getAllContentHandlerNames@FilterCache@framework@@QBE?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getAllDetectorNames@FilterCache@framework@@QBE?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getAllDetectorNamesWithDefault@FilterCache@framework@@QBE?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getAllFilterNames@FilterCache@framework@@QBE?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getAllLoaderNames@FilterCache@framework@@QBE?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getAllLoaderNamesWithDefault@FilterCache@framework@@QBE?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getAllTypeNames@FilterCache@framework@@QBE?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getBegin@SubString@INetURLObject@@QBEGXZ
-?getCaseSensitive@QueryAnalyzer@framework@@QAE?BEXZ
-?getContentHandler@FilterCache@framework@@QBE?AUContentHandler@2@ABVOUString@rtl@@@Z
-?getContentHandlerProperties@FilterCache@framework@@QBE?AV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?getDefaultDetector@FilterCache@framework@@QBE?AVOUString@rtl@@XZ
-?getDefaultFirst@QueryAnalyzer@framework@@QAE?BEXZ
-?getDefaultLoader@FilterCache@framework@@QBE?AVOUString@rtl@@XZ
-?getDescending@QueryAnalyzer@framework@@QAE?BEXZ
-?getDetector@FilterCache@framework@@QBE?AUDetector@2@ABVOUString@rtl@@@Z
-?getDetectorProperties@FilterCache@framework@@QBE?AV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?getEFlags@QueryAnalyzer@framework@@QAE?BKXZ
-?getEnd@SubString@INetURLObject@@QBEGXZ
-?getEntry@?$CheckedIterator@V?$SetNodeHash@UFileType@framework@@@framework@@@framework@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@XZ
-?getEntry@?$CheckedIterator@VStringList@framework@@@framework@@QAEPBVOUString@rtl@@XZ
-?getEscapePrefix@INetURLObject@@ABEDXZ
-?getEscapePrefix@INetURLObject@@CADW4INetProtocol@@@Z
-?getFilter@FilterCache@framework@@QBE?AUFilter@2@ABVOUString@rtl@@@Z
-?getFilterProperties@FilterCache@framework@@QBE?AV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?getIFlags@QueryAnalyzer@framework@@QAE?BKXZ
-?getLoader@FilterCache@framework@@QBE?AULoader@2@ABVOUString@rtl@@@Z
-?getLoaderProperties@FilterCache@framework@@QBE?AV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?getName@Logfile@rtl@@QAEPBDXZ
-?getQueryType@QueryAnalyzer@framework@@QAE?AW4EQuery@12@XZ
-?getSortProp@QueryAnalyzer@framework@@QAE?BW4ESortProp@12@XZ
-?getStr@OString@rtl@@QBEPBDXZ
-?getType@FilterCache@framework@@QBE?AUFileType@2@ABVOUString@rtl@@@Z
-?getTypeProperties@FilterCache@framework@@QBE?AV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?getUseOrder@QueryAnalyzer@framework@@QAE?BEXZ
-?hasContentHandlers@FilterCache@framework@@QBEEXZ
-?hasDetectors@FilterCache@framework@@QBEEXZ
-?hasFilters@FilterCache@framework@@QBEEXZ
-?hasLoaders@FilterCache@framework@@QBEEXZ
-?hasTypes@FilterCache@framework@@QBEEXZ
-?initialize@?$CheckedIterator@V?$SetNodeHash@UFileType@framework@@@framework@@@framework@@QAEXABV?$SetNodeHash@UFileType@framework@@@2@@Z
-?initialize@?$CheckedIterator@VStringList@framework@@@framework@@QAEXABVStringList@2@@Z
-?isAfterEnd@?$CheckedIterator@VStringList@framework@@@framework@@QAEEXZ
-?isEnd@?$CheckedIterator@V?$SetNodeHash@UFileType@framework@@@framework@@@framework@@QAEEXZ
-?isEnd@?$CheckedIterator@VStringList@framework@@@framework@@QAEEXZ
-?isPresent@SubString@INetURLObject@@QBE_NXZ
-?isUninitialized@?$CheckedIterator@V?$SetNodeHash@UFileType@framework@@@framework@@@framework@@QAEEXZ
-?isUninitialized@?$CheckedIterator@VStringList@framework@@@framework@@QAEEXZ
-?isValid@FilterCache@framework@@QBEEXZ
-?iter_swap@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0@Z
-?iter_swap@std@@YAXPAVOUString@rtl@@0@Z
-?iterator_category@std@@YA?AUrandom_access_iterator_tag@1@PBU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@@Z
-?lower_bound@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0ABU21@VcompareByOrder@framework@@@Z
-?lower_bound@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0ABU21@VsortByProp@framework@@@Z
-?lower_bound@std@@YAPAVOUString@rtl@@PAV23@0ABV23@U?$less@VOUString@rtl@@@1@@Z
-?m_nMode@FilterCache@framework@@0FA
-?m_nRefCount@FilterCache@framework@@0JA
-?m_nVersion@FilterCache@framework@@0JA
-?m_pData@FilterCache@framework@@0PAVDataContainer@2@A
-?merge@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0000VcompareByOrder@framework@@@Z
-?merge@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0000VsortByProp@framework@@@Z
-?merge@std@@YAPAVOUString@rtl@@PAV23@0000U?$less@VOUString@rtl@@@1@@Z
-?min@std@@YAABHABH0@Z
-?open@Gate@framework@@UAEXXZ
-?openGap@Gate@framework@@UAEXXZ
-?push_back@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QAEXABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@2@@Z
-?queryFilters@FilterCache@framework@@QBE?AVAny@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?removeFilter@FilterCache@framework@@QAEXABVOUString@rtl@@@Z
-?remove_copy_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00VmatchFlags@framework@@@Z
-?remove_copy_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00VnotMatchDocumentService@framework@@@Z
-?remove_copy_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00VnotMatchFirstUserData@framework@@@Z
-?remove_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VmatchFlags@framework@@@Z
-?remove_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VnotMatchDocumentService@framework@@@Z
-?remove_if@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VnotMatchFirstUserData@framework@@@Z
-?replaceFilter@FilterCache@framework@@QAEXABVOUString@rtl@@ABV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?requested_size@?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@@std@@QBEHXZ
-?rotate@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00@Z
-?rotate@std@@YAPAVOUString@rtl@@PAV23@00@Z
-?searchContentHandlerForType@FilterCache@framework@@QBEEABVOUString@rtl@@AAV?$CheckedIterator@VStringList@framework@@@2@AAV34@@Z
-?searchDetectorForType@FilterCache@framework@@QBEEABVOUString@rtl@@AAV?$CheckedIterator@VStringList@framework@@@2@AAV34@@Z
-?searchFilterForType@FilterCache@framework@@QBEEABVOUString@rtl@@AAV?$CheckedIterator@VStringList@framework@@@2@AAV34@@Z
-?searchLoaderForType@FilterCache@framework@@QBEEABVOUString@rtl@@AAV?$CheckedIterator@VStringList@framework@@@2@AAV34@@Z
-?searchType@FilterCache@framework@@QBEEABVOUString@rtl@@PBV34@1AAV?$CheckedIterator@V?$SetNodeHash@UFileType@framework@@@framework@@@2@AAV34@@Z
-?setAfterEnd@?$CheckedIterator@VStringList@framework@@@framework@@QAEXXZ
-?setEnd@?$CheckedIterator@VStringList@framework@@@framework@@QAEXXZ
-?size@?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@U12@@std@@QBEHXZ
-?size@?$_Temporary_buffer@PAVOUString@rtl@@V12@@std@@QBEHXZ
-?size@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@7@@std@@QBEIXZ
-?size@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@7@@std@@QBEIXZ
-?size@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@7@@std@@QBEIXZ
-?size@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@7@@std@@QBEIXZ
-?size@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@7@@std@@QBEIXZ
-?size@?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@7@@std@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@std@@@2@@std@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@std@@@2@@std@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@std@@@2@@std@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@std@@@2@@std@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@std@@@2@@std@@QBEIXZ
-?size@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@std@@@2@@std@@QBEIXZ
-?stable_partition@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VselectByOrder@framework@@@Z
-?stable_partition@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0VselectDefault@framework@@@Z
-?stable_sort@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0VcompareByOrder@framework@@@Z
-?stable_sort@std@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0VsortByProp@framework@@@Z
-?stable_sort@std@@YAXPAVOUString@rtl@@0@Z
-?stop@TransactionGuard@framework@@QAEXXZ
-?swap@std@@YAXAAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@0@Z
-?swap@std@@YAXAAVOUString@rtl@@0@Z
-?swap_ranges@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@00@Z
-?swap_ranges@std@@YAPAVOUString@rtl@@PAV23@00@Z
-?uninitialized_fill_n@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@HABU21@@Z
-?uninitialized_fill_n@std@@YAPAVOUString@rtl@@PAV23@HABV23@@Z
-?upper_bound@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0ABU21@VcompareByOrder@framework@@@Z
-?upper_bound@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PAU21@0ABU21@VsortByProp@framework@@@Z
-?upper_bound@std@@YAPAVOUString@rtl@@PAV23@0ABV23@U?$less@VOUString@rtl@@@1@@Z
-?value_type@std@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@std@@@2@@1@PBU21@@Z
-?wait@Gate@framework@@UAEEPBUTimeValue@@@Z
-__CT??_R0?AVElementExistException@container@star@sun@com@@@8??0ElementExistException@container@star@sun@com@@QAE@ABV01234@@Z8
-__CT??_R0?AVNoSuchElementException@container@star@sun@com@@@8??0NoSuchElementException@container@star@sun@com@@QAE@ABV01234@@Z8
-__CTA2?AVElementExistException@container@star@sun@com@@
-__CTA2?AVNoSuchElementException@container@star@sun@com@@
-??0?$ClearableGuard@VMutex@osl@@@osl@@QAE@AAVMutex@1@@Z
-??0DisposedException@lang@star@sun@com@@QAE@ABV01234@@Z
-??0DisposedException@lang@star@sun@com@@QAE@ABVOUString@rtl@@ABV?$Reference@VXInterface@uno@star@sun@com@@@uno@234@@Z
-??0Gate@framework@@QAE@XZ
-??0IGate@framework@@QAE@XZ
-??0ITransactionManager@framework@@QAE@XZ
-??0RuntimeException@uno@star@sun@com@@QAE@ABV01234@@Z
-??0RuntimeException@uno@star@sun@com@@QAE@ABVOUString@rtl@@ABV?$Reference@VXInterface@uno@star@sun@com@@@1234@@Z
-??0TransactionManager@framework@@QAE@XZ
-??1?$ClearableGuard@VMutex@osl@@@osl@@QAE@XZ
-??1DisposedException@lang@star@sun@com@@QAE@XZ
-??1RuntimeException@uno@star@sun@com@@QAE@XZ
-??_7IGate@framework@@6B@
-??_7ITransactionManager@framework@@6B@
-??_7TransactionManager@framework@@6B@
-??_R0?AVDisposedException@lang@star@sun@com@@@8
-?clear@?$ClearableGuard@VMutex@osl@@@osl@@QAEXXZ
-?getGlobalTransactionManager@TransactionManager@framework@@SAAAV12@XZ
-?getWorkingMode@TransactionManager@framework@@UBE?AW4EWorkingMode@2@XZ
-?impl_throwExceptions@TransactionManager@framework@@ABEXW4EExceptionMode@2@W4ERejectReason@2@@Z
-?isCallRejected@TransactionManager@framework@@UBEEAAW4ERejectReason@2@@Z
-?registerTransaction@TransactionManager@framework@@UAEXW4EExceptionMode@2@AAW4ERejectReason@2@@Z
-?setWorkingMode@TransactionManager@framework@@UAEXW4EWorkingMode@2@@Z
-?unregisterTransaction@TransactionManager@framework@@UAEXXZ
-__CT??_R0?AVDisposedException@lang@star@sun@com@@@8??0DisposedException@lang@star@sun@com@@QAE@ABV01234@@Z8
-__CT??_R0?AVRuntimeException@uno@star@sun@com@@@8??0RuntimeException@uno@star@sun@com@@QAE@ABV01234@@Z8
-__CTA3?AVDisposedException@lang@star@sun@com@@
-??0?$Sequence@VAny@uno@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0Date@@QAE@ABV0@@Z
-??0Date@@QAE@GGG@Z
-??0DateTime@@QAE@ABV0@@Z
-??0DateTime@@QAE@ABVDate@@ABVTime@@@Z
-??0DateTime@@QAE@XZ
-??0Time@@QAE@ABV0@@Z
-??4Date@@QAEAAV0@ABV0@@Z
-??4DateTime@@QAEAAV0@ABV0@@Z
-??4Time@@QAEAAV0@ABV0@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAUPropertyValue@beans@123@@Z
-?GetDay@Date@@QBEGXZ
-?GetHour@Time@@QBEGXZ
-?GetMin@Time@@QBEGXZ
-?GetMonth@Date@@QBEGXZ
-?GetSec@Time@@QBEGXZ
-?GetYear@Date@@QBEGXZ
-?convert_DateTime2String@Converter@framework@@SA?AVOUString@rtl@@ABVDateTime@@@Z
-?convert_String2DateTime@Converter@framework@@SA?AVDateTime@@ABVOUString@rtl@@@Z
-?convert_seqAny2seqProp@Converter@framework@@SA?AV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@ABV?$Sequence@VAny@uno@star@sun@com@@@4567@@Z
-?convert_seqOUString2OUStringList@Converter@framework@@SA?AVOUStringList@2@ABV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@@Z
-?convert_seqProp2seqAny@Converter@framework@@SA?AV?$Sequence@VAny@uno@star@sun@com@@@uno@star@sun@com@@ABV?$Sequence@UPropertyValue@beans@star@sun@com@@@4567@@Z
-?getLength@?$Sequence@VAny@uno@star@sun@com@@@uno@star@sun@com@@QBAJXZ
-??0ArgumentAnalyzer@framework@@QAE@ABV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@E@Z
-??0ArgumentAnalyzer@framework@@QAE@XZ
-??0ArgumentReferences@framework@@QAE@XZ
-??1ArgumentAnalyzer@framework@@QAE@XZ
-??1ArgumentReferences@framework@@QAE@XZ
-??4?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@QAAAAV01234@ABV01234@@Z
-??4PropertyValue@beans@star@sun@com@@QAEAAU01234@ABU01234@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAF@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAURectangle@awt@123@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Reference@VXInputStream@io@star@sun@com@@@0123@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Reference@VXInteractionHandler@task@star@sun@com@@@0123@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Reference@VXOutputStream@io@star@sun@com@@@0123@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Reference@VXStatusIndicator@task@star@sun@com@@@0123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABF@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABURectangle@awt@123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABV?$Reference@VXInputStream@io@star@sun@com@@@0123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABV?$Reference@VXInteractionHandler@task@star@sun@com@@@0123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABV?$Reference@VXOutputStream@io@star@sun@com@@@0123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABV?$Reference@VXStatusIndicator@task@star@sun@com@@@0123@@Z
-??_7ArgumentAnalyzer@framework@@6B@
-??_C@_0BL@KEBNNIH@com?4sun?4star?4awt?4Rectangle?$AA@
-??_C@_0CD@JHCNPMJG@com?4sun?4star?4task?4XStatusIndicat@
-??_C@_0CG@GMFJHBBD@com?4sun?4star?4task?4XInteractionHa@
-?GetHost@INetURLObject@@QBE?AVString@@W4DecodeMechanism@1@G@Z
-?GetMark@INetURLObject@@QBE?AVString@@W4DecodeMechanism@1@G@Z
-?GetPass@INetURLObject@@QBE?AVString@@W4DecodeMechanism@1@G@Z
-?GetProtocol@INetURLObject@@QBE?AW4INetProtocol@@XZ
-?GetURLPath@INetURLObject@@QBE?AVString@@W4DecodeMechanism@1@G@Z
-?GetUser@INetURLObject@@QBE?AVString@@W4DecodeMechanism@1@G@Z
-?HasMark@INetURLObject@@QBE_NXZ
-?SetMark@INetURLObject@@QAE_NABVString@@W4EncodeMechanism@1@G@Z
-?deleteAll@ArgumentAnalyzer@framework@@UAEXXZ
-?deleteArgument@ArgumentAnalyzer@framework@@UAEXW4EArgument@2@@Z
-?existArgument@ArgumentAnalyzer@framework@@UBEEW4EArgument@2@@Z
-?forgetIt@ArgumentReferences@framework@@QAEXXZ
-?getArgument@ArgumentAnalyzer@framework@@QAEEW4EArgument@2@AAE@Z
-?getArgument@ArgumentAnalyzer@framework@@QAEEW4EArgument@2@AAF@Z
-?getArgument@ArgumentAnalyzer@framework@@QAEEW4EArgument@2@AAJ@Z
-?getArgument@ArgumentAnalyzer@framework@@QAEEW4EArgument@2@AAURectangle@awt@star@sun@com@@@Z
-?getArgument@ArgumentAnalyzer@framework@@QAEEW4EArgument@2@AAUURL@util@star@sun@com@@@Z
-?getArgument@ArgumentAnalyzer@framework@@QAEEW4EArgument@2@AAV?$Reference@VXInputStream@io@star@sun@com@@@uno@star@sun@com@@@Z
-?getArgument@ArgumentAnalyzer@framework@@QAEEW4EArgument@2@AAV?$Reference@VXInteractionHandler@task@star@sun@com@@@uno@star@sun@com@@@Z
-?getArgument@ArgumentAnalyzer@framework@@QAEEW4EArgument@2@AAV?$Reference@VXOutputStream@io@star@sun@com@@@uno@star@sun@com@@@Z
-?getArgument@ArgumentAnalyzer@framework@@QAEEW4EArgument@2@AAV?$Reference@VXStatusIndicator@task@star@sun@com@@@uno@star@sun@com@@@Z
-?getArgument@ArgumentAnalyzer@framework@@QAEEW4EArgument@2@AAVOUString@rtl@@@Z
-?getArgumentsAndReset@ArgumentAnalyzer@framework@@UAE?AV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?getArgumentsConst@ArgumentAnalyzer@framework@@UBEABV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?getConstArray@?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@QBAPBUPropertyValue@beans@345@XZ
-?getCppuType@@YAABVType@uno@star@sun@com@@PBF@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBURectangle@awt@345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInteractionHandler@task@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXStatusIndicator@task@star@sun@com@@@2345@@Z
-?getLastReference@ArgumentReferences@framework@@QAEPAJXZ
-?impl_addOrChangeArgument@ArgumentAnalyzer@framework@@AAEXPAJABVOUString@rtl@@ABVAny@uno@star@sun@com@@@Z
-?impl_analyzeIt@ArgumentAnalyzer@framework@@AAEXXZ
-?impl_correctOldFormat@ArgumentAnalyzer@framework@@AAEXXZ
-?impl_deleteArgument@ArgumentAnalyzer@framework@@AAEXPAJ0@Z
-?impl_getArgument@ArgumentAnalyzer@framework@@ABEEW4EArgument@2@PAX@Z
-?impl_setArgument@ArgumentAnalyzer@framework@@AAEXW4EArgument@2@PBX@Z
-?isStillRequest@ArgumentAnalyzer@framework@@UBEEXZ
-?isValid@ArgumentAnalyzer@framework@@UBEEXZ
-?s_pType_com_sun_star_awt_Rectangle@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBURectangle@awt@456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_task_XInteractionHandler@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInteractionHandler@task@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_task_XStatusIndicator@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXStatusIndicator@task@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?setArgument@ArgumentAnalyzer@framework@@QAEXW4EArgument@2@ABURectangle@awt@star@sun@com@@@Z
-?setArgument@ArgumentAnalyzer@framework@@QAEXW4EArgument@2@ABUURL@util@star@sun@com@@@Z
-?setArgument@ArgumentAnalyzer@framework@@QAEXW4EArgument@2@ABV?$Reference@VXInputStream@io@star@sun@com@@@uno@star@sun@com@@@Z
-?setArgument@ArgumentAnalyzer@framework@@QAEXW4EArgument@2@ABV?$Reference@VXInteractionHandler@task@star@sun@com@@@uno@star@sun@com@@@Z
-?setArgument@ArgumentAnalyzer@framework@@QAEXW4EArgument@2@ABV?$Reference@VXOutputStream@io@star@sun@com@@@uno@star@sun@com@@@Z
-?setArgument@ArgumentAnalyzer@framework@@QAEXW4EArgument@2@ABV?$Reference@VXStatusIndicator@task@star@sun@com@@@uno@star@sun@com@@@Z
-?setArgument@ArgumentAnalyzer@framework@@QAEXW4EArgument@2@ABVOUString@rtl@@@Z
-?setArgument@ArgumentAnalyzer@framework@@QAEXW4EArgument@2@E@Z
-?setArgument@ArgumentAnalyzer@framework@@QAEXW4EArgument@2@F@Z
-?setArgument@ArgumentAnalyzer@framework@@QAEXW4EArgument@2@J@Z
-?setArguments@ArgumentAnalyzer@framework@@UAEXABV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@E@Z
-??0OUStringBuffer@rtl@@QAE@VOUString@1@@Z
-??0Wildcard@framework@@QAE@XZ
-??1Wildcard@framework@@UAE@XZ
-??_7Wildcard@framework@@6B@
-??_GWildcard@framework@@UAEPAXI@Z
-?charAt@OUStringBuffer@rtl@@QAEGJ@Z
-?match@Wildcard@framework@@SAEABVOUString@rtl@@0@Z
-??0FwkResId@framework@@QAE@G@Z
-??0OGuard@vos@@QAE@AAVIMutex@1@@Z
-??0OString@rtl@@QAE@PBGJGK@Z
-??0ResId@@QAE@GPAVResMgr@@@Z
-??1OGuard@vos@@UAE@XZ
-??BOString@rtl@@QBEPBDXZ
-??_7OGuard@vos@@6B@
-??_GOGuard@vos@@UAEPAXI@Z
-?GetResManager@FwkResId@framework@@SAPAVResMgr@@XZ
-?OUStringToOString@rtl@@YA?AVOString@1@ABVOUString@1@GK@Z
-??0?$Sequence@C@uno@star@sun@com@@QAE@XZ
-??0?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAE@J@Z
-??0?$Sequence@VAny@uno@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@@1@I@Z
-??0?$_STLP_alloc_proxy@PAUAddonMenuEntry@framework@@U12@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QAE@ABV?$allocator@UAddonMenuEntry@framework@@@1@PAUAddonMenuEntry@framework@@@Z
-??0?$_STLP_alloc_proxy@PAUAddonMenuRootEntry@framework@@U12@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QAE@ABV?$allocator@UAddonMenuRootEntry@framework@@@1@PAUAddonMenuRootEntry@framework@@@Z
-??0?$_Vector_base@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QAE@ABV?$allocator@UAddonMenuEntry@framework@@@1@@Z
-??0?$_Vector_base@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QAE@IABV?$allocator@UAddonMenuEntry@framework@@@1@@Z
-??0?$_Vector_base@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QAE@ABV?$allocator@UAddonMenuRootEntry@framework@@@1@@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@QAE@XZ
-??0?$allocator@UAddonMenuEntry@framework@@@std@@QAE@ABV01@@Z
-??0?$allocator@UAddonMenuEntry@framework@@@std@@QAE@XZ
-??0?$allocator@UAddonMenuRootEntry@framework@@@std@@QAE@ABV01@@Z
-??0?$allocator@UAddonMenuRootEntry@framework@@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@UOUStringHashCode@45@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@8@@std@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QAE@IABUOUStringHashCode@AddonsOptions_Impl@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@QAE@ABVOUString@rtl@@ABUImageEntry@AddonsOptions_Impl@framework@@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@_N@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@1@AB_N@Z
-??0?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QAE@ABV01@@Z
-??0?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QAE@ABV?$allocator@UAddonMenuEntry@framework@@@1@@Z
-??0?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QAE@ABV?$allocator@UAddonMenuRootEntry@framework@@@1@@Z
-??0AddonMenuEntry@framework@@QAE@ABU01@@Z
-??0AddonMenuEntry@framework@@QAE@XZ
-??0AddonMenuRootEntry@framework@@QAE@ABU01@@Z
-??0AddonMenuRootEntry@framework@@QAE@XZ
-??0AddonsOptions@framework@@QAE@XZ
-??0AddonsOptions_Impl@framework@@QAE@XZ
-??0Color@@QAE@K@Z
-??0ImageEntry@AddonsOptions_Impl@framework@@QAE@ABU012@@Z
-??0ImageEntry@AddonsOptions_Impl@framework@@QAE@XZ
-??0Pair@@QAE@JJ@Z
-??0Size@@QAE@JJ@Z
-??0SvAddonMenu@framework@@QAE@XZ
-??1?$Sequence@C@uno@star@sun@com@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAUAddonMenuEntry@framework@@U12@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAUAddonMenuRootEntry@framework@@U12@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QAE@XZ
-??1?$_Vector_base@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QAE@XZ
-??1?$_Vector_base@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@QAE@XZ
-??1?$allocator@UAddonMenuEntry@framework@@@std@@QAE@XZ
-??1?$allocator@UAddonMenuRootEntry@framework@@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@UOUStringHashCode@45@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@8@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@QAE@XZ
-??1?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QAE@XZ
-??1?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QAE@XZ
-??1AddonMenuEntry@framework@@QAE@XZ
-??1AddonMenuRootEntry@framework@@QAE@XZ
-??1AddonsOptions@framework@@QAE@XZ
-??1AddonsOptions_Impl@framework@@UAE@XZ
-??1ImageEntry@AddonsOptions_Impl@framework@@QAE@XZ
-??1SvAddonMenu@framework@@QAE@XZ
-??4?$Sequence@VAny@uno@star@sun@com@@@uno@star@sun@com@@QAAAAV01234@ABV01234@@Z
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@0@0@Z
-??A?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QBEABUAddonMenuRootEntry@framework@@I@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@1@@Z
-??ROUStringHashCode@AddonsOptions_Impl@framework@@QBEIABVOUString@rtl@@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Sequence@C@0123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@0123@@Z
-??_7AddonsOptions_Impl@framework@@6B@
-??_G?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@QAEPAXI@Z
-??_GAddonMenuEntry@framework@@QAEPAXI@Z
-??_GAddonMenuRootEntry@framework@@QAEPAXI@Z
-??_GAddonsOptions_Impl@framework@@UAEPAXI@Z
-??_GImageEntry@AddonsOptions_Impl@framework@@QAEPAXI@Z
-?AddImageEntryToImageManager@AddonsOptions_Impl@framework@@AAEXABVOUString@rtl@@PAUImageEntry@12@@Z
-?AppendRootMenuEntry@SvAddonMenu@framework@@QAEXABUAddonMenuRootEntry@2@@Z
-?Commit@AddonsOptions_Impl@framework@@UAEXXZ
-?CreateImageFromSequence@AddonsOptions_Impl@framework@@ABEEAAVImage@@EAAV?$Sequence@C@uno@star@sun@com@@@Z
-?GetAddonsComponentMenu@AddonsOptions@framework@@QBE?AV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@VOUString@rtl@@@Z
-?GetAddonsComponentMenu@AddonsOptions_Impl@framework@@QBE?AV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@VOUString@rtl@@@Z
-?GetAddonsMenu@AddonsOptions@framework@@QBEABV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?GetAddonsMenu@AddonsOptions_Impl@framework@@QBEABV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?GetImageFromURL@AddonsOptions@framework@@QBE?AVImage@@ABVOUString@rtl@@EE@Z
-?GetImageFromURL@AddonsOptions_Impl@framework@@QBE?AVImage@@ABVOUString@rtl@@EE@Z
-?GetImagesPropertyNames@AddonsOptions_Impl@framework@@ABE?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?GetList@SvAddonMenu@framework@@QBE?AV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?GetOwnStaticMutex@AddonsOptions@framework@@SAAAVMutex@osl@@XZ
-?GetPropertyNames@AddonsOptions_Impl@framework@@ABE?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?GetRootMenuEntry@SvAddonMenu@framework@@QBEPBUAddonMenuRootEntry@2@K@Z
-?GetSubMenuList@SvAddonMenu@framework@@QBE?AV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@ABV?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@@Z
-?HasAddonsMenu@AddonsOptions@framework@@QBEEXZ
-?HasAddonsMenu@AddonsOptions_Impl@framework@@QBEEXZ
-?Notify@AddonsOptions_Impl@framework@@UAEXABV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@@Z
-?ReadOptionalImageData@AddonsOptions_Impl@framework@@AAEPAUImageEntry@12@ABVOUString@rtl@@@Z
-?ReadRootMenuEntry@AddonsOptions_Impl@framework@@AAEEABVOUString@rtl@@AAUAddonMenuRootEntry@2@@Z
-?ReadSubMenuEntries@AddonsOptions_Impl@framework@@AAEEABV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@AAV?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@@Z
-?ReadSubMenuEntry@AddonsOptions_Impl@framework@@AAEEABVOUString@rtl@@AAV?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@@Z
-?Size@SvAddonMenu@framework@@QBEJXZ
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@1@ABU21@@Z
-?_Construct@std@@YAXPAUAddonMenuEntry@framework@@ABU23@@Z
-?_Construct@std@@YAXPAUAddonMenuRootEntry@framework@@ABU23@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@1@@Z
-?_Destroy@std@@YAXPAUAddonMenuEntry@framework@@0@Z
-?_Destroy@std@@YAXPAUAddonMenuEntry@framework@@@Z
-?_Destroy@std@@YAXPAUAddonMenuRootEntry@framework@@0@Z
-?_Destroy@std@@YAXPAUAddonMenuRootEntry@framework@@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_clear@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@IAEXXZ
-?_M_clear@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@IAEXXZ
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_insert_overflow@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@IAEXPAUAddonMenuEntry@framework@@ABU34@ABU__false_type@2@I_N@Z
-?_M_insert_overflow@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@IAEXPAUAddonMenuRootEntry@framework@@ABU34@ABU__false_type@2@I_N@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@ABEII@Z
-?_M_set@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@IAEXPAUAddonMenuEntry@framework@@00@Z
-?_M_set@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@IAEXPAUAddonMenuRootEntry@framework@@00@Z
-?__destroy@std@@YAXPAUAddonMenuEntry@framework@@00@Z
-?__destroy@std@@YAXPAUAddonMenuRootEntry@framework@@00@Z
-?__destroy_aux@std@@YAXPAUAddonMenuEntry@framework@@0ABU__false_type@1@@Z
-?__destroy_aux@std@@YAXPAUAddonMenuRootEntry@framework@@0ABU__false_type@1@@Z
-?__uninitialized_copy@std@@YAPAUAddonMenuEntry@framework@@PAU23@00ABU__false_type@1@@Z
-?__uninitialized_copy@std@@YAPAUAddonMenuEntry@framework@@PBU23@0PAU23@ABU__false_type@1@@Z
-?__uninitialized_copy@std@@YAPAUAddonMenuRootEntry@framework@@PAU23@00ABU__false_type@1@@Z
-?__uninitialized_fill_n@std@@YAPAUAddonMenuEntry@framework@@PAU23@IABU23@ABU__false_type@1@@Z
-?__uninitialized_fill_n@std@@YAPAUAddonMenuRootEntry@framework@@PAU23@IABU23@ABU__false_type@1@@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@IPBX@Z
-?allocate@?$allocator@UAddonMenuEntry@framework@@@std@@QBEPAUAddonMenuEntry@framework@@IPBX@Z
-?allocate@?$allocator@UAddonMenuRootEntry@framework@@@std@@QBEPAUAddonMenuRootEntry@framework@@IPBX@Z
-?begin@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QBEPBUAddonMenuEntry@framework@@XZ
-?begin@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QBEPBUAddonMenuRootEntry@framework@@XZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@I@Z
-?deallocate@?$allocator@UAddonMenuEntry@framework@@@std@@QBEXPAUAddonMenuEntry@framework@@I@Z
-?deallocate@?$allocator@UAddonMenuRootEntry@framework@@@std@@QBEXPAUAddonMenuRootEntry@framework@@I@Z
-?end@?$hash_map@VOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@UOUStringHashCode@45@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@8@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@2@XZ
-?end@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QBEPBUAddonMenuEntry@framework@@XZ
-?end@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QBEPBUAddonMenuRootEntry@framework@@XZ
-?equals@OUString@rtl@@QBEEABV12@@Z
-?find@?$hash_map@VOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@UOUStringHashCode@45@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@8@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?getArray@?$Sequence@C@uno@star@sun@com@@QAAPACXZ
-?getCppuType@@YAABVType@uno@star@sun@com@@PBC@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Sequence@C@2345@@Z
-?getLength@?$Sequence@C@uno@star@sun@com@@QBAJXZ
-?get_allocator@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QBE?AV?$allocator@UAddonMenuEntry@framework@@@2@XZ
-?insert@?$hash_map@VOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@UOUStringHashCode@45@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@8@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@@Z
-?lastIndexOf@OUString@rtl@@QBEJG@Z
-?m_nRefCount@AddonsOptions@framework@@0JA
-?m_pDataContainer@AddonsOptions@framework@@0PAVAddonsOptions_Impl@2@A
-?push_back@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QAEXABUAddonMenuEntry@framework@@@Z
-?push_back@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QAEXABUAddonMenuRootEntry@framework@@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@std@@@2@@std@@QAEXI@Z
-?s_pType@?$Sequence@C@uno@star@sun@com@@2PAU_typelib_TypeDescriptionReference@@A
-?size@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@std@@@std@@QBEIXZ
-?size@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@std@@@std@@QBEIXZ
-?value_type@std@@YAPAUAddonMenuEntry@framework@@PBU23@@Z
-?value_type@std@@YAPAUAddonMenuRootEntry@framework@@PBU23@@Z
-??0AddonMenu@framework@@AAE@AAV?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@PAV01@@Z
-??0AddonMenu@framework@@QAE@AAV?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@@Z
-??0AddonMenu_Impl@framework@@QAE@PAVAddonMenu@1@@Z
-??0AddonMenu_Impl@framework@@QAE@XZ
-??0Attributes@MenuConfiguration@framework@@QAE@XZ
-??1AddonMenu@framework@@UAE@XZ
-??1AddonMenu_Impl@framework@@QAE@XZ
-??1Attributes@MenuConfiguration@framework@@QAE@XZ
-??A?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QBAABV?$Sequence@UPropertyValue@beans@star@sun@com@@@1234@J@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@0123@@Z
-??_7AddonMenu@framework@@6B@
-??_GAddonMenu@framework@@UAEPAXI@Z
-??_GAddonMenu_Impl@framework@@QAEPAXI@Z
-??_GAttributes@MenuConfiguration@framework@@QAEPAXI@Z
-?BuildSubMenu@AddonMenu@framework@@AAEPAVPopupMenu@@V?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@@Z
-?CreateMenuId@AddonMenu@framework@@IAEGXZ
-?GetMID@AddonMenu_Impl@framework@@SAGXZ
-?GetMenuColor@StyleSettings@@QBEABVColor@@XZ
-?GetStyleSettings@AllSettings@@QBEABVStyleSettings@@XZ
-?HasElements@AddonMenu@framework@@SAEXZ
-?Initialize@AddonMenu@framework@@QAEXXZ
-?m_nMID@AddonMenu_Impl@framework@@0GA
-??0?$ContinuationBase@VXInteractionAbort@task@star@sun@com@@@framework@@QAE@XZ
-??0?$ContinuationBase@VXInteractionFilterSelect@document@star@sun@com@@@framework@@QAE@XZ
-??0?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@QAE@PAVXInteractionContinuation@task@234@@Z
-??0?$Sequence@V?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Sequence@V?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??0?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@QAE@XZ
-??0?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@QAE@XZ
-??0?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@QAE@XZ
-??0AmbigousFilterRequest@document@star@sun@com@@QAE@ABVOUString@rtl@@ABV?$Reference@VXInterface@uno@star@sun@com@@@uno@234@000@Z
-??0ContinuationFilterSelect@framework@@QAE@XZ
-??0NoSuchFilterRequest@document@star@sun@com@@QAE@ABVOUString@rtl@@ABV?$Reference@VXInterface@uno@star@sun@com@@@uno@234@0@Z
-??0RequestAmbigousFilter@framework@@QAE@ABVOUString@rtl@@00@Z
-??0RequestFilterSelect@framework@@QAE@ABVOUString@rtl@@@Z
-??0XInteractionAbort@task@star@sun@com@@QAE@XZ
-??0XInteractionContinuation@task@star@sun@com@@QAE@XZ
-??0XInteractionFilterSelect@document@star@sun@com@@QAE@XZ
-??0XInteractionRequest@task@star@sun@com@@QAE@XZ
-??1?$ContinuationBase@VXInteractionAbort@task@star@sun@com@@@framework@@UAE@XZ
-??1?$ContinuationBase@VXInteractionFilterSelect@document@star@sun@com@@@framework@@UAE@XZ
-??1?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Sequence@V?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@UAE@XZ
-??1?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@UAE@XZ
-??1?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@UAE@XZ
-??1AmbigousFilterRequest@document@star@sun@com@@QAE@XZ
-??1ContinuationFilterSelect@framework@@UAE@XZ
-??1NoSuchFilterRequest@document@star@sun@com@@QAE@XZ
-??1RequestAmbigousFilter@framework@@UAE@XZ
-??1RequestFilterSelect@framework@@UAE@XZ
-??4?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@QAAAAV01234@ABV01234@@Z
-??A?$Sequence@V?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAAAAV?$Reference@VXInteractionContinuation@task@star@sun@com@@@1234@J@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABVAmbigousFilterRequest@document@123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABVNoSuchFilterRequest@document@123@@Z
-??_7?$ContinuationBase@VXInteractionAbort@task@star@sun@com@@@framework@@6BOWeakObject@cppu@@@
-??_7?$ContinuationBase@VXInteractionAbort@task@star@sun@com@@@framework@@6BXInteractionAbort@task@star@sun@com@@@
-??_7?$ContinuationBase@VXInteractionAbort@task@star@sun@com@@@framework@@6BXTypeProvider@lang@star@sun@com@@@
-??_7?$ContinuationBase@VXInteractionFilterSelect@document@star@sun@com@@@framework@@6BOWeakObject@cppu@@@
-??_7?$ContinuationBase@VXInteractionFilterSelect@document@star@sun@com@@@framework@@6BXInteractionFilterSelect@document@star@sun@com@@@
-??_7?$ContinuationBase@VXInteractionFilterSelect@document@star@sun@com@@@framework@@6BXTypeProvider@lang@star@sun@com@@@
-??_7ContinuationFilterSelect@framework@@6BOWeakObject@cppu@@@
-??_7ContinuationFilterSelect@framework@@6BXInteractionFilterSelect@document@star@sun@com@@@
-??_7ContinuationFilterSelect@framework@@6BXTypeProvider@lang@star@sun@com@@@
-??_7RequestAmbigousFilter@framework@@6BOWeakObject@cppu@@@
-??_7RequestAmbigousFilter@framework@@6BXInteractionRequest@task@star@sun@com@@@
-??_7RequestAmbigousFilter@framework@@6BXTypeProvider@lang@star@sun@com@@@
-??_7RequestFilterSelect@framework@@6BOWeakObject@cppu@@@
-??_7RequestFilterSelect@framework@@6BXInteractionRequest@task@star@sun@com@@@
-??_7RequestFilterSelect@framework@@6BXTypeProvider@lang@star@sun@com@@@
-??_C@_0CA@JIGCNJJM@com?4sun?4star?4lang?4XTypeProvider?$AA@
-??_C@_0CE@JOANMCHK@com?4sun?4star?4task?4XInteractionAb@
-??_C@_0CG@OJJEEBFB@com?4sun?4star?4task?4XInteractionRe@
-??_C@_0CK@IKLGHDPM@com?4sun?4star?4document?4NoSuchFilt@
-??_C@_0CL@JEMLHJLA@com?4sun?4star?4task?4XInteractionCo@
-??_C@_0CM@NMIBHKCH@com?4sun?4star?4document?4AmbigousFi@
-??_C@_0CP@DICPKDAI@com?4sun?4star?4document?4XInteracti@
-??_G?$ContinuationBase@VXInteractionAbort@task@star@sun@com@@@framework@@UAEPAXI@Z
-??_G?$ContinuationBase@VXInteractionFilterSelect@document@star@sun@com@@@framework@@UAEPAXI@Z
-??_GContinuationFilterSelect@framework@@UAEPAXI@Z
-??_GRequestAmbigousFilter@framework@@UAEPAXI@Z
-??_GRequestFilterSelect@framework@@UAEPAXI@Z
-?acquire@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@UAAXXZ
-?acquire@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@WBA@AAXXZ
-?acquire@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@WBE@AAXXZ
-?acquire@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@UAAXXZ
-?acquire@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@WBA@AAXXZ
-?acquire@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@WBE@AAXXZ
-?acquire@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@UAAXXZ
-?acquire@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@WBA@AAXXZ
-?acquire@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@WBE@AAXXZ
-?getContinuations@RequestAmbigousFilter@framework@@UAA?AV?$Sequence@V?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?getContinuations@RequestFilterSelect@framework@@UAA?AV?$Sequence@V?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInteractionAbort@task@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInteractionContinuation@task@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInteractionFilterSelect@document@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInteractionRequest@task@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXTypeProvider@lang@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Sequence@V?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBVAmbigousFilterRequest@document@345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBVNoSuchFilterRequest@document@345@@Z
-?getFilter@ContinuationFilterSelect@framework@@UAA?AVOUString@rtl@@XZ
-?getFilter@RequestAmbigousFilter@framework@@QBE?AVOUString@rtl@@XZ
-?getFilter@RequestFilterSelect@framework@@QBE?AVOUString@rtl@@XZ
-?getImplementationId@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@UAA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?getImplementationId@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@UAA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?getImplementationId@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@UAA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?getRequest@RequestAmbigousFilter@framework@@UAA?AVAny@uno@star@sun@com@@XZ
-?getRequest@RequestFilterSelect@framework@@UAA?AVAny@uno@star@sun@com@@XZ
-?getTypes@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@UAA?AV?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?getTypes@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@UAA?AV?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?getTypes@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@UAA?AV?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?isAbort@RequestAmbigousFilter@framework@@QBEEXZ
-?isAbort@RequestFilterSelect@framework@@QBEEXZ
-?isSelected@?$ContinuationBase@VXInteractionAbort@task@star@sun@com@@@framework@@QBEEXZ
-?queryInterface@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@UAA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@WBA@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@WBE@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@UAA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@WBA@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@WBE@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@UAA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@WBA@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@WBE@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?realloc@?$Sequence@V?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAAXJ@Z
-?release@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@UAAXXZ
-?release@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@WBA@AAXXZ
-?release@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@WBE@AAXXZ
-?release@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@UAAXXZ
-?release@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@WBA@AAXXZ
-?release@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@WBE@AAXXZ
-?release@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@UAAXXZ
-?release@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@WBA@AAXXZ
-?release@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@WBE@AAXXZ
-?s_cd@?$WeakImplHelper1@VXInteractionAbort@task@star@sun@com@@@cppu@@0Uclass_data1@2@A
-?s_cd@?$WeakImplHelper1@VXInteractionFilterSelect@document@star@sun@com@@@cppu@@0Uclass_data1@2@A
-?s_cd@?$WeakImplHelper1@VXInteractionRequest@task@star@sun@com@@@cppu@@0Uclass_data1@2@A
-?s_pType@?$Sequence@V?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@2PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_document_AmbigousFilterRequest@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBVAmbigousFilterRequest@document@456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_document_NoSuchFilterRequest@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBVNoSuchFilterRequest@document@456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_document_XInteractionFilterSelect@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInteractionFilterSelect@document@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_lang_XTypeProvider@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXTypeProvider@lang@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_task_XInteractionAbort@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInteractionAbort@task@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_task_XInteractionContinuation@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInteractionContinuation@task@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_task_XInteractionRequest@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInteractionRequest@task@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?select@?$ContinuationBase@VXInteractionAbort@task@star@sun@com@@@framework@@UAAXXZ
-?select@?$ContinuationBase@VXInteractionFilterSelect@document@star@sun@com@@@framework@@UAAXXZ
-?set@?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@QAAEPAVXInteractionContinuation@task@345@@Z
-?setFilter@ContinuationFilterSelect@framework@@UAAXABVOUString@rtl@@@Z
-??0?$Sequence@C@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Sequence@C@uno@star@sun@com@@QAE@PBCJ@Z
-??0?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??0ImageWrapper@framework@@QAE@ABVImage@@@Z
-??0OImplementationId@cppu@@QAE@E@Z
-??0Size@awt@star@sun@com@@QAE@ABJ0@Z
-??0XBitmap@awt@star@sun@com@@QAE@XZ
-??0XUnoTunnel@lang@star@sun@com@@QAE@XZ
-??1?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1ImageWrapper@framework@@UAE@XZ
-??1OTypeCollection@cppu@@QAE@XZ
-??8?$Sequence@C@uno@star@sun@com@@QBAEABV01234@@Z
-??_7ImageWrapper@framework@@6BOWeakObject@cppu@@@
-??_7ImageWrapper@framework@@6BXBitmap@awt@star@sun@com@@@
-??_7ImageWrapper@framework@@6BXTypeProvider@lang@star@sun@com@@@
-??_7ImageWrapper@framework@@6BXUnoTunnel@lang@star@sun@com@@@
-??_C@_0BJ@ENJGIHBC@com?4sun?4star?4awt?4XBitmap?$AA@
-??_C@_0BN@IOEAJMLF@com?4sun?4star?4lang?4XUnoTunnel?$AA@
-??_GImageWrapper@framework@@UAEPAXI@Z
-?GetData@SvMemoryStream@@QAEPBXXZ
-?GetUnoTunnelId@ImageWrapper@framework@@SA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?Height@Size@@QAEAAJXZ
-?Tell@SvStream@@QBEKXZ
-?Width@Size@@QAEAAJXZ
-?acquire@ImageWrapper@framework@@UAAXXZ
-?acquire@ImageWrapper@framework@@W3AAXXZ
-?acquire@ImageWrapper@framework@@W7AAXXZ
-?acquire@ImageWrapper@framework@@WM@AAXXZ
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV12345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXBitmap@awt@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXUnoTunnel@lang@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Sequence@VType@uno@star@sun@com@@@2345@@Z
-?getDIB@ImageWrapper@framework@@UAA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?getImplementationId@ImageWrapper@framework@@UAA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?getMaskDIB@ImageWrapper@framework@@UAA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?getSize@ImageWrapper@framework@@UAA?AUSize@awt@star@sun@com@@XZ
-?getSomething@ImageWrapper@framework@@UAA_JABV?$Sequence@C@uno@star@sun@com@@@Z
-?getTypes@ImageWrapper@framework@@UAA?AV?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?getTypes@OTypeCollection@cppu@@QAA?AV?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?queryInterface@ImageWrapper@framework@@UAA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ImageWrapper@framework@@W3AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ImageWrapper@framework@@W7AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ImageWrapper@framework@@WM@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@cppu@@YA?AVAny@uno@star@sun@com@@ABVType@3456@PAVXBitmap@awt@456@PAVXUnoTunnel@lang@456@PAVXTypeProvider@lang@456@@Z
-?release@ImageWrapper@framework@@UAAXXZ
-?release@ImageWrapper@framework@@W3AAXXZ
-?release@ImageWrapper@framework@@W7AAXXZ
-?release@ImageWrapper@framework@@WM@AAXXZ
-?s_pType@?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@2PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_awt_XBitmap@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXBitmap@awt@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_lang_XUnoTunnel@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXUnoTunnel@lang@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-??0?$Reference@VXBitmap@awt@star@sun@com@@@uno@star@sun@com@@QAE@PAVXInterface@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXBitmap@awt@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??0?$Reference@VXIndexAccess@container@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@QAE@PAVXIndexContainer@container@234@@Z
-??0?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??0?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??0?$Reference@VXServiceInfo@lang@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXUnoTunnel@lang@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??1?$Reference@VXBitmap@awt@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Reference@VXIndexAccess@container@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Reference@VXServiceInfo@lang@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Reference@VXUnoTunnel@lang@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??4?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@QAAAAV01234@ABV01234@@Z
-??4?$Sequence@C@uno@star@sun@com@@QAAAAV01234@ABV01234@@Z
-??C?$Reference@VXBitmap@awt@star@sun@com@@@uno@star@sun@com@@QBAPAVXBitmap@awt@234@XZ
-??C?$Reference@VXIndexAccess@container@star@sun@com@@@uno@star@sun@com@@QBAPAVXIndexAccess@container@234@XZ
-??C?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@QBAPAVXIndexContainer@container@234@XZ
-??C?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@QBAPAVXPropertySet@beans@234@XZ
-??C?$Reference@VXServiceInfo@lang@star@sun@com@@@uno@star@sun@com@@QBAPAVXServiceInfo@lang@234@XZ
-??C?$Reference@VXUnoTunnel@lang@star@sun@com@@@uno@star@sun@com@@QBAPAVXUnoTunnel@lang@234@XZ
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Reference@VXBitmap@awt@star@sun@com@@@0123@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Reference@VXIndexContainer@container@star@sun@com@@@0123@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Reference@VXPropertySet@beans@star@sun@com@@@0123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABV?$Reference@VXBitmap@awt@star@sun@com@@@0123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABV?$Reference@VXIndexContainer@container@star@sun@com@@@0123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABV?$Reference@VXPropertySet@beans@star@sun@com@@@0123@@Z
-??_C@_0BP@PCEDPGBI@com?4sun?4star?4lang?4XServiceInfo?$AA@
-??_C@_0CA@MIBACMNI@com?4sun?4star?4beans?4XPropertySet?$AA@
-??_C@_0CE@DDAKONBO@com?4sun?4star?4container?4XIndexAcc@
-??_C@_0CH@EJHCPFEI@com?4sun?4star?4container?4XIndexCon@
-??_R0?AVIndexOutOfBoundsException@lang@star@sun@com@@@8
-?CreateActionTrigger@framework@@YA?AV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@GPBVMenu@@ABV?$Reference@VXIndexContainer@container@star@sun@com@@@3456@@Z
-?CreateActionTriggerContainer@framework@@YA?AV?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@ABV23456@@Z
-?CreateActionTriggerContainerFromMenu@ActionTriggerHelper@framework@@SA?AV?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@PBVMenu@@@Z
-?CreateActionTriggerSeparator@framework@@YA?AV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@ABV?$Reference@VXIndexContainer@container@star@sun@com@@@3456@@Z
-?CreateMenuFromActionTriggerContainer@ActionTriggerHelper@framework@@SAXPAVMenu@@ABV?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@@Z
-?FillActionTriggerContainerFromMenu@ActionTriggerHelper@framework@@SAXAAV?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@PBVMenu@@@Z
-?FillActionTriggerContainerWithMenu@framework@@YAXPBVMenu@@AAV?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@@Z
-?GetImage@ImageWrapper@framework@@QBEABVImage@@XZ
-?GetMenuItemAttributes@framework@@YAXV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@AAVOUString@rtl@@11AAV?$Reference@VXBitmap@awt@star@sun@com@@@3456@AAV?$Reference@VXIndexContainer@container@star@sun@com@@@3456@@Z
-?InsertSubMenuItems@framework@@YAXPAVMenu@@AAGV?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@@Z
-?IsSeparator@framework@@YAEV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?getConstArray@?$Sequence@C@uno@star@sun@com@@QBAPBCXZ
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXIndexAccess@container@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXIndexContainer@container@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXPropertySet@beans@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXServiceInfo@lang@star@sun@com@@@2345@@Z
-?iquery@?$Reference@VXBitmap@awt@star@sun@com@@@uno@star@sun@com@@CAPAVXBitmap@awt@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXIndexAccess@container@star@sun@com@@@uno@star@sun@com@@CAPAVXIndexAccess@container@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@CAPAVXIndexContainer@container@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@CAPAVXPropertySet@beans@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXServiceInfo@lang@star@sun@com@@@uno@star@sun@com@@CAPAVXServiceInfo@lang@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXUnoTunnel@lang@star@sun@com@@@uno@star@sun@com@@CAPAVXUnoTunnel@lang@345@PAVXInterface@2345@@Z
-?s_pType_com_sun_star_beans_XPropertySet@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXPropertySet@beans@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_container_XIndexAccess@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXIndexAccess@container@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_container_XIndexContainer@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXIndexContainer@container@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_lang_XServiceInfo@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXServiceInfo@lang@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?set@?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@QAAEPAVXPropertySet@beans@345@@Z
-??0?$Reference@VXIndexContainer@container@star@sun@com@@@uno@star@sun@com@@QAE@PAVXInterface@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@QAE@PAVXInterface@1234@@Z
-??0RootActionTriggerContainer@framework@@QAE@PBVMenu@@ABV?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@uno@star@sun@com@@@Z
-??0XMultiServiceFactory@lang@star@sun@com@@QAE@XZ
-??0XServiceInfo@lang@star@sun@com@@QAE@XZ
-??1RootActionTriggerContainer@framework@@UAE@XZ
-??_7RootActionTriggerContainer@framework@@6BOWeakObject@cppu@@@
-??_7RootActionTriggerContainer@framework@@6BXIndexContainer@container@star@sun@com@@@
-??_7RootActionTriggerContainer@framework@@6BXMultiServiceFactory@lang@star@sun@com@@@
-??_7RootActionTriggerContainer@framework@@6BXServiceInfo@lang@star@sun@com@@@
-??_7RootActionTriggerContainer@framework@@6BXTypeProvider@lang@star@sun@com@@@
-??_7RootActionTriggerContainer@framework@@6BXUnoTunnel@lang@star@sun@com@@@
-??_C@_0CF@BNDGIFLO@com?4sun?4star?4container?4XIndexRep@
-??_GRootActionTriggerContainer@framework@@UAEPAXI@Z
-?FillContainer@RootActionTriggerContainer@framework@@AAEXXZ
-?GetMenu@RootActionTriggerContainer@framework@@QAEPBVMenu@@XZ
-?GetUnoTunnelId@RootActionTriggerContainer@framework@@QBE?AV?$Sequence@C@uno@star@sun@com@@XZ
-?acquire@RootActionTriggerContainer@framework@@UAAXXZ
-?acquire@RootActionTriggerContainer@framework@@W3AAXXZ
-?acquire@RootActionTriggerContainer@framework@@WEA@AAXXZ
-?acquire@RootActionTriggerContainer@framework@@WEE@AAXXZ
-?acquire@RootActionTriggerContainer@framework@@WEI@AAXXZ
-?acquire@RootActionTriggerContainer@framework@@WEM@AAXXZ
-?createInstance@RootActionTriggerContainer@framework@@UAA?AV?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?createInstanceWithArguments@RootActionTriggerContainer@framework@@UAA?AV?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@ABV?$Sequence@VAny@uno@star@sun@com@@@4567@@Z
-?equalsAscii@OUString@rtl@@QBEEPBD@Z
-?getAvailableServiceNames@RootActionTriggerContainer@framework@@UAA?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getByIndex@RootActionTriggerContainer@framework@@UAA?AVAny@uno@star@sun@com@@J@Z
-?getCount@RootActionTriggerContainer@framework@@UAAJXZ
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXIndexReplace@container@star@sun@com@@@2345@@Z
-?getElementType@RootActionTriggerContainer@framework@@UAA?AVType@uno@star@sun@com@@XZ
-?getImplementationId@RootActionTriggerContainer@framework@@UAA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?getImplementationName@RootActionTriggerContainer@framework@@UAA?AVOUString@rtl@@XZ
-?getSomething@RootActionTriggerContainer@framework@@UAA_JABV?$Sequence@C@uno@star@sun@com@@@Z
-?getSupportedServiceNames@RootActionTriggerContainer@framework@@UAA?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getTypes@RootActionTriggerContainer@framework@@UAA?AV?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?hasElements@RootActionTriggerContainer@framework@@UAAEXZ
-?insertByIndex@RootActionTriggerContainer@framework@@UAAXJABVAny@uno@star@sun@com@@@Z
-?queryInterface@RootActionTriggerContainer@framework@@UAA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@RootActionTriggerContainer@framework@@W3AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@RootActionTriggerContainer@framework@@WEA@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@RootActionTriggerContainer@framework@@WEE@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@RootActionTriggerContainer@framework@@WEI@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@RootActionTriggerContainer@framework@@WEM@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@cppu@@YA?AVAny@uno@star@sun@com@@ABVType@3456@PAVXMultiServiceFactory@lang@456@PAVXServiceInfo@9456@PAVXUnoTunnel@9456@PAVXTypeProvider@9456@@Z
-?release@RootActionTriggerContainer@framework@@UAAXXZ
-?release@RootActionTriggerContainer@framework@@W3AAXXZ
-?release@RootActionTriggerContainer@framework@@WEA@AAXXZ
-?release@RootActionTriggerContainer@framework@@WEE@AAXXZ
-?release@RootActionTriggerContainer@framework@@WEI@AAXXZ
-?release@RootActionTriggerContainer@framework@@WEM@AAXXZ
-?removeByIndex@RootActionTriggerContainer@framework@@UAAXJ@Z
-?replaceByIndex@RootActionTriggerContainer@framework@@UAAXJABVAny@uno@star@sun@com@@@Z
-?s_pType_com_sun_star_container_XIndexReplace@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXIndexReplace@container@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?supportsService@RootActionTriggerContainer@framework@@UAAEABVOUString@rtl@@@Z
-__CTA2?AVRuntimeException@uno@star@sun@com@@
-??0?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??0?$_STLP_alloc_proxy@PAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V12345@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAE@ABV?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@1@PAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-??0?$_Vector_base@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAE@ABV?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@1@@Z
-??0?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@QAE@ABV01@@Z
-??0?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@QAE@XZ
-??0?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAE@ABV?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@1@@Z
-??0IllegalArgumentException@lang@star@sun@com@@QAE@ABV01234@@Z
-??0IllegalArgumentException@lang@star@sun@com@@QAE@ABVOUString@rtl@@ABV?$Reference@VXInterface@uno@star@sun@com@@@uno@234@ABF@Z
-??0IndexOutOfBoundsException@lang@star@sun@com@@QAE@ABV01234@@Z
-??0IndexOutOfBoundsException@lang@star@sun@com@@QAE@ABVOUString@rtl@@ABV?$Reference@VXInterface@uno@star@sun@com@@@uno@234@@Z
-??0PropertySetContainer@framework@@QAE@ABV?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@uno@star@sun@com@@@Z
-??0XElementAccess@container@star@sun@com@@QAE@XZ
-??0XIndexAccess@container@star@sun@com@@QAE@XZ
-??0XIndexContainer@container@star@sun@com@@QAE@XZ
-??0XIndexReplace@container@star@sun@com@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V12345@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAE@XZ
-??1?$_Vector_base@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAE@XZ
-??1?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@QAE@XZ
-??1?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAE@XZ
-??1IllegalArgumentException@lang@star@sun@com@@QAE@XZ
-??1IndexOutOfBoundsException@lang@star@sun@com@@QAE@XZ
-??1PropertySetContainer@framework@@UAE@XZ
-??2?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@SAPAXIPAX@Z
-??3?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@SAXPAX@Z
-??A?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAEAAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@I@Z
-??_7PropertySetContainer@framework@@6BOWeakObject@cppu@@@
-??_7PropertySetContainer@framework@@6BXIndexContainer@container@star@sun@com@@@
-??_C@_0CG@FBBPMMBB@com?4sun?4star?4container?4XElementA@
-??_G?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@QAEPAXI@Z
-??_GPropertySetContainer@framework@@UAEPAXI@Z
-??_R0?AVIllegalArgumentException@lang@star@sun@com@@@8
-?_Construct@std@@YAXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@ABV23456@@Z
-?_Destroy@std@@YAXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@0@Z
-?_Destroy@std@@YAXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?_M_clear@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@IAEXXZ
-?_M_insert_overflow@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@IAEXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@ABV34567@ABU__false_type@2@I_N@Z
-?_M_set@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@IAEXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@00@Z
-?__copy@std@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_backward@std@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_backward_ptrs@std@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@00ABU__false_type@1@@Z
-?__copy_ptrs@std@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@00ABU__false_type@1@@Z
-?__destroy@std@@YAXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@00@Z
-?__destroy_aux@std@@YAXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@0ABU__false_type@1@@Z
-?__uninitialized_copy@std@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@00ABU__false_type@1@@Z
-?__uninitialized_fill_n@std@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@IABV23456@ABU__false_type@1@@Z
-?acquire@PropertySetContainer@framework@@UAAXXZ
-?acquire@PropertySetContainer@framework@@W3AAXXZ
-?allocate@?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@QBEPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@IPBX@Z
-?begin@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAEPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?deallocate@?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@QBEXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@I@Z
-?distance_type@std@@YAPAHPBV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?empty@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QBE_NXZ
-?end@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAEPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?erase@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAEPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV34567@@Z
-?getByIndex@PropertySetContainer@framework@@UAA?AVAny@uno@star@sun@com@@J@Z
-?getCount@PropertySetContainer@framework@@UAAJXZ
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXElementAccess@container@star@sun@com@@@2345@@Z
-?getElementType@PropertySetContainer@framework@@UAA?AVType@uno@star@sun@com@@XZ
-?hasElements@PropertySetContainer@framework@@UAAEXZ
-?insert@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAEPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV34567@ABV34567@@Z
-?insertByIndex@PropertySetContainer@framework@@UAAXJABVAny@uno@star@sun@com@@@Z
-?iterator_category@std@@YA?AUrandom_access_iterator_tag@1@PBV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?push_back@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QAEXABV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?queryInterface@PropertySetContainer@framework@@UAA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@PropertySetContainer@framework@@W3AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@cppu@@YA?AVAny@uno@star@sun@com@@ABVType@3456@PAVXIndexContainer@container@456@PAVXIndexReplace@9456@PAVXIndexAccess@9456@PAVXElementAccess@9456@@Z
-?release@PropertySetContainer@framework@@UAAXXZ
-?release@PropertySetContainer@framework@@W3AAXXZ
-?removeByIndex@PropertySetContainer@framework@@UAAXJ@Z
-?replaceByIndex@PropertySetContainer@framework@@UAAXJABVAny@uno@star@sun@com@@@Z
-?s_pType_com_sun_star_container_XElementAccess@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXElementAccess@container@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?size@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@std@@@std@@QBEIXZ
-?value_type@std@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PBV23456@@Z
-__CT??_R0?AVIllegalArgumentException@lang@star@sun@com@@@8??0IllegalArgumentException@lang@star@sun@com@@QAE@ABV01234@@Z12
-__CT??_R0?AVIndexOutOfBoundsException@lang@star@sun@com@@@8??0IndexOutOfBoundsException@lang@star@sun@com@@QAE@ABV01234@@Z8
-__CTA2?AVIllegalArgumentException@lang@star@sun@com@@
-__CTA2?AVIndexOutOfBoundsException@lang@star@sun@com@@
-??0ActionTriggerContainer@framework@@QAE@ABV?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@uno@star@sun@com@@@Z
-??1ActionTriggerContainer@framework@@UAE@XZ
-??_7ActionTriggerContainer@framework@@6BOWeakObject@cppu@@@
-??_7ActionTriggerContainer@framework@@6BXIndexContainer@container@star@sun@com@@@
-??_7ActionTriggerContainer@framework@@6BXMultiServiceFactory@lang@star@sun@com@@@
-??_7ActionTriggerContainer@framework@@6BXServiceInfo@lang@star@sun@com@@@
-??_7ActionTriggerContainer@framework@@6BXTypeProvider@lang@star@sun@com@@@
-??_GActionTriggerContainer@framework@@UAEPAXI@Z
-?acquire@ActionTriggerContainer@framework@@UAAXXZ
-?acquire@ActionTriggerContainer@framework@@W3AAXXZ
-?acquire@ActionTriggerContainer@framework@@WEA@AAXXZ
-?acquire@ActionTriggerContainer@framework@@WEE@AAXXZ
-?acquire@ActionTriggerContainer@framework@@WEI@AAXXZ
-?createInstance@ActionTriggerContainer@framework@@UAA?AV?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?createInstanceWithArguments@ActionTriggerContainer@framework@@UAA?AV?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@ABV?$Sequence@VAny@uno@star@sun@com@@@4567@@Z
-?getAvailableServiceNames@ActionTriggerContainer@framework@@UAA?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getImplementationId@ActionTriggerContainer@framework@@UAA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?getImplementationName@ActionTriggerContainer@framework@@UAA?AVOUString@rtl@@XZ
-?getSupportedServiceNames@ActionTriggerContainer@framework@@UAA?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getTypes@ActionTriggerContainer@framework@@UAA?AV?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?queryInterface@ActionTriggerContainer@framework@@UAA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerContainer@framework@@W3AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerContainer@framework@@WEA@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerContainer@framework@@WEE@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerContainer@framework@@WEI@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@cppu@@YA?AVAny@uno@star@sun@com@@ABVType@3456@PAVXMultiServiceFactory@lang@456@PAVXServiceInfo@9456@@Z
-?release@ActionTriggerContainer@framework@@UAAXXZ
-?release@ActionTriggerContainer@framework@@W3AAXXZ
-?release@ActionTriggerContainer@framework@@WEA@AAXXZ
-?release@ActionTriggerContainer@framework@@WEE@AAXXZ
-?release@ActionTriggerContainer@framework@@WEI@AAXXZ
-?supportsService@ActionTriggerContainer@framework@@UAAEABVOUString@rtl@@@Z
-??0?$OBroadcastHelperVar@VOMultiTypeInterfaceContainerHelper@cppu@@VType@uno@star@sun@com@@@cppu@@QAE@AAVMutex@osl@@@Z
-??0?$Reference@VXPropertySetInfo@beans@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Sequence@UProperty@beans@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Sequence@UProperty@beans@star@sun@com@@@uno@star@sun@com@@QAE@PBUProperty@beans@234@J@Z
-??0ActionTriggerSeparatorPropertySet@framework@@QAE@ABV?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@uno@star@sun@com@@@Z
-??0IllegalArgumentException@lang@star@sun@com@@QAE@XZ
-??0Property@beans@star@sun@com@@QAE@ABVOUString@rtl@@ABJABVType@uno@234@ABF@Z
-??1?$OBroadcastHelperVar@VOMultiTypeInterfaceContainerHelper@cppu@@VType@uno@star@sun@com@@@cppu@@QAE@XZ
-??1?$Reference@VXPropertySetInfo@beans@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Sequence@UProperty@beans@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1ActionTriggerSeparatorPropertySet@framework@@UAE@XZ
-??1OPropertyArrayHelper@cppu@@UAE@XZ
-??1Property@beans@star@sun@com@@QAE@XZ
-??_2uno@star@sun@com@@YAEABVAny@0123@AAC@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAG@Z
-??_7ActionTriggerSeparatorPropertySet@framework@@6BOWeakObject@cppu@@@
-??_7ActionTriggerSeparatorPropertySet@framework@@6BXFastPropertySet@beans@star@sun@com@@@
-??_7ActionTriggerSeparatorPropertySet@framework@@6BXMultiPropertySet@beans@star@sun@com@@@
-??_7ActionTriggerSeparatorPropertySet@framework@@6BXPropertySet@beans@star@sun@com@@@
-??_7ActionTriggerSeparatorPropertySet@framework@@6BXServiceInfo@lang@star@sun@com@@@
-??_7ActionTriggerSeparatorPropertySet@framework@@6BXTypeProvider@lang@star@sun@com@@@
-??_C@_0BM@MMFLFOIN@com?4sun?4star?4beans?4Property?$AA@
-??_C@_0CE@FHBEPBJL@com?4sun?4star?4beans?4XFastProperty@
-??_C@_0CF@HADMGJGA@com?4sun?4star?4beans?4XMultiPropert@
-??_GActionTriggerSeparatorPropertySet@framework@@UAEPAXI@Z
-?acquire@ActionTriggerSeparatorPropertySet@framework@@UAAXXZ
-?acquire@ActionTriggerSeparatorPropertySet@framework@@W3AAXXZ
-?acquire@ActionTriggerSeparatorPropertySet@framework@@W7AAXXZ
-?acquire@ActionTriggerSeparatorPropertySet@framework@@WBA@AAXXZ
-?acquire@ActionTriggerSeparatorPropertySet@framework@@WCM@AAXXZ
-?acquire@ActionTriggerSeparatorPropertySet@framework@@WM@AAXXZ
-?clear@Any@uno@star@sun@com@@QAAXXZ
-?convertFastPropertyValue@ActionTriggerSeparatorPropertySet@framework@@EAAEAAVAny@uno@star@sun@com@@0JABV34567@@Z
-?convertPropertyValue@cppu@@YAXAAFABVAny@uno@star@sun@com@@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBUProperty@beans@345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXFastPropertySet@beans@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXMultiPropertySet@beans@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Sequence@UProperty@beans@star@sun@com@@@2345@@Z
-?getFastPropertyValue@ActionTriggerSeparatorPropertySet@framework@@EBAXAAVAny@uno@star@sun@com@@J@Z
-?getImplementationId@ActionTriggerSeparatorPropertySet@framework@@UAA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?getImplementationName@ActionTriggerSeparatorPropertySet@framework@@UAA?AVOUString@rtl@@XZ
-?getInfoHelper@ActionTriggerSeparatorPropertySet@framework@@EAAAAVIPropertyArrayHelper@cppu@@XZ
-?getPropertySetInfo@ActionTriggerSeparatorPropertySet@framework@@EAA?AV?$Reference@VXPropertySetInfo@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?getPropertySetInfo@ActionTriggerSeparatorPropertySet@framework@@G7AA?AV?$Reference@VXPropertySetInfo@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?getSupportedServiceNames@ActionTriggerSeparatorPropertySet@framework@@UAA?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getTypeClass@Type@uno@star@sun@com@@QBA?AW4TypeClass@2345@XZ
-?getTypes@ActionTriggerSeparatorPropertySet@framework@@UAA?AV?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?getValue@Any@uno@star@sun@com@@QBAPBXXZ
-?impl_getStaticPropertyDescriptor@ActionTriggerSeparatorPropertySet@framework@@CA?BV?$Sequence@UProperty@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?impl_tryToChangeProperty@ActionTriggerSeparatorPropertySet@framework@@AAEEFABVAny@uno@star@sun@com@@AAV34567@1@Z
-?queryInterface@ActionTriggerSeparatorPropertySet@framework@@UAA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerSeparatorPropertySet@framework@@W3AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerSeparatorPropertySet@framework@@W7AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerSeparatorPropertySet@framework@@WBA@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerSeparatorPropertySet@framework@@WCM@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerSeparatorPropertySet@framework@@WM@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@cppu@@YA?AVAny@uno@star@sun@com@@ABVType@3456@PAVXServiceInfo@lang@456@@Z
-?release@ActionTriggerSeparatorPropertySet@framework@@UAAXXZ
-?release@ActionTriggerSeparatorPropertySet@framework@@W3AAXXZ
-?release@ActionTriggerSeparatorPropertySet@framework@@W7AAXXZ
-?release@ActionTriggerSeparatorPropertySet@framework@@WBA@AAXXZ
-?release@ActionTriggerSeparatorPropertySet@framework@@WCM@AAXXZ
-?release@ActionTriggerSeparatorPropertySet@framework@@WM@AAXXZ
-?s_pType@?$Sequence@UProperty@beans@star@sun@com@@@uno@star@sun@com@@2PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_beans_Property@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBUProperty@beans@456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_beans_XFastPropertySet@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXFastPropertySet@beans@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_beans_XMultiPropertySet@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXMultiPropertySet@beans@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?setFastPropertyValue_NoBroadcast@ActionTriggerSeparatorPropertySet@framework@@EAAXJABVAny@uno@star@sun@com@@@Z
-?supportsService@ActionTriggerSeparatorPropertySet@framework@@UAAEABVOUString@rtl@@@Z
-??0?$Reference@VXBitmap@awt@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Reference@VXBitmap@awt@star@sun@com@@@uno@star@sun@com@@QAE@PAVXBitmap@awt@234@@Z
-??0?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@QAE@PAVXInterface@1234@W4UnoReference_Query@1234@@Z
-??0ActionTriggerPropertySet@framework@@QAE@ABV?$Reference@VXMultiServiceFactory@lang@star@sun@com@@@uno@star@sun@com@@@Z
-??1ActionTriggerPropertySet@framework@@UAE@XZ
-??8BaseReference@uno@star@sun@com@@QBAEPAVXInterface@1234@@Z
-??9BaseReference@uno@star@sun@com@@QBAEABV01234@@Z
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Reference@VXInterface@uno@star@sun@com@@@0123@@Z
-??_3uno@star@sun@com@@YAXAAVAny@0123@ABV?$Reference@VXInterface@uno@star@sun@com@@@0123@@Z
-??_7ActionTriggerPropertySet@framework@@6BOWeakObject@cppu@@@
-??_7ActionTriggerPropertySet@framework@@6BXFastPropertySet@beans@star@sun@com@@@
-??_7ActionTriggerPropertySet@framework@@6BXMultiPropertySet@beans@star@sun@com@@@
-??_7ActionTriggerPropertySet@framework@@6BXPropertySet@beans@star@sun@com@@@
-??_7ActionTriggerPropertySet@framework@@6BXServiceInfo@lang@star@sun@com@@@
-??_7ActionTriggerPropertySet@framework@@6BXTypeProvider@lang@star@sun@com@@@
-??_C@_0BM@DDDFNPGE@com?4sun?4star?4uno?4XInterface?$AA@
-??_GActionTriggerPropertySet@framework@@UAEPAXI@Z
-?acquire@ActionTriggerPropertySet@framework@@UAAXXZ
-?acquire@ActionTriggerPropertySet@framework@@W3AAXXZ
-?acquire@ActionTriggerPropertySet@framework@@W7AAXXZ
-?acquire@ActionTriggerPropertySet@framework@@WBA@AAXXZ
-?acquire@ActionTriggerPropertySet@framework@@WCM@AAXXZ
-?acquire@ActionTriggerPropertySet@framework@@WM@AAXXZ
-?convertFastPropertyValue@ActionTriggerPropertySet@framework@@EAAEAAVAny@uno@star@sun@com@@0JABV34567@@Z
-?convertPropertyValue@cppu@@YAXAAV?$Reference@VXBitmap@awt@star@sun@com@@@uno@star@sun@com@@ABVAny@3456@@Z
-?convertPropertyValue@cppu@@YAXAAV?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@ABVAny@3456@@Z
-?convertPropertyValue@cppu@@YAXAAVOUString@rtl@@ABVAny@uno@star@sun@com@@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInterface@uno@star@sun@com@@@2345@@Z
-?getFastPropertyValue@ActionTriggerPropertySet@framework@@EBAXAAVAny@uno@star@sun@com@@J@Z
-?getImplementationId@ActionTriggerPropertySet@framework@@UAA?AV?$Sequence@C@uno@star@sun@com@@XZ
-?getImplementationName@ActionTriggerPropertySet@framework@@UAA?AVOUString@rtl@@XZ
-?getInfoHelper@ActionTriggerPropertySet@framework@@EAAAAVIPropertyArrayHelper@cppu@@XZ
-?getPropertySetInfo@ActionTriggerPropertySet@framework@@EAA?AV?$Reference@VXPropertySetInfo@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?getPropertySetInfo@ActionTriggerPropertySet@framework@@G7AA?AV?$Reference@VXPropertySetInfo@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?getSupportedServiceNames@ActionTriggerPropertySet@framework@@UAA?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@XZ
-?getTypes@ActionTriggerPropertySet@framework@@UAA?AV?$Sequence@VType@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?impl_getStaticPropertyDescriptor@ActionTriggerPropertySet@framework@@CA?BV?$Sequence@UProperty@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?impl_tryToChangeProperty@ActionTriggerPropertySet@framework@@AAEEABVOUString@rtl@@ABVAny@uno@star@sun@com@@AAV56789@2@Z
-?impl_tryToChangeProperty@ActionTriggerPropertySet@framework@@AAEEV?$Reference@VXBitmap@awt@star@sun@com@@@uno@star@sun@com@@ABVAny@4567@AAV84567@2@Z
-?impl_tryToChangeProperty@ActionTriggerPropertySet@framework@@AAEEV?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@ABVAny@4567@AAV84567@2@Z
-?iquery@?$Reference@VXInterface@uno@star@sun@com@@@uno@star@sun@com@@CAPAVXInterface@2345@PAV62345@@Z
-?queryInterface@ActionTriggerPropertySet@framework@@UAA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerPropertySet@framework@@W3AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerPropertySet@framework@@W7AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerPropertySet@framework@@WBA@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerPropertySet@framework@@WCM@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@ActionTriggerPropertySet@framework@@WM@AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?release@ActionTriggerPropertySet@framework@@UAAXXZ
-?release@ActionTriggerPropertySet@framework@@W3AAXXZ
-?release@ActionTriggerPropertySet@framework@@W7AAXXZ
-?release@ActionTriggerPropertySet@framework@@WBA@AAXXZ
-?release@ActionTriggerPropertySet@framework@@WCM@AAXXZ
-?release@ActionTriggerPropertySet@framework@@WM@AAXXZ
-?s_pType_com_sun_star_uno_XInterface@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXInterface@uno@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?setFastPropertyValue_NoBroadcast@ActionTriggerPropertySet@framework@@EAAXJABVAny@uno@star@sun@com@@@Z
-?supportsService@ActionTriggerPropertySet@framework@@UAAEABVOUString@rtl@@@Z
-??0?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE@ABU?$less@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@@Z
-??0?$_Rb_tree_base@U?$pair@$$CBVOUString@rtl@@V12@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@@Z
-??0?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@@Z
-??0?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@XZ
-??0?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@ABU01@@Z
-??0?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@@Z
-??0?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@XZ
-??0?$_STLP_alloc_proxy@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@U12@V?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@1@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@@Z
-??0?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@1@@Z
-??0?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE@XZ
-??0?$pair@U?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@_N@std@@QAE@ABU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@1@AB_N@Z
-??1?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE@XZ
-??1?$_Rb_tree_base@U?$pair@$$CBVOUString@rtl@@V12@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@U12@V?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@2@@std@@QAE@XZ
-??1?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@std@@QAE@XZ
-??1?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE@XZ
-??4?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAEAAV01@ABV01@@Z
-??4?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAEAAV01@ABV01@@Z
-??8_Rb_tree_base_iterator@std@@QBE_NABU01@@Z
-??9_Rb_tree_base_iterator@std@@QBE_NABU01@@Z
-??C?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??F?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@QAEAAU01@XZ
-?_M_clone_node@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@IAEPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@PAU32@@Z
-?_M_copy@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@AAEPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@PAU32@0@Z
-?_M_create_node@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@IAEPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?_M_empty_initialize@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@AAEXXZ
-?_M_erase@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@AAEXPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@Z
-?_M_find@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@ABEPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@ABVOUString@rtl@@@Z
-?_M_insert@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@AAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@PAU_Rb_tree_node_base@2@0ABU?$pair@$$CBVOUString@rtl@@V12@@2@0@Z
-?_M_leftmost@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@IBEAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@XZ
-?_M_rightmost@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@IBEAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@XZ
-?_M_root@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@IBEAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@XZ
-?_S_color@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@KAAA_NPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@Z
-?_S_key@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@KAABVOUString@rtl@@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@Z
-?_S_key@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@KAABVOUString@rtl@@PAU_Rb_tree_node_base@2@@Z
-?_S_left@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@KAAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@PAU32@@Z
-?_S_maximum@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@KAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@PAU32@@Z
-?_S_maximum@_Rb_tree_node_base@std@@SAPAU12@PAU12@@Z
-?_S_minimum@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@KAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@PAU32@@Z
-?_S_minimum@_Rb_tree_node_base@std@@SAPAU12@PAU12@@Z
-?_S_parent@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@KAAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@PAU32@@Z
-?_S_right@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@KAAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@PAU32@@Z
-?_S_value@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@KAAAU?$pair@$$CBVOUString@rtl@@V12@@2@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@Z
-?allocate@?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@std@@QBEPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@IPBX@Z
-?begin@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?clear@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAEXXZ
-?deallocate@?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@std@@@std@@QBEXPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@I@Z
-?end@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?end@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QBE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?end@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?end@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QBE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@XZ
-?erase@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAEXU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@@Z
-?erase@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAEXU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@@Z
-?find@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QBE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QBE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE?AU?$pair@U?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?insert_unique@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@std@@@4@@std@@QAE?AU?$pair@U?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-??0?$Reference@VXAttributeList@sax@xml@star@sun@com@@@uno@star@sun@com@@QAE@PAVXInterface@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXExtendedDocumentHandler@sax@xml@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@@1@I@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@8@@std@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@QAE@ABVOUString@rtl@@ABW4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@_N@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@1@AB_N@Z
-??0Color@@QAE@XZ
-??0ExternalImageItemDescriptor@framework@@QAE@XZ
-??0ExternalImageItemListDescriptor@framework@@QAE@EE@Z
-??0ImageHashMap@OReadImagesDocumentHandler@framework@@QAE@XZ
-??0ImageItemDescriptor@framework@@QAE@XZ
-??0ImageItemListDescriptor@framework@@QAE@EE@Z
-??0ImageListDescriptor@framework@@QAE@EE@Z
-??0ImageListItemDescriptor@framework@@QAE@XZ
-??0OReadImagesDocumentHandler@framework@@QAE@AAUImageListsDescriptor@1@@Z
-??0OWriteImagesDocumentHandler@framework@@QAE@ABUImageListsDescriptor@1@V?$Reference@VXDocumentHandler@sax@xml@star@sun@com@@@uno@star@sun@com@@@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@8@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@QAE@XZ
-??1ExternalImageItemDescriptor@framework@@QAE@XZ
-??1ExternalImageItemListDescriptor@framework@@QAE@XZ
-??1ImageHashMap@OReadImagesDocumentHandler@framework@@QAE@XZ
-??1ImageItemDescriptor@framework@@QAE@XZ
-??1ImageItemListDescriptor@framework@@QAE@XZ
-??1ImageListItemDescriptor@framework@@QAE@XZ
-??1OReadImagesDocumentHandler@framework@@UAE@XZ
-??1OWriteImagesDocumentHandler@framework@@UAE@XZ
-??1SvPtrarr@@QAE@XZ
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@0@0@Z
-??AExternalImageItemListDescriptor@framework@@QBEPAUExternalImageItemDescriptor@1@G@Z
-??AImageItemListDescriptor@framework@@QBEPAUImageItemDescriptor@1@G@Z
-??AImageListDescriptor@framework@@QBEPAUImageListItemDescriptor@1@G@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@1@@Z
-??_7OReadImagesDocumentHandler@framework@@6BOWeakObject@cppu@@@
-??_7OReadImagesDocumentHandler@framework@@6BXDocumentHandler@sax@xml@star@sun@com@@@
-??_7OWriteImagesDocumentHandler@framework@@6B@
-??_G?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@QAEPAXI@Z
-??_GExternalImageItemDescriptor@framework@@QAEPAXI@Z
-??_GExternalImageItemListDescriptor@framework@@QAEPAXI@Z
-??_GImageItemDescriptor@framework@@QAEPAXI@Z
-??_GImageItemListDescriptor@framework@@QAEPAXI@Z
-??_GImageListItemDescriptor@framework@@QAEPAXI@Z
-??_GOReadImagesDocumentHandler@framework@@UAEPAXI@Z
-??_GOWriteImagesDocumentHandler@framework@@UAEPAXI@Z
-?GetRGBColor@Color@@QBEKXZ
-?ImagesEntries@framework@@3PAUImageXMLEntryProperty@1@A
-?Insert@ExternalImageItemListDescriptor@framework@@QAEXABQAUExternalImageItemDescriptor@2@G@Z
-?Insert@ImageItemListDescriptor@framework@@QAEXABQAUImageItemDescriptor@2@G@Z
-?Insert@ImageListDescriptor@framework@@QAEXABQAUImageListItemDescriptor@2@G@Z
-?WriteExternalImage@OWriteImagesDocumentHandler@framework@@MAEXPBUExternalImageItemDescriptor@2@@Z
-?WriteExternalImageList@OWriteImagesDocumentHandler@framework@@MAEXPBVExternalImageItemListDescriptor@2@@Z
-?WriteImage@OWriteImagesDocumentHandler@framework@@MAEXPBUImageItemDescriptor@2@@Z
-?WriteImageList@OWriteImagesDocumentHandler@framework@@MAEXPBUImageListItemDescriptor@2@@Z
-?WriteImagesDocument@OWriteImagesDocumentHandler@framework@@QAEXXZ
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@1@ABU21@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@ABEII@Z
-?acquire@OReadImagesDocumentHandler@framework@@UAAXXZ
-?acquire@OReadImagesDocumentHandler@framework@@W3AAXXZ
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@IPBX@Z
-?characters@OReadImagesDocumentHandler@framework@@UAAXABVOUString@rtl@@@Z
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@2@XZ
-?endDocument@OReadImagesDocumentHandler@framework@@UAAXXZ
-?endElement@OReadImagesDocumentHandler@framework@@UAAXABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?getErrorLineString@OReadImagesDocumentHandler@framework@@AAE?AVOUString@rtl@@XZ
-?ignorableWhitespace@OReadImagesDocumentHandler@framework@@UAAXABVOUString@rtl@@@Z
-?insert@?$hash_map@VOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@@Z
-?iquery@?$Reference@VXAttributeList@sax@xml@star@sun@com@@@uno@star@sun@com@@CAPAVXAttributeList@sax@xml@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXExtendedDocumentHandler@sax@xml@star@sun@com@@@uno@star@sun@com@@CAPAVXExtendedDocumentHandler@sax@xml@345@PAVXInterface@2345@@Z
-?processingInstruction@OReadImagesDocumentHandler@framework@@UAAXABVOUString@rtl@@0@Z
-?queryInterface@OReadImagesDocumentHandler@framework@@UAA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?queryInterface@OReadImagesDocumentHandler@framework@@W3AA?AVAny@uno@star@sun@com@@ABVType@4567@@Z
-?release@OReadImagesDocumentHandler@framework@@UAAXXZ
-?release@OReadImagesDocumentHandler@framework@@W3AAXXZ
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@std@@@2@@std@@QAEXI@Z
-?setDocumentLocator@OReadImagesDocumentHandler@framework@@UAAXABV?$Reference@VXLocator@sax@xml@star@sun@com@@@uno@star@sun@com@@@Z
-?startDocument@OReadImagesDocumentHandler@framework@@UAAXXZ
-?startElement@OReadImagesDocumentHandler@framework@@UAAXABVOUString@rtl@@ABV?$Reference@VXAttributeList@sax@xml@star@sun@com@@@uno@star@sun@com@@@Z
-??0?$Reference@VXActiveDataSource@io@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXDocumentHandler@sax@xml@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXInputStream@io@star@sun@com@@@uno@star@sun@com@@QAE@PAVXInterface@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXOutputStream@io@star@sun@com@@@uno@star@sun@com@@QAE@PAVXInterface@1234@W4UnoReference_Query@1234@@Z
-??0?$Reference@VXParser@sax@xml@star@sun@com@@@uno@star@sun@com@@QAE@ABVBaseReference@1234@W4UnoReference_Query@1234@@Z
-??_7OOutputStreamWrapper@utl@@6BOWeakObject@cppu@@@
-?DeleteAndDestroy@ExternalImageItemListDescriptor@framework@@QAEXGG@Z
-?DeleteAndDestroy@ImageItemListDescriptor@framework@@QAEXGG@Z
-?DeleteAndDestroy@ImageListDescriptor@framework@@QAEXGG@Z
-?LoadImages@ImagesConfiguration@framework@@SAEAAVSvStream@@AAUImageListsDescriptor@2@@Z
-?StoreImages@ImagesConfiguration@framework@@SAEAAVSvStream@@ABUImageListsDescriptor@2@@Z
-?iquery@?$Reference@VXActiveDataSource@io@star@sun@com@@@uno@star@sun@com@@CAPAVXActiveDataSource@io@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXDocumentHandler@sax@xml@star@sun@com@@@uno@star@sun@com@@CAPAVXDocumentHandler@sax@xml@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXInputStream@io@star@sun@com@@@uno@star@sun@com@@CAPAVXInputStream@io@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXOutputStream@io@star@sun@com@@@uno@star@sun@com@@CAPAVXOutputStream@io@345@PAVXInterface@2345@@Z
-?iquery@?$Reference@VXParser@sax@xml@star@sun@com@@@uno@star@sun@com@@CAPAVXParser@sax@xml@345@PAVXInterface@2345@@Z
-?s_cd@?$WeakImplHelper1@VXOutputStream@io@star@sun@com@@@cppu@@0Uclass_data1@2@A
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@@1@I@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@8@@std@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@QAE@ABVOUString@rtl@@ABW4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@_N@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@1@AB_N@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@8@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@QAE@XZ
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@1@@Z
-??_G?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@QAEPAXI@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@1@ABU21@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@ABEII@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@IPBX@Z
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@2@XZ
-?find@?$hash_map@VOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$hash_map@VOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@std@@@2@@std@@QAEXI@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@@1@I@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@8@@std@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@QAE@ABVOUString@rtl@@ABW4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@_N@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@1@AB_N@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@8@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@QAE@XZ
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@1@@Z
-??_G?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@QAEPAXI@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@1@ABU21@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@ABEII@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@IPBX@Z
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@2@XZ
-?find@?$hash_map@VOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$hash_map@VOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@std@@@2@@std@@QAEXI@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@@1@I@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@8@@std@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@QAE@ABVOUString@rtl@@ABW4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@_N@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@1@AB_N@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@8@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@QAE@XZ
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@1@@Z
-??_G?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@QAEPAXI@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@1@ABU21@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@ABEII@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@IPBX@Z
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@2@XZ
-?find@?$hash_map@VOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$hash_map@VOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@std@@@2@@std@@QAEXI@Z
-??0?$_Deque_base@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@QAE@ABV?$allocator@VXMLNamespaces@framework@@@1@I@Z
-??0?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@std@@@std@@QAE@ABU01@@Z
-??0?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@std@@@std@@QAE@XZ
-??0?$_Deque_iterator_base@VXMLNamespaces@framework@@@std@@QAE@XZ
-??0?$_STLP_alloc_proxy@IVXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@QAE@ABV?$allocator@VXMLNamespaces@framework@@@1@I@Z
-??0?$_STLP_alloc_proxy@PAHHV?$allocator@H@std@@@std@@QAE@ABV?$allocator@H@1@PAH@Z
-??0?$_STLP_alloc_proxy@PAPAVXMLNamespaces@framework@@PAV12@V?$allocator@PAVXMLNamespaces@framework@@@std@@@std@@QAE@ABV?$allocator@PAVXMLNamespaces@framework@@@1@PAPAVXMLNamespaces@framework@@@Z
-??0?$_Vector_base@HV?$allocator@H@std@@@std@@QAE@ABV?$allocator@H@1@@Z
-??0?$allocator@H@std@@QAE@ABV01@@Z
-??0?$allocator@H@std@@QAE@XZ
-??0?$allocator@PAVXMLNamespaces@framework@@@std@@QAE@ABV01@@Z
-??0?$allocator@PAVXMLNamespaces@framework@@@std@@QAE@ABV?$allocator@VXMLNamespaces@framework@@@1@@Z
-??0?$allocator@VXMLNamespaces@framework@@@std@@QAE@ABV01@@Z
-??0?$allocator@VXMLNamespaces@framework@@@std@@QAE@XZ
-??0?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@QAE@ABV?$allocator@VXMLNamespaces@framework@@@1@@Z
-??0?$stack@VXMLNamespaces@framework@@V?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@@std@@QAE@XZ
-??0?$vector@HV?$allocator@H@std@@@std@@QAE@ABV?$allocator@H@1@@Z
-??1?$_Deque_base@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@IVXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAHHV?$allocator@H@std@@@std@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAPAVXMLNamespaces@framework@@PAV12@V?$allocator@PAVXMLNamespaces@framework@@@std@@@std@@QAE@XZ
-??1?$_Vector_base@HV?$allocator@H@std@@@std@@QAE@XZ
-??1?$allocator@H@std@@QAE@XZ
-??1?$allocator@PAVXMLNamespaces@framework@@@std@@QAE@XZ
-??1?$allocator@VXMLNamespaces@framework@@@std@@QAE@XZ
-??1?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@QAE@XZ
-??1?$stack@VXMLNamespaces@framework@@V?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$vector@HV?$allocator@H@std@@@std@@QAE@XZ
-??9std@@YA_NABU?$_Deque_iterator_base@VXMLNamespaces@framework@@@0@0@Z
-??A?$vector@HV?$allocator@H@std@@@std@@QAEAAHI@Z
-??D?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@std@@@std@@QBEAAVXMLNamespaces@framework@@XZ
-??E?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@std@@@std@@QAEAAU01@XZ
-??F?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@std@@@std@@QAEAAU01@XZ
-??G?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@std@@@std@@QBEHABU01@@Z
-?_Construct@std@@YAXPAHABH@Z
-?_Construct@std@@YAXPAVXMLNamespaces@framework@@ABV23@@Z
-?_Destroy@std@@YAXPAH0@Z
-?_Destroy@std@@YAXPAVXMLNamespaces@framework@@@Z
-?_Destroy@std@@YAXU?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@std@@@1@0@Z
-?_IsOKToMemCpy@std@@YA?AU?$_OKToMemCpy@PAVXMLNamespaces@framework@@PAV12@@1@PAPAVXMLNamespaces@framework@@0@Z
-?_M_clear@?$vector@HV?$allocator@H@std@@@std@@IAEXXZ
-?_M_create_nodes@?$_Deque_base@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@IAEXPAPAVXMLNamespaces@framework@@0@Z
-?_M_decrement@?$_Deque_iterator_base@VXMLNamespaces@framework@@@std@@QAEXXZ
-?_M_destroy_nodes@?$_Deque_base@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@IAEXPAPAVXMLNamespaces@framework@@0@Z
-?_M_increment@?$_Deque_iterator_base@VXMLNamespaces@framework@@@std@@QAEXXZ
-?_M_initialize_map@?$_Deque_base@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@IAEXI@Z
-?_M_insert_overflow@?$vector@HV?$allocator@H@std@@@std@@IAEXPAHABHABU__true_type@2@I_N@Z
-?_M_pop_back_aux@?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@IAEXXZ
-?_M_push_back_aux_v@?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@IAEXABVXMLNamespaces@framework@@@Z
-?_M_reallocate_map@?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@IAEXI_N@Z
-?_M_reserve_map_at_back@?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@IAEXI@Z
-?_M_set@?$vector@HV?$allocator@H@std@@@std@@IAEXPAH00@Z
-?_M_set_node@?$_Deque_iterator_base@VXMLNamespaces@framework@@@std@@QAEXPAPAVXMLNamespaces@framework@@@Z
-?_M_subtract@?$_Deque_iterator_base@VXMLNamespaces@framework@@@std@@QBEHABU12@@Z
-?_Ret@?$_BothPtrType@PAPAVXMLNamespaces@framework@@PAPAV12@@std@@SA?AU__true_type@2@XZ
-?_Ret@?$_OKToMemCpy@PAVXMLNamespaces@framework@@PAV12@@std@@SA?AU__true_type@2@XZ
-?__copy_aux@std@@YAPAPAVXMLNamespaces@framework@@PAPAV23@00ABU__true_type@1@@Z
-?__copy_backward_aux@std@@YAPAPAVXMLNamespaces@framework@@PAPAV23@00ABU__true_type@1@@Z
-?__copy_backward_ptrs@std@@YAPAPAVXMLNamespaces@framework@@PAPAV23@00ABU__true_type@1@@Z
-?__copy_ptrs@std@@YAPAPAVXMLNamespaces@framework@@PAPAV23@00ABU__true_type@1@@Z
-?__copy_trivial@std@@YAPAXPBX0PAX@Z
-?__copy_trivial_backward@std@@YAPAXPBX0PAX@Z
-?__destroy@std@@YAXPAH00@Z
-?__destroy@std@@YAXU?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@std@@@1@0PAVXMLNamespaces@framework@@@Z
-?__destroy_aux@std@@YAXPAH0ABU__true_type@1@@Z
-?__destroy_aux@std@@YAXU?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@std@@@1@0ABU__false_type@1@@Z
-?allocate@?$allocator@H@std@@QBEPAHIPBX@Z
-?allocate@?$allocator@PAVXMLNamespaces@framework@@@std@@QBEPAPAVXMLNamespaces@framework@@IPBX@Z
-?allocate@?$allocator@VXMLNamespaces@framework@@@std@@QBEPAVXMLNamespaces@framework@@IPBX@Z
-?back@?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@QAEAAVXMLNamespaces@framework@@XZ
-?begin@?$vector@HV?$allocator@H@std@@@std@@QAEPAHXZ
-?buffer_size@?$_Deque_base@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@SAIXZ
-?copy@std@@YAPAPAVXMLNamespaces@framework@@PAPAV23@00@Z
-?copy_backward@std@@YAPAPAVXMLNamespaces@framework@@PAPAV23@00@Z
-?deallocate@?$allocator@H@std@@QBEXPAHI@Z
-?deallocate@?$allocator@PAVXMLNamespaces@framework@@@std@@QBEXPAPAVXMLNamespaces@framework@@I@Z
-?deallocate@?$allocator@VXMLNamespaces@framework@@@std@@QBEXPAVXMLNamespaces@framework@@I@Z
-?fill_n@std@@YAPAHPAHIABH@Z
-?pop@?$stack@VXMLNamespaces@framework@@V?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@@std@@QAEXXZ
-?pop_back@?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@QAEXXZ
-?push@?$stack@VXMLNamespaces@framework@@V?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@@std@@QAEXABVXMLNamespaces@framework@@@Z
-?push_back@?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@QAEXABVXMLNamespaces@framework@@@Z
-?push_back@?$vector@HV?$allocator@H@std@@@std@@QAEXABH@Z
-?size@?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@QBEIXZ
-?size@?$stack@VXMLNamespaces@framework@@V?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@@std@@QBEIXZ
-?size@?$vector@HV?$allocator@H@std@@@std@@QBEIXZ
-?top@?$stack@VXMLNamespaces@framework@@V?$deque@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@std@@@std@@@std@@QAEAAVXMLNamespaces@framework@@XZ
-?value_type@std@@YAPAHPBH@Z
-?value_type@std@@YAPAPAVXMLNamespaces@framework@@PBQAV23@@Z
-?value_type@std@@YAPAVXMLNamespaces@framework@@ABU?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@std@@@1@@Z
-?CreateAddonMenu@MenuConfiguration@framework@@QAEPAVPopupMenu@@AAV?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@@Z
-?GetImageFromURL@framework@@YA?AVImage@@AAV?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@EE@Z
-?SetImageProducer@framework@@YAP6A?AVImage@@AAV?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@ABVOUString@rtl@@EE@ZP6A?AV2@01EE@Z@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@@2@@std@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@@1@I@Z
-??0?$allocator@PAX@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@@std@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@@std@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@8@@std@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@QAE@ABVOUString@rtl@@ABW4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@_N@std@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@1@AB_N@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@@2@@std@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@@std@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@8@@std@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@QAE@XZ
-??9std@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QBEPBU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QBEABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@1@@Z
-??_G?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@QAEPAXI@Z
-?_Construct@std@@YAXPAU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@1@ABU21@@Z
-?_Destroy@std@@YAXPAU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@ABEIABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@ABEIABVOUString@rtl@@I@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@AAEXI@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@ABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@ABEII@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@@std@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@IPBX@Z
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@std@@@std@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@2@XZ
-?find@?$hash_map@VOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$hash_map@VOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@std@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@8@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@std@@@2@@std@@QAEXI@Z
-??0?$_STLP_alloc_proxy@PAUTagAttribute@framework@@U12@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@PAUTagAttribute@framework@@U12@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAE@ABV?$allocator@UTagAttribute@framework@@@1@PAUTagAttribute@framework@@@Z
-??0?$_Vector_base@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAE@ABV?$allocator@UTagAttribute@framework@@@1@@Z
-??0?$allocator@UTagAttribute@framework@@@std@@QAE@ABV01@@Z
-??0?$allocator@UTagAttribute@framework@@@std@@QAE@XZ
-??0?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAE@ABV?$allocator@UTagAttribute@framework@@@1@@Z
-??1?$_STLP_alloc_proxy@PAUTagAttribute@framework@@U12@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAE@XZ
-??1?$_Vector_base@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAE@XZ
-??1?$allocator@UTagAttribute@framework@@@std@@QAE@XZ
-??1?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAE@XZ
-??4?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAEAAV01@ABV01@@Z
-??A?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAEAAUTagAttribute@framework@@I@Z
-??_7AttributeListImpl@framework@@6BOWeakObject@cppu@@@
-?_Construct@std@@YAXPAUTagAttribute@framework@@ABU23@@Z
-?_Destroy@std@@YAXPAUTagAttribute@framework@@0@Z
-?_Destroy@std@@YAXPAUTagAttribute@framework@@@Z
-?_M_allocate_and_copy@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@IAEPAUTagAttribute@framework@@IPAU34@0@Z
-?_M_allocate_and_copy@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@IAEPAUTagAttribute@framework@@IPBU34@0@Z
-?_M_clear@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@IAEXXZ
-?_M_insert_overflow@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@IAEXPAUTagAttribute@framework@@ABU34@ABU__false_type@2@I_N@Z
-?_M_set@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@IAEXPAUTagAttribute@framework@@00@Z
-?__copy@std@@YAPAUTagAttribute@framework@@PBU23@0PAU23@ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_ptrs@std@@YAPAUTagAttribute@framework@@PBU23@0PAU23@ABU__false_type@1@@Z
-?__destroy@std@@YAXPAUTagAttribute@framework@@00@Z
-?__destroy_aux@std@@YAXPAUTagAttribute@framework@@0ABU__false_type@1@@Z
-?__uninitialized_copy@std@@YAPAUTagAttribute@framework@@PAU23@00ABU__false_type@1@@Z
-?__uninitialized_copy@std@@YAPAUTagAttribute@framework@@PBU23@0PAU23@ABU__false_type@1@@Z
-?__uninitialized_fill_n@std@@YAPAUTagAttribute@framework@@PAU23@IABU23@ABU__false_type@1@@Z
-?allocate@?$allocator@UTagAttribute@framework@@@std@@QBEPAUTagAttribute@framework@@IPBX@Z
-?begin@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAEPAUTagAttribute@framework@@XZ
-?capacity@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QBEIXZ
-?deallocate@?$allocator@UTagAttribute@framework@@@std@@QBEXPAUTagAttribute@framework@@I@Z
-?distance_type@std@@YAPAHPBUTagAttribute@framework@@@Z
-?end@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAEPAUTagAttribute@framework@@XZ
-?iterator_category@std@@YA?AUrandom_access_iterator_tag@1@PBUTagAttribute@framework@@@Z
-?push_back@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAEXABUTagAttribute@framework@@@Z
-?reserve@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAEXI@Z
-?s_cd@?$WeakImplHelper1@VXAttributeList@sax@xml@star@sun@com@@@cppu@@0Uclass_data1@2@A
-?size@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QBEIXZ
-?swap@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@std@@@std@@QAEXAAV12@@Z
-?swap@std@@YAXAAPAUTagAttribute@framework@@0@Z
-?swap@std@@YAXAAV?$_STLP_alloc_proxy@PAUTagAttribute@framework@@U12@V?$allocator@UTagAttribute@framework@@@std@@@1@0@Z
-?value_type@std@@YAPAUTagAttribute@framework@@PBU23@@Z
-??0?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??0?$Reference@VXModel@frame@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??0?$Sequence@V?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??0FrameListAnalyzer@framework@@QAE@ABV?$Reference@VXFramesSupplier@frame@star@sun@com@@@uno@star@sun@com@@ABV?$Reference@VXFrame@frame@star@sun@com@@@3456@K@Z
-??1?$Reference@VXController@frame@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Reference@VXFrames@frame@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Reference@VXModel@frame@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1?$Sequence@V?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??1FrameListAnalyzer@framework@@UAE@XZ
-??4?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@QAAAAV01234@ABV01234@@Z
-??4?$Reference@VXModel@frame@star@sun@com@@@uno@star@sun@com@@QAAAAV01234@ABV01234@@Z
-??8BaseReference@uno@star@sun@com@@QBAEABV01234@@Z
-??A?$Sequence@V?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAAAAV?$Reference@VXFrame@frame@star@sun@com@@@1234@J@Z
-??C?$Reference@VXController@frame@star@sun@com@@@uno@star@sun@com@@QBAPAVXController@frame@234@XZ
-??C?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@QBAPAVXFrame@frame@234@XZ
-??C?$Reference@VXFramesSupplier@frame@star@sun@com@@@uno@star@sun@com@@QBAPAVXFramesSupplier@frame@234@XZ
-??_2uno@star@sun@com@@YAEABVAny@0123@AAV?$Reference@VXFrame@frame@star@sun@com@@@0123@@Z
-??_7FrameListAnalyzer@framework@@6B@
-??_C@_0BK@ENFAHHAO@com?4sun?4star?4frame?4XFrame?$AA@
-??_GFrameListAnalyzer@framework@@UAEPAXI@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXFrame@frame@star@sun@com@@@2345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Sequence@V?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@@2345@@Z
-?impl_analyze@FrameListAnalyzer@framework@@AAEXXZ
-?realloc@?$Sequence@V?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QAAXJ@Z
-?s_pType@?$Sequence@V?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@2PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_frame_XFrame@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Reference@VXFrame@frame@star@sun@com@@@3456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?set@?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@QAAEPAVXFrame@frame@345@@Z
-?set@?$Reference@VXModel@frame@star@sun@com@@@uno@star@sun@com@@QAAEPAVXModel@frame@345@@Z
-?getMode@ConfigAccess@framework@@UBE?AW4EOpenMode@12@XZ
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@2@@_STL@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@1@I@Z
-??0?$_STLP_alloc_proxy@PAVOUString@rtl@@V12@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAE@ABV?$allocator@VOUString@rtl@@@1@PAVOUString@rtl@@@Z
-??0?$_Vector_base@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAE@ABV?$allocator@VOUString@rtl@@@1@@Z
-??0?$_Vector_base@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAE@IABV?$allocator@VOUString@rtl@@@1@@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@1@@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@QAE@XZ
-??0?$allocator@VOUString@rtl@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@VOUString@rtl@@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UProtocolHandler@framework@@UOUStringHashCode@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@QAE@ABVOUString@rtl@@ABUProtocolHandler@framework@@@Z
-??0?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAE@ABV?$allocator@VOUString@rtl@@@1@@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAVOUString@rtl@@V12@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAE@XZ
-??1?$_Vector_base@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@VOUString@rtl@@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UProtocolHandler@framework@@UOUStringHashCode@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@QAE@XZ
-??1?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAE@XZ
-??4?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAEAAV01@ABV01@@Z
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@0@0@Z
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@0@0@Z
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@0@0@Z
-??A?$hash_map@VOUString@rtl@@UProtocolHandler@framework@@UOUStringHashCode@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@7@@_STL@@QAEAAUProtocolHandler@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAEAAVOUString@rtl@@ABV23@@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEPAU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QBEAAU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEAAU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEAAU01@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@V12@@1@@Z
-??R?$less@I@_STL@@QBE_NABI0@Z
-??_G?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@QAEPAXI@Z
-?_Construct@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@1@ABU21@@Z
-?_Construct@_STL@@YAXPAVOUString@rtl@@ABV23@@Z
-?_Destroy@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@1@@Z
-?_Destroy@_STL@@YAXPAVOUString@rtl@@0@Z
-?_Destroy@_STL@@YAXPAVOUString@rtl@@@Z
-?_M_allocate_and_copy@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@IAEPAVOUString@rtl@@IPBV34@0@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@V12@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_clear@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@IAEXXZ
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QAEAAU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEAAU?$pair@$$CBVOUString@rtl@@V12@@2@ABU32@@Z
-?_M_list@?$_Stl_prime@_N@_STL@@2QBIB
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEII@Z
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@XZ
-?__advance@_STL@@YAXAAPBIHABUrandom_access_iterator_tag@1@@Z
-?__copy@_STL@@YAPAVOUString@rtl@@PBV23@0PAV23@ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_ptrs@_STL@@YAPAVOUString@rtl@@PBV23@0PAV23@ABU__false_type@1@@Z
-?__destroy@_STL@@YAXPAVOUString@rtl@@00@Z
-?__destroy_aux@_STL@@YAXPAVOUString@rtl@@0ABU__false_type@1@@Z
-?__distance@_STL@@YAHABQBI0ABUrandom_access_iterator_tag@1@@Z
-?__less@_STL@@YA?AU?$less@I@1@PAI@Z
-?__lower_bound@_STL@@YAPBIPBI0ABIU?$less@I@1@PAH@Z
-?__uninitialized_copy@_STL@@YAPAVOUString@rtl@@PBV23@0PAV23@ABU__false_type@1@@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@IPBX@Z
-?allocate@?$allocator@VOUString@rtl@@@_STL@@QBEPAVOUString@rtl@@IPBX@Z
-?begin@?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?begin@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAEPAVOUString@rtl@@XZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEIXZ
-?capacity@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QBEIXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@I@Z
-?deallocate@?$allocator@VOUString@rtl@@@_STL@@QBEXPAVOUString@rtl@@I@Z
-?distance@_STL@@YAHABQBI0@Z
-?distance_type@_STL@@YAPAHPBVOUString@rtl@@@Z
-?end@?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?end@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAEPAVOUString@rtl@@XZ
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?findPatternKey@PatternHash@framework@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABVOUString@rtl@@@Z
-?get_allocator@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QBE?AV?$allocator@VOUString@rtl@@@2@XZ
-?iterator_category@_STL@@YA?AUrandom_access_iterator_tag@1@PBI@Z
-?iterator_category@_STL@@YA?AUrandom_access_iterator_tag@1@PBVOUString@rtl@@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEXI@Z
-?size@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QBEIXZ
-?swap@?$hash_map@VOUString@rtl@@UProtocolHandler@framework@@UOUStringHashCode@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@7@@_STL@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@V12@UOUStringHashCode@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@2@@_STL@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEXAAV12@@Z
-?swap@_STL@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@1@0@Z
-?swap@_STL@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@0@Z
-?swap@_STL@@YAXAAU?$equal_to@VOUString@rtl@@@1@0@Z
-?swap@_STL@@YAXAAUOUStringHashCode@framework@@0@Z
-?swap@_STL@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UProtocolHandler@framework@@@_STL@@@_STL@@@2@@1@0@Z
-?swap@_STL@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@2@@1@0@Z
-?value_type@_STL@@YAPAVOUString@rtl@@PBV23@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$_STLP_alloc_proxy@PAVOUString@rtl@@V12@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@1@@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@1@@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@1@@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@1@@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@1@@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@QAE@XZ
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAE@ABV01@@Z
-??0?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@ABV01@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAE@IABUStringHashFunction@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@QAE@ABVOUString@rtl@@ABUContentHandler@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@QAE@ABVOUString@rtl@@ABUDetector@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@QAE@ABVOUString@rtl@@ABUFileType@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@QAE@ABVOUString@rtl@@ABUFilter@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@QAE@ABVOUString@rtl@@ABULoader@framework@@@Z
-??0?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@QAE@ABVOUString@rtl@@ABVStringList@framework@@@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@7@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@QAE@XZ
-??4?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAEAAV01@ABV01@@Z
-??4?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEAAV01@ABV01@@Z
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@0@0@Z
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@0@0@Z
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@0@0@Z
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@0@0@Z
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@0@0@Z
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@0@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@0@@Z
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@0@0@Z
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@0@0@Z
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@0@0@Z
-??A?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@7@@_STL@@QAEAAUContentHandler@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@7@@_STL@@QAEAAUDetector@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QAEAAUFileType@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@7@@_STL@@QAEAAUFilter@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@7@@_STL@@QAEAAULoader@framework@@ABVOUString@rtl@@@Z
-??A?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAEAAVOUString@rtl@@ABV23@@Z
-??A?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@7@@_STL@@QAEAAVStringList@framework@@ABVOUString@rtl@@@Z
-??A?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QBEABVOUString@rtl@@I@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEPAU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QBEAAU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QBEAAU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QBEAAU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QBEAAU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QBEAAU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEAAU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QBEAAU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEAAU01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEAAU01@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@@Z
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@@Z
-??_G?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@QAEPAXI@Z
-??_G?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@QAEPAXI@Z
-?_Construct@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@ABU21@@Z
-?_Construct@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@ABU21@@Z
-?_Construct@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@ABU21@@Z
-?_Construct@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@ABU21@@Z
-?_Construct@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@ABU21@@Z
-?_Construct@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@ABU21@@Z
-?_Destroy@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@@Z
-?_Destroy@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@@Z
-?_Destroy@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@@Z
-?_Destroy@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@@Z
-?_Destroy@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@@Z
-?_Destroy@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@V12@@2@I@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_copy_from@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@AAEXABV12@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAEAAU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAEAAU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAEAAU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAEAAU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAEAAU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEAAU?$pair@$$CBVOUString@rtl@@V12@@2@ABU32@@Z
-?_M_insert@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAEAAU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@2@ABU32@@Z
-?_M_insert_overflow@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@IAEXPAVOUString@rtl@@ABV34@ABU__false_type@2@I_N@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@ABEII@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?_M_set@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@IAEXPAVOUString@rtl@@00@Z
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@XZ
-?__copy@_STL@@YAPAVOUString@rtl@@PAV23@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_backward@_STL@@YAPAVOUString@rtl@@PAV23@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_backward_ptrs@_STL@@YAPAVOUString@rtl@@PAV23@00ABU__false_type@1@@Z
-?__copy_ptrs@_STL@@YAPAVOUString@rtl@@PAV23@00ABU__false_type@1@@Z
-?__find@_STL@@YAPAVOUString@rtl@@PAV23@0ABV23@ABUrandom_access_iterator_tag@1@@Z
-?__uninitialized_copy@_STL@@YAPAVOUString@rtl@@PAV23@00ABU__false_type@1@@Z
-?__uninitialized_fill_n@_STL@@YAPAVOUString@rtl@@PAV23@IABV23@ABU__false_type@1@@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@IPBX@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@IPBX@Z
-?begin@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?begin@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QBEPBVOUString@rtl@@XZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEIXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEXXZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@I@Z
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@2@XZ
-?end@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QBEPBVOUString@rtl@@XZ
-?erase@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@7@@_STL@@QAEIABVOUString@rtl@@@Z
-?erase@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@7@@_STL@@QAEIABVOUString@rtl@@@Z
-?erase@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QAEIABVOUString@rtl@@@Z
-?erase@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@7@@_STL@@QAEIABVOUString@rtl@@@Z
-?erase@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@7@@_STL@@QAEIABVOUString@rtl@@@Z
-?erase@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAEIABVOUString@rtl@@@Z
-?erase@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAEIABVOUString@rtl@@@Z
-?erase@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAEIABVOUString@rtl@@@Z
-?erase@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAEIABVOUString@rtl@@@Z
-?erase@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAEIABVOUString@rtl@@@Z
-?erase@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAEPAVOUString@rtl@@PAV34@@Z
-?find@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@_STL@@YAPAVOUString@rtl@@PAV23@0ABV23@@Z
-?get_allocator@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBE?AV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@XZ
-?insert@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAEPAVOUString@rtl@@PAV34@ABV34@@Z
-?push_back@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAEXABVOUString@rtl@@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEXI@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-?size@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEIXZ
-?swap@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@7@@_STL@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@7@@_STL@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@7@@_STL@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@7@@_STL@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@V12@UStringHashFunction@framework@@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@6@@_STL@@QAEXAAV12@@Z
-?swap@?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@7@@_STL@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEXAAV12@@Z
-?swap@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAEXAAV12@@Z
-?swap@?$vector@VOUString@rtl@@V?$allocator@VOUString@rtl@@@_STL@@@_STL@@QAEXAAV12@@Z
-?swap@_STL@@YAXAAPAVOUString@rtl@@0@Z
-?swap@_STL@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@1@0@Z
-?swap@_STL@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@1@0@Z
-?swap@_STL@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@1@0@Z
-?swap@_STL@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@1@0@Z
-?swap@_STL@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@1@0@Z
-?swap@_STL@@YAXAAU?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@1@0@Z
-?swap@_STL@@YAXAAUStringHashFunction@framework@@0@Z
-?swap@_STL@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@_STL@@@2@@1@0@Z
-?swap@_STL@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@_STL@@@2@@1@0@Z
-?swap@_STL@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@_STL@@@2@@1@0@Z
-?swap@_STL@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@_STL@@@2@@1@0@Z
-?swap@_STL@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@_STL@@@2@@1@0@Z
-?swap@_STL@@YAXAAV?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@_STL@@@2@@1@0@Z
-?swap@_STL@@YAXAAV?$_STLP_alloc_proxy@PAVOUString@rtl@@V12@V?$allocator@VOUString@rtl@@@_STL@@@1@0@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@1@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@@Z
-??0?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@@_STL@@QAE@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0@Z
-??0?$_Temporary_buffer@PAVOUString@rtl@@V12@@_STL@@QAE@PAVOUString@rtl@@0@Z
-??0?$_Vector_base@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@1@@Z
-??0?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@_STL@@QAE@XZ
-??0?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@1@@Z
-??1?$_STLP_alloc_proxy@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QAE@XZ
-??1?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@@_STL@@QAE@XZ
-??1?$_Temporary_buffer@PAVOUString@rtl@@V12@@_STL@@QAE@XZ
-??1?$_Vector_base@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QAE@XZ
-??1?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@_STL@@QAE@XZ
-??1?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QAE@XZ
-??8_STL@@YA_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@0@0@Z
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@0@0@Z
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@0@0@Z
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@0@0@Z
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@0@0@Z
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@0@0@Z
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@XZ
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@UDetector@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@UFileType@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@UFilter@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@ULoader@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@VStringList@framework@@@1@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAEAAU01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAEAAU01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAEAAU01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAEAAU01@XZ
-??E?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAEAAU01@XZ
-??RcompareByOrder@framework@@QBEHABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@0@Z
-??RmatchFlags@framework@@QBE_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@Z
-??RnotMatchDocumentService@framework@@QBE_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@Z
-??RnotMatchFirstUserData@framework@@QBE_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@Z
-??RselectByOrder@framework@@QBE_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@Z
-??RselectDefault@framework@@QBE_NABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@Z
-??RsortByProp@framework@@QBEHABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@0@Z
-?_Construct@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@ABU21@@Z
-?_Destroy@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0@Z
-?_Destroy@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@@Z
-?_IsOKToMemCpy@_STL@@YA?AU?$_OKToMemCpy@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@@1@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0@Z
-?_IsOKToMemCpy@_STL@@YA?AU?$_OKToMemCpy@VOUString@rtl@@V12@@1@PAVOUString@rtl@@0@Z
-?_Is_POD@_STL@@YA?AU?$_IsPOD@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@1@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@@Z
-?_Is_POD@_STL@@YA?AU?$_IsPOD@VOUString@rtl@@@1@PAVOUString@rtl@@@Z
-?_M_allocate_buffer@?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@@_STL@@AAEXXZ
-?_M_allocate_buffer@?$_Temporary_buffer@PAVOUString@rtl@@V12@@_STL@@AAEXXZ
-?_M_clear@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@IAEXXZ
-?_M_initialize_buffer@?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@@_STL@@AAEXABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@ABU__false_type@2@@Z
-?_M_initialize_buffer@?$_Temporary_buffer@PAVOUString@rtl@@V12@@_STL@@AAEXABVOUString@rtl@@ABU__false_type@2@@Z
-?_M_insert_overflow@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@IAEXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@ABU32@ABU__false_type@2@I_N@Z
-?_M_set@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@IAEXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@00@Z
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@XZ
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@XZ
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@XZ
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@XZ
-?_M_skip_to_next@?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@XZ
-?_Ret@?$_BothPtrType@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@PAU12@@_STL@@SA?AU__true_type@2@XZ
-?_Ret@?$_BothPtrType@PAVOUString@rtl@@PAV12@@_STL@@SA?AU__true_type@2@XZ
-?_Ret@?$_IsPOD@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@_STL@@SA?AU__false_type@2@XZ
-?_Ret@?$_IsPOD@VOUString@rtl@@@_STL@@SA?AU__false_type@2@XZ
-?_Ret@?$_OKToMemCpy@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@@_STL@@SA?AU__false_type@2@XZ
-?_Ret@?$_OKToMemCpy@VOUString@rtl@@V12@@_STL@@SA?AU__false_type@2@XZ
-?__advance@_STL@@YAXAAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@HABUrandom_access_iterator_tag@1@@Z
-?__advance@_STL@@YAXAAPAVOUString@rtl@@HABUrandom_access_iterator_tag@1@@Z
-?__chunk_insertion_sort@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0HVcompareByOrder@framework@@@Z
-?__chunk_insertion_sort@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0HVsortByProp@framework@@@Z
-?__chunk_insertion_sort@_STL@@YAXPAVOUString@rtl@@0HU?$less@VOUString@rtl@@@1@@Z
-?__copy@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_aux@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00ABU__true_type@1@@Z
-?__copy_aux@_STL@@YAPAVOUString@rtl@@PAV23@00ABU__true_type@1@@Z
-?__copy_backward@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_backward_aux@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00ABU__true_type@1@@Z
-?__copy_backward_aux@_STL@@YAPAVOUString@rtl@@PAV23@00ABU__true_type@1@@Z
-?__copy_backward_ptrs@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00ABU__false_type@1@@Z
-?__copy_ptrs@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00ABU__false_type@1@@Z
-?__destroy@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00@Z
-?__destroy_aux@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0ABU__false_type@1@@Z
-?__distance@_STL@@YAHABQAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0ABUrandom_access_iterator_tag@1@@Z
-?__distance@_STL@@YAHABQAVOUString@rtl@@0ABUrandom_access_iterator_tag@1@@Z
-?__find_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VmatchFlags@framework@@ABUrandom_access_iterator_tag@1@@Z
-?__find_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VnotMatchDocumentService@framework@@ABUrandom_access_iterator_tag@1@@Z
-?__find_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VnotMatchFirstUserData@framework@@ABUrandom_access_iterator_tag@1@@Z
-?__gcd@_STL@@YAHHH@Z
-?__inplace_stable_partition@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VselectByOrder@framework@@H@Z
-?__inplace_stable_partition@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VselectDefault@framework@@H@Z
-?__inplace_stable_sort@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0VcompareByOrder@framework@@@Z
-?__inplace_stable_sort@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0VsortByProp@framework@@@Z
-?__inplace_stable_sort@_STL@@YAXPAVOUString@rtl@@0U?$less@VOUString@rtl@@@1@@Z
-?__insertion_sort@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0VcompareByOrder@framework@@@Z
-?__insertion_sort@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0VsortByProp@framework@@@Z
-?__insertion_sort@_STL@@YAXPAVOUString@rtl@@0U?$less@VOUString@rtl@@@1@@Z
-?__less@_STL@@YA?AU?$less@VOUString@rtl@@@1@PAVOUString@rtl@@@Z
-?__linear_insert@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0U21@VcompareByOrder@framework@@@Z
-?__linear_insert@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0U21@VsortByProp@framework@@@Z
-?__linear_insert@_STL@@YAXPAVOUString@rtl@@0V23@U?$less@VOUString@rtl@@@1@@Z
-?__lower_bound@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0ABU21@VcompareByOrder@framework@@PAH@Z
-?__lower_bound@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0ABU21@VsortByProp@framework@@PAH@Z
-?__lower_bound@_STL@@YAPAVOUString@rtl@@PAV23@0ABV23@U?$less@VOUString@rtl@@@1@PAH@Z
-?__merge_adaptive@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00HH0HVcompareByOrder@framework@@@Z
-?__merge_adaptive@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00HH0HVsortByProp@framework@@@Z
-?__merge_adaptive@_STL@@YAXPAVOUString@rtl@@00HH0HU?$less@VOUString@rtl@@@1@@Z
-?__merge_backward@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0000VcompareByOrder@framework@@@Z
-?__merge_backward@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0000VsortByProp@framework@@@Z
-?__merge_backward@_STL@@YAPAVOUString@rtl@@PAV23@0000U?$less@VOUString@rtl@@@1@@Z
-?__merge_sort_loop@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00HVcompareByOrder@framework@@@Z
-?__merge_sort_loop@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00HVsortByProp@framework@@@Z
-?__merge_sort_loop@_STL@@YAXPAVOUString@rtl@@00HU?$less@VOUString@rtl@@@1@@Z
-?__merge_sort_with_buffer@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00PAHVcompareByOrder@framework@@@Z
-?__merge_sort_with_buffer@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00PAHVsortByProp@framework@@@Z
-?__merge_sort_with_buffer@_STL@@YAXPAVOUString@rtl@@00PAHU?$less@VOUString@rtl@@@1@@Z
-?__merge_without_buffer@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00HHVcompareByOrder@framework@@@Z
-?__merge_without_buffer@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00HHVsortByProp@framework@@@Z
-?__merge_without_buffer@_STL@@YAXPAVOUString@rtl@@00HHU?$less@VOUString@rtl@@@1@@Z
-?__rotate@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00PAH0@Z
-?__rotate@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00PAHABUrandom_access_iterator_tag@1@@Z
-?__rotate@_STL@@YAPAVOUString@rtl@@PAV23@00PAH0@Z
-?__rotate@_STL@@YAPAVOUString@rtl@@PAV23@00PAHABUrandom_access_iterator_tag@1@@Z
-?__rotate_adaptive@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00HH0H@Z
-?__rotate_adaptive@_STL@@YAPAVOUString@rtl@@PAV23@00HH0H@Z
-?__stable_partition_adaptive@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VselectByOrder@framework@@H0H@Z
-?__stable_partition_adaptive@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VselectDefault@framework@@H0H@Z
-?__stable_partition_aux@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VselectByOrder@framework@@0PAH@Z
-?__stable_partition_aux@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VselectDefault@framework@@0PAH@Z
-?__stable_sort_adaptive@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00HVcompareByOrder@framework@@@Z
-?__stable_sort_adaptive@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00HVsortByProp@framework@@@Z
-?__stable_sort_adaptive@_STL@@YAXPAVOUString@rtl@@00HU?$less@VOUString@rtl@@@1@@Z
-?__stable_sort_aux@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00PAHVcompareByOrder@framework@@@Z
-?__stable_sort_aux@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@00PAHVsortByProp@framework@@@Z
-?__stable_sort_aux@_STL@@YAXPAVOUString@rtl@@00PAHU?$less@VOUString@rtl@@@1@@Z
-?__unguarded_linear_insert@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@U21@VcompareByOrder@framework@@@Z
-?__unguarded_linear_insert@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@U21@VsortByProp@framework@@@Z
-?__unguarded_linear_insert@_STL@@YAXPAVOUString@rtl@@V23@U?$less@VOUString@rtl@@@1@@Z
-?__uninitialized_copy@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00ABU__false_type@1@@Z
-?__uninitialized_fill_n@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@HABU21@ABU__false_type@1@@Z
-?__uninitialized_fill_n@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@IABU21@ABU__false_type@1@@Z
-?__uninitialized_fill_n@_STL@@YAPAVOUString@rtl@@PAV23@HABV23@ABU__false_type@1@@Z
-?__upper_bound@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0ABU21@VcompareByOrder@framework@@PAH@Z
-?__upper_bound@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0ABU21@VsortByProp@framework@@PAH@Z
-?__upper_bound@_STL@@YAPAVOUString@rtl@@PAV23@0ABV23@U?$less@VOUString@rtl@@@1@PAH@Z
-?advance@_STL@@YAXAAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@H@Z
-?advance@_STL@@YAXAAPAVOUString@rtl@@H@Z
-?allocate@?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@_STL@@QBEPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@IPBX@Z
-?begin@?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@@_STL@@QAEPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@XZ
-?begin@?$_Temporary_buffer@PAVOUString@rtl@@V12@@_STL@@QAEPAVOUString@rtl@@XZ
-?begin@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@XZ
-?begin@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@XZ
-?begin@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@2@XZ
-?begin@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QAEPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@XZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?bucket_count@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?copy@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00@Z
-?copy@_STL@@YAPAVOUString@rtl@@PAV23@00@Z
-?copy_backward@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00@Z
-?copy_backward@_STL@@YAPAVOUString@rtl@@PAV23@00@Z
-?deallocate@?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@_STL@@QBEXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@I@Z
-?distance@_STL@@YAHABQAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0@Z
-?distance@_STL@@YAHABQAVOUString@rtl@@0@Z
-?distance_type@_STL@@YAPAHPBU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@@Z
-?end@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@2@XZ
-?end@?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@2@XZ
-?end@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QAEPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@XZ
-?erase@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QAEPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@PAU32@0@Z
-?find@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@7@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VmatchFlags@framework@@@Z
-?find_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VnotMatchDocumentService@framework@@@Z
-?find_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VnotMatchFirstUserData@framework@@@Z
-?getEntry@?$CheckedIterator@V?$SetNodeHash@UFileType@framework@@@framework@@@framework@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@XZ
-?iter_swap@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0@Z
-?iter_swap@_STL@@YAXPAVOUString@rtl@@0@Z
-?iterator_category@_STL@@YA?AUrandom_access_iterator_tag@1@PBU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@@Z
-?lower_bound@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0ABU21@VcompareByOrder@framework@@@Z
-?lower_bound@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0ABU21@VsortByProp@framework@@@Z
-?lower_bound@_STL@@YAPAVOUString@rtl@@PAV23@0ABV23@U?$less@VOUString@rtl@@@1@@Z
-?merge@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0000VcompareByOrder@framework@@@Z
-?merge@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0000VsortByProp@framework@@@Z
-?merge@_STL@@YAPAVOUString@rtl@@PAV23@0000U?$less@VOUString@rtl@@@1@@Z
-?min@_STL@@YAABHABH0@Z
-?push_back@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QAEXABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@2@@Z
-?remove_copy_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00VmatchFlags@framework@@@Z
-?remove_copy_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00VnotMatchDocumentService@framework@@@Z
-?remove_copy_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00VnotMatchFirstUserData@framework@@@Z
-?remove_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VmatchFlags@framework@@@Z
-?remove_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VnotMatchDocumentService@framework@@@Z
-?remove_if@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VnotMatchFirstUserData@framework@@@Z
-?requested_size@?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@@_STL@@QBEHXZ
-?rotate@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00@Z
-?rotate@_STL@@YAPAVOUString@rtl@@PAV23@00@Z
-?size@?$_Temporary_buffer@PAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@U12@@_STL@@QBEHXZ
-?size@?$_Temporary_buffer@PAVOUString@rtl@@V12@@_STL@@QBEHXZ
-?size@?$hash_map@VOUString@rtl@@UContentHandler@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@7@@_STL@@QBEIXZ
-?size@?$hash_map@VOUString@rtl@@UDetector@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@7@@_STL@@QBEIXZ
-?size@?$hash_map@VOUString@rtl@@UFileType@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@7@@_STL@@QBEIXZ
-?size@?$hash_map@VOUString@rtl@@UFilter@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@7@@_STL@@QBEIXZ
-?size@?$hash_map@VOUString@rtl@@ULoader@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@7@@_STL@@QBEIXZ
-?size@?$hash_map@VOUString@rtl@@VStringList@framework@@UStringHashFunction@4@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@7@@_STL@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UContentHandler@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UDetector@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFileType@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@ULoader@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?size@?$hashtable@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@VStringList@framework@@@_STL@@@2@@_STL@@QBEIXZ
-?size@?$vector@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@V?$allocator@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@_STL@@@2@@_STL@@QBEIXZ
-?stable_partition@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VselectByOrder@framework@@@Z
-?stable_partition@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0VselectDefault@framework@@@Z
-?stable_sort@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0VcompareByOrder@framework@@@Z
-?stable_sort@_STL@@YAXPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0VsortByProp@framework@@@Z
-?stable_sort@_STL@@YAXPAVOUString@rtl@@0@Z
-?swap@_STL@@YAXAAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@0@Z
-?swap@_STL@@YAXAAVOUString@rtl@@0@Z
-?swap_ranges@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@00@Z
-?swap_ranges@_STL@@YAPAVOUString@rtl@@PAV23@00@Z
-?uninitialized_fill_n@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@HABU21@@Z
-?uninitialized_fill_n@_STL@@YAPAVOUString@rtl@@PAV23@HABV23@@Z
-?upper_bound@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0ABU21@VcompareByOrder@framework@@@Z
-?upper_bound@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PAU21@0ABU21@VsortByProp@framework@@@Z
-?upper_bound@_STL@@YAPAVOUString@rtl@@PAV23@0ABV23@U?$less@VOUString@rtl@@@1@@Z
-?value_type@_STL@@YAPAU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@VOUString@rtl@@UStringHashFunction@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UFilter@framework@@@_STL@@@2@@1@PBU21@@Z
-??0?$Sequence@UNamedValue@beans@star@sun@com@@@uno@star@sun@com@@QAE@ABV01234@@Z
-??0?$Sequence@UNamedValue@beans@star@sun@com@@@uno@star@sun@com@@QAE@J@Z
-??1?$Sequence@UNamedValue@beans@star@sun@com@@@uno@star@sun@com@@QAE@XZ
-??A?$Sequence@UNamedValue@beans@star@sun@com@@@uno@star@sun@com@@QAAAAUNamedValue@beans@234@J@Z
-??A?$Sequence@UNamedValue@beans@star@sun@com@@@uno@star@sun@com@@QBAABUNamedValue@beans@234@J@Z
-??_C@_0BO@JHHHFCND@com?4sun?4star?4beans?4NamedValue?$AA@
-?convert_seqNamedVal2seqPropVal@Converter@framework@@SA?AV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@ABV?$Sequence@UNamedValue@beans@star@sun@com@@@4567@@Z
-?convert_seqPropVal2seqNamedVal@Converter@framework@@SA?AV?$Sequence@UNamedValue@beans@star@sun@com@@@uno@star@sun@com@@ABV?$Sequence@UPropertyValue@beans@star@sun@com@@@4567@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBUNamedValue@beans@345@@Z
-?getCppuType@@YAABVType@uno@star@sun@com@@PBV?$Sequence@UNamedValue@beans@star@sun@com@@@2345@@Z
-?getLength@?$Sequence@UNamedValue@beans@star@sun@com@@@uno@star@sun@com@@QBAJXZ
-?s_pType@?$Sequence@UNamedValue@beans@star@sun@com@@@uno@star@sun@com@@2PAU_typelib_TypeDescriptionReference@@A
-?s_pType_com_sun_star_beans_NamedValue@?1??getCppuType@@YAABVType@uno@star@sun@com@@PBUNamedValue@beans@456@@Z@4PAU_typelib_TypeDescriptionReference@@A
-?GetCommandURLFromKeyCode@framework@@YA?AVOUString@rtl@@ABVKeyCode@@@Z
-?SetCommandURLFromKeyCode@framework@@YAP6A?AVOUString@rtl@@ABVKeyCode@@@ZP6A?AV23@0@Z@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$_STLP_alloc_proxy@PAUAddonMenuEntry@framework@@U12@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QAE@ABV?$allocator@UAddonMenuEntry@framework@@@1@PAUAddonMenuEntry@framework@@@Z
-??0?$_STLP_alloc_proxy@PAUAddonMenuRootEntry@framework@@U12@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QAE@ABV?$allocator@UAddonMenuRootEntry@framework@@@1@PAUAddonMenuRootEntry@framework@@@Z
-??0?$_Vector_base@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QAE@ABV?$allocator@UAddonMenuEntry@framework@@@1@@Z
-??0?$_Vector_base@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QAE@IABV?$allocator@UAddonMenuEntry@framework@@@1@@Z
-??0?$_Vector_base@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QAE@ABV?$allocator@UAddonMenuRootEntry@framework@@@1@@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@QAE@XZ
-??0?$allocator@UAddonMenuEntry@framework@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@UAddonMenuEntry@framework@@@_STL@@QAE@XZ
-??0?$allocator@UAddonMenuRootEntry@framework@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@UAddonMenuRootEntry@framework@@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@UOUStringHashCode@45@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@8@@_STL@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QAE@IABUOUStringHashCode@AddonsOptions_Impl@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@QAE@ABVOUString@rtl@@ABUImageEntry@AddonsOptions_Impl@framework@@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@_N@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@1@AB_N@Z
-??0?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QAE@ABV?$allocator@UAddonMenuEntry@framework@@@1@@Z
-??0?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QAE@ABV?$allocator@UAddonMenuRootEntry@framework@@@1@@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAUAddonMenuEntry@framework@@U12@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAUAddonMenuRootEntry@framework@@U12@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$_Vector_base@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$_Vector_base@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@UAddonMenuEntry@framework@@@_STL@@QAE@XZ
-??1?$allocator@UAddonMenuRootEntry@framework@@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@UOUStringHashCode@45@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@8@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@QAE@XZ
-??1?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QAE@XZ
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@0@0@Z
-??A?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QBEABUAddonMenuRootEntry@framework@@I@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@1@@Z
-??_G?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@QAEPAXI@Z
-?GetAddonsMenuBarPart@AddonsOptions@framework@@QBEABV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?GetAddonsMenuBarPart@AddonsOptions_Impl@framework@@QBEABV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?GetAddonsToolBarPart@AddonsOptions@framework@@QBEABV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?GetAddonsToolBarPart@AddonsOptions_Impl@framework@@QBEABV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?GetMenuBarList@SvAddonMenu@framework@@QBE?AV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@XZ
-?GetSubMenuList@SvAddonMenu@framework@@QBE?AV?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@ABV?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@@Z
-?GetUITypePropertyNames@AddonsOptions_Impl@framework@@ABE?AV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@ABVOUString@rtl@@@Z
-?ReadRootMenuBarEntry@AddonsOptions_Impl@framework@@AAEEABVOUString@rtl@@AAUAddonMenuRootEntry@2@@Z
-?ReadSubMenuEntries@AddonsOptions_Impl@framework@@AAEEABV?$Sequence@VOUString@rtl@@@uno@star@sun@com@@AAV?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@@Z
-?ReadSubMenuEntry@AddonsOptions_Impl@framework@@AAEEABVOUString@rtl@@AAV?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@@Z
-?_Construct@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@1@ABU21@@Z
-?_Construct@_STL@@YAXPAUAddonMenuEntry@framework@@ABU23@@Z
-?_Construct@_STL@@YAXPAUAddonMenuRootEntry@framework@@ABU23@@Z
-?_Destroy@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@1@@Z
-?_Destroy@_STL@@YAXPAUAddonMenuEntry@framework@@0@Z
-?_Destroy@_STL@@YAXPAUAddonMenuEntry@framework@@@Z
-?_Destroy@_STL@@YAXPAUAddonMenuRootEntry@framework@@0@Z
-?_Destroy@_STL@@YAXPAUAddonMenuRootEntry@framework@@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_clear@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@IAEXXZ
-?_M_clear@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@IAEXXZ
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_insert_overflow@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@IAEXPAUAddonMenuEntry@framework@@ABU34@ABU__false_type@2@I_N@Z
-?_M_insert_overflow@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@IAEXPAUAddonMenuRootEntry@framework@@ABU34@ABU__false_type@2@I_N@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?_M_set@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@IAEXPAUAddonMenuEntry@framework@@00@Z
-?_M_set@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@IAEXPAUAddonMenuRootEntry@framework@@00@Z
-?__destroy@_STL@@YAXPAUAddonMenuEntry@framework@@00@Z
-?__destroy@_STL@@YAXPAUAddonMenuRootEntry@framework@@00@Z
-?__destroy_aux@_STL@@YAXPAUAddonMenuEntry@framework@@0ABU__false_type@1@@Z
-?__destroy_aux@_STL@@YAXPAUAddonMenuRootEntry@framework@@0ABU__false_type@1@@Z
-?__uninitialized_copy@_STL@@YAPAUAddonMenuEntry@framework@@PAU23@00ABU__false_type@1@@Z
-?__uninitialized_copy@_STL@@YAPAUAddonMenuEntry@framework@@PBU23@0PAU23@ABU__false_type@1@@Z
-?__uninitialized_copy@_STL@@YAPAUAddonMenuRootEntry@framework@@PAU23@00ABU__false_type@1@@Z
-?__uninitialized_fill_n@_STL@@YAPAUAddonMenuEntry@framework@@PAU23@IABU23@ABU__false_type@1@@Z
-?__uninitialized_fill_n@_STL@@YAPAUAddonMenuRootEntry@framework@@PAU23@IABU23@ABU__false_type@1@@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@IPBX@Z
-?allocate@?$allocator@UAddonMenuEntry@framework@@@_STL@@QBEPAUAddonMenuEntry@framework@@IPBX@Z
-?allocate@?$allocator@UAddonMenuRootEntry@framework@@@_STL@@QBEPAUAddonMenuRootEntry@framework@@IPBX@Z
-?begin@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QBEPBUAddonMenuEntry@framework@@XZ
-?begin@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QBEPBUAddonMenuRootEntry@framework@@XZ
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@I@Z
-?deallocate@?$allocator@UAddonMenuEntry@framework@@@_STL@@QBEXPAUAddonMenuEntry@framework@@I@Z
-?deallocate@?$allocator@UAddonMenuRootEntry@framework@@@_STL@@QBEXPAUAddonMenuRootEntry@framework@@I@Z
-?end@?$hash_map@VOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@UOUStringHashCode@45@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@8@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@2@XZ
-?end@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QBEPBUAddonMenuEntry@framework@@XZ
-?end@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QBEPBUAddonMenuRootEntry@framework@@XZ
-?find@?$hash_map@VOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@UOUStringHashCode@45@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@8@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QBE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?get_allocator@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QBE?AV?$allocator@UAddonMenuEntry@framework@@@2@XZ
-?insert@?$hash_map@VOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@UOUStringHashCode@45@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@8@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@2@@Z
-?push_back@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QAEXABUAddonMenuEntry@framework@@@Z
-?push_back@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QAEXABUAddonMenuRootEntry@framework@@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@AddonsOptions_Impl@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@UImageEntry@AddonsOptions_Impl@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-?size@?$vector@UAddonMenuEntry@framework@@V?$allocator@UAddonMenuEntry@framework@@@_STL@@@_STL@@QBEIXZ
-?size@?$vector@UAddonMenuRootEntry@framework@@V?$allocator@UAddonMenuRootEntry@framework@@@_STL@@@_STL@@QBEIXZ
-?value_type@_STL@@YAPAUAddonMenuEntry@framework@@PBU23@@Z
-?value_type@_STL@@YAPAUAddonMenuRootEntry@framework@@PBU23@@Z
-??0AddonPopupMenu@framework@@AAE@AAV?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@@Z
-??1AddonPopupMenu@framework@@UAE@XZ
-??_7AddonPopupMenu@framework@@6B@
-??_GAddonPopupMenu@framework@@UAEPAXI@Z
-?BuildSubMenu@AddonPopupMenu@framework@@AAEPAVPopupMenu@@V?$Sequence@V?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@@Z
-?CreateMenuId@AddonPopupMenu@framework@@IAEGXZ
-?GetAddonPopupMenus@AddonPopupMenu@framework@@SAXAAV?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@PAVMenuBar@@@Z
-?GetCommandURL@AddonPopupMenu@framework@@QBEABVOUString@rtl@@XZ
-?GetId@AddonPopupMenu@framework@@QBEGXZ
-?GetTitle@AddonPopupMenu@framework@@QBEABVOUString@rtl@@XZ
-?Initialize@AddonPopupMenu@framework@@IAEXABV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?IsCorrectContext@AddonPopupMenu@framework@@IBEEAAV?$Reference@VXModel@frame@star@sun@com@@@uno@star@sun@com@@@Z
-?MergeAddonPopupMenus@AddonPopupMenu@framework@@SAXAAV?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@AAV?$Reference@VXModel@frame@star@sun@com@@@4567@GPAVMenuBar@@@Z
-??0?$_STLP_alloc_proxy@PAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V12345@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAE@ABV?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@1@PAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-??0?$_Vector_base@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAE@ABV?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@1@@Z
-??0?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@QAE@XZ
-??0?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAE@ABV?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@1@@Z
-??1?$_STLP_alloc_proxy@PAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V12345@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAE@XZ
-??1?$_Vector_base@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@QAE@XZ
-??1?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAE@XZ
-??A?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAEAAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@I@Z
-?_Construct@_STL@@YAXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@ABV23456@@Z
-?_Destroy@_STL@@YAXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@0@Z
-?_Destroy@_STL@@YAXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?_M_clear@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@IAEXXZ
-?_M_insert_overflow@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@IAEXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@ABV34567@ABU__false_type@2@I_N@Z
-?_M_set@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@IAEXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@00@Z
-?__copy@_STL@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_backward@_STL@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@00ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_backward_ptrs@_STL@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@00ABU__false_type@1@@Z
-?__copy_ptrs@_STL@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@00ABU__false_type@1@@Z
-?__destroy@_STL@@YAXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@00@Z
-?__destroy_aux@_STL@@YAXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@0ABU__false_type@1@@Z
-?__uninitialized_copy@_STL@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@00ABU__false_type@1@@Z
-?__uninitialized_fill_n@_STL@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV23456@IABV23456@ABU__false_type@1@@Z
-?allocate@?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@QBEPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@IPBX@Z
-?begin@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAEPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?deallocate@?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@QBEXPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@I@Z
-?distance_type@_STL@@YAPAHPBV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?empty@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QBE_NXZ
-?end@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAEPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@XZ
-?erase@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAEPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV34567@@Z
-?insert@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAEPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PAV34567@ABV34567@@Z
-?iterator_category@_STL@@YA?AUrandom_access_iterator_tag@1@PBV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?push_back@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QAEXABV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?size@?$vector@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@V?$allocator@V?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@@_STL@@@_STL@@QBEIXZ
-?value_type@_STL@@YAPAV?$Reference@VXPropertySet@beans@star@sun@com@@@uno@star@sun@com@@PBV23456@@Z
-??0?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAE@ABU?$less@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@@Z
-??0?$_Rb_tree_base@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@@Z
-??0?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@@Z
-??0?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@XZ
-??0?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@ABU01@@Z
-??0?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@@Z
-??0?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@XZ
-??0?$_STLP_alloc_proxy@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@U12@V?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@1@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@@Z
-??0?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@1@@Z
-??0?$pair@U?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@_N@_STL@@QAE@ABU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@1@AB_N@Z
-??1?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAE@XZ
-??1?$_Rb_tree_base@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@U12@V?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@_STL@@QAE@XZ
-??4?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAEAAV01@ABV01@@Z
-??8_Rb_tree_base_iterator@_STL@@QBE_NABU01@@Z
-??9_Rb_tree_base_iterator@_STL@@QBE_NABU01@@Z
-??C?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??D?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@V12@@1@XZ
-??F?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@QAEAAU01@XZ
-?_M_clone_node@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@IAEPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@PAU32@@Z
-?_M_copy@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@AAEPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@PAU32@0@Z
-?_M_create_node@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@IAEPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?_M_empty_initialize@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@AAEXXZ
-?_M_erase@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@AAEXPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@Z
-?_M_find@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@ABEPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_insert@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@AAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@PAU_Rb_tree_node_base@2@0ABU?$pair@$$CBVOUString@rtl@@V12@@2@0@Z
-?_M_leftmost@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@IBEAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@XZ
-?_M_rightmost@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@IBEAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@XZ
-?_M_root@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@IBEAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@XZ
-?_S_color@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@KAAA_NPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@Z
-?_S_key@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@KAABVOUString@rtl@@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@Z
-?_S_key@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@KAABVOUString@rtl@@PAU_Rb_tree_node_base@2@@Z
-?_S_left@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@KAAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@PAU32@@Z
-?_S_maximum@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@KAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@PAU32@@Z
-?_S_maximum@_Rb_tree_node_base@_STL@@SAPAU12@PAU12@@Z
-?_S_minimum@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@KAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@PAU32@@Z
-?_S_minimum@_Rb_tree_node_base@_STL@@SAPAU12@PAU12@@Z
-?_S_parent@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@KAAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@PAU32@@Z
-?_S_right@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@KAAAPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@PAU32@@Z
-?_S_value@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@KAAAU?$pair@$$CBVOUString@rtl@@V12@@2@PAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@Z
-?allocate@?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@_STL@@QBEPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@IPBX@Z
-?begin@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?clear@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAEXXZ
-?deallocate@?$allocator@U?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Rb_tree_node@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@I@Z
-?end@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?end@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QBE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?end@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?end@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QBE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@XZ
-?erase@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAEXU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@@Z
-?erase@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAEXU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@@Z
-?find@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QBE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QBE?AU?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$map@VOUString@rtl@@V12@U?$less@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAE?AU?$pair@U?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-?insert_unique@?$_Rb_tree@VOUString@rtl@@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@U?$less@VOUString@rtl@@@4@V?$allocator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@4@@_STL@@QAE?AU?$pair@U?$_Rb_tree_iterator@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@V12@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@V12@@2@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@QAE@XZ
-??0?$hash_map@VOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE@XZ
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@QAE@ABU01@@Z
-??0?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@QAE@ABVOUString@rtl@@ABW4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@1@AB_N@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$hash_map@VOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@QAE@XZ
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@1@@Z
-??_G?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@QAEPAXI@Z
-?_Construct@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@1@ABU21@@Z
-?_Destroy@_STL@@YAXPAU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@IPBX@Z
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@2@XZ
-?find@?$hash_map@VOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$hash_map@VOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@2@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Image_XML_Entry@OReadImagesDocumentHandler@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@1@AB_N@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@IPBX@Z
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@2@XZ
-?find@?$hash_map@VOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$hash_map@VOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@2@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBoxLayout_XML_Entry@OReadToolBoxLayoutDocumentHandler@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@1@AB_N@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@IPBX@Z
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@2@XZ
-?find@?$hash_map@VOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$hash_map@VOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@2@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4ToolBox_XML_Entry@OReadToolBoxDocumentHandler@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@1@AB_N@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@IPBX@Z
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@2@XZ
-?find@?$hash_map@VOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$hash_map@VOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@2@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4StatusBar_XML_Entry@OReadStatusBarDocumentHandler@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-??0?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@_STL@@@_STL@@QAE@ABU01@@Z
-??0?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@_STL@@@_STL@@QAE@XZ
-??0?$_STLP_alloc_proxy@IVXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@_STL@@@_STL@@QAE@ABV?$allocator@VXMLNamespaces@framework@@@1@I@Z
-??0?$_STLP_alloc_proxy@PAHHV?$allocator@H@_STL@@@_STL@@QAE@ABV?$allocator@H@1@PAH@Z
-??0?$_STLP_alloc_proxy@PAPAVXMLNamespaces@framework@@PAV12@V?$allocator@PAVXMLNamespaces@framework@@@_STL@@@_STL@@QAE@ABV?$allocator@PAVXMLNamespaces@framework@@@1@PAPAVXMLNamespaces@framework@@@Z
-??0?$allocator@PAVXMLNamespaces@framework@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@PAVXMLNamespaces@framework@@@_STL@@QAE@ABV?$allocator@VXMLNamespaces@framework@@@1@@Z
-??1?$_STLP_alloc_proxy@IVXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAHHV?$allocator@H@_STL@@@_STL@@QAE@XZ
-??1?$_STLP_alloc_proxy@PAPAVXMLNamespaces@framework@@PAV12@V?$allocator@PAVXMLNamespaces@framework@@@_STL@@@_STL@@QAE@XZ
-??1?$allocator@PAVXMLNamespaces@framework@@@_STL@@QAE@XZ
-??D?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@_STL@@@_STL@@QBEAAVXMLNamespaces@framework@@XZ
-??E?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@_STL@@@_STL@@QAEAAU01@XZ
-??F?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@_STL@@@_STL@@QAEAAU01@XZ
-??G?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@_STL@@@_STL@@QBEHABU01@@Z
-?_Destroy@_STL@@YAXU?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@_STL@@@1@0@Z
-?_IsOKToMemCpy@_STL@@YA?AU?$_OKToMemCpy@PAVXMLNamespaces@framework@@PAV12@@1@PAPAVXMLNamespaces@framework@@0@Z
-?_M_clear@?$vector@HV?$allocator@H@_STL@@@_STL@@IAEXXZ
-?_M_insert_overflow@?$vector@HV?$allocator@H@_STL@@@_STL@@IAEXPAHABHABU__true_type@2@I_N@Z
-?_M_set@?$vector@HV?$allocator@H@_STL@@@_STL@@IAEXPAH00@Z
-?_Ret@?$_BothPtrType@PAPAVXMLNamespaces@framework@@PAPAV12@@_STL@@SA?AU__true_type@2@XZ
-?_Ret@?$_OKToMemCpy@PAVXMLNamespaces@framework@@PAV12@@_STL@@SA?AU__true_type@2@XZ
-?__copy_aux@_STL@@YAPAPAVXMLNamespaces@framework@@PAPAV23@00ABU__true_type@1@@Z
-?__copy_backward_aux@_STL@@YAPAPAVXMLNamespaces@framework@@PAPAV23@00ABU__true_type@1@@Z
-?__copy_backward_ptrs@_STL@@YAPAPAVXMLNamespaces@framework@@PAPAV23@00ABU__true_type@1@@Z
-?__copy_ptrs@_STL@@YAPAPAVXMLNamespaces@framework@@PAPAV23@00ABU__true_type@1@@Z
-?__copy_trivial@_STL@@YAPAXPBX0PAX@Z
-?__copy_trivial_backward@_STL@@YAPAXPBX0PAX@Z
-?__destroy@_STL@@YAXU?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@_STL@@@1@0PAVXMLNamespaces@framework@@@Z
-?__destroy_aux@_STL@@YAXPAH0ABU__true_type@1@@Z
-?__destroy_aux@_STL@@YAXU?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@_STL@@@1@0ABU__false_type@1@@Z
-?buffer_size@?$_Deque_base@VXMLNamespaces@framework@@V?$allocator@VXMLNamespaces@framework@@@_STL@@@_STL@@SAIXZ
-?value_type@_STL@@YAPAPAVXMLNamespaces@framework@@PBQAV23@@Z
-?value_type@_STL@@YAPAVXMLNamespaces@framework@@ABU?$_Deque_iterator@VXMLNamespaces@framework@@U?$_Nonconst_traits@VXMLNamespaces@framework@@@_STL@@@1@@Z
-??0?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@PAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@1@PAV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@ABU01@@Z
-??0?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@PBU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@1@PBV?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@1@@Z
-??0?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@ABV?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@@1@I@Z
-??0?$allocator@PAX@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@IABUOUStringHashCode@framework@@ABU?$equal_to@VOUString@rtl@@@1@ABV?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@1@@Z
-??0?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@_STL@@QAE@ABU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@1@AB_N@Z
-??1?$_STLP_alloc_proxy@IU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@V?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@@2@@_STL@@QAE@XZ
-??1?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QAE@XZ
-??1?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE@XZ
-??9_STL@@YA_NABU?$_Hashtable_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@0@0@Z
-??C?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QBEPBU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@1@XZ
-??D?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Const_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QBEABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@1@XZ
-??R?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@QBEABVOUString@rtl@@ABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@1@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@@Z
-?_M_bkt_num@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@I@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@@Z
-?_M_bkt_num_key@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEIABVOUString@rtl@@I@Z
-?_M_delete_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@Z
-?_M_find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@ABVOUString@rtl@@@Z
-?_M_initialize_buckets@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEXI@Z
-?_M_new_node@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@AAEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@ABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@@Z
-?_M_next_size@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@ABEII@Z
-?allocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@IPBX@Z
-?clear@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAEXXZ
-?deallocate@?$allocator@U?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@_STL@@@_STL@@QBEXPAU?$_Hashtable_node@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@I@Z
-?end@?$hash_map@VOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@2@XZ
-?end@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@2@XZ
-?find@?$hash_map@VOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?find@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@2@ABVOUString@rtl@@@Z
-?insert@?$hash_map@VOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@UOUStringHashCode@5@U?$equal_to@VOUString@rtl@@@_STL@@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@8@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@@Z
-?insert_unique@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@@Z
-?insert_unique_noresize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAE?AU?$pair@U?$_Ht_iterator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@U?$_Nonconst_traits@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@_N@2@ABU?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@2@@Z
-?resize@?$hashtable@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@VOUString@rtl@@UOUStringHashCode@framework@@U?$_Select1st@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@U?$equal_to@VOUString@rtl@@@2@V?$allocator@U?$pair@$$CBVOUString@rtl@@W4Events_XML_Entry@OReadEventsDocumentHandler@framework@@@_STL@@@2@@_STL@@QAEXI@Z
-??0?$_STLP_alloc_proxy@PAUTagAttribute@framework@@U12@V?$allocator@UTagAttribute@framework@@@_STL@@@_STL@@QAE@ABV01@@Z
-??0?$_STLP_alloc_proxy@PAUTagAttribute@framework@@U12@V?$allocator@UTagAttribute@framework@@@_STL@@@_STL@@QAE@ABV?$allocator@UTagAttribute@framework@@@1@PAUTagAttribute@framework@@@Z
-??1?$_STLP_alloc_proxy@PAUTagAttribute@framework@@U12@V?$allocator@UTagAttribute@framework@@@_STL@@@_STL@@QAE@XZ
-?_M_clear@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@_STL@@@_STL@@IAEXXZ
-?_M_insert_overflow@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@_STL@@@_STL@@IAEXPAUTagAttribute@framework@@ABU34@ABU__false_type@2@I_N@Z
-?_M_set@?$vector@UTagAttribute@framework@@V?$allocator@UTagAttribute@framework@@@_STL@@@_STL@@IAEXPAUTagAttribute@framework@@00@Z
-?__copy@_STL@@YAPAUTagAttribute@framework@@PBU23@0PAU23@ABUrandom_access_iterator_tag@1@PAH@Z
-?__copy_ptrs@_STL@@YAPAUTagAttribute@framework@@PBU23@0PAU23@ABU__false_type@1@@Z
-?__destroy_aux@_STL@@YAXPAUTagAttribute@framework@@0ABU__false_type@1@@Z
-?__uninitialized_copy@_STL@@YAPAUTagAttribute@framework@@PAU23@00ABU__false_type@1@@Z
-?__uninitialized_copy@_STL@@YAPAUTagAttribute@framework@@PBU23@0PAU23@ABU__false_type@1@@Z
-?__uninitialized_fill_n@_STL@@YAPAUTagAttribute@framework@@PAU23@IABU23@ABU__false_type@1@@Z
-?iterator_category@_STL@@YA?AUrandom_access_iterator_tag@1@PBUTagAttribute@framework@@@Z
-?swap@_STL@@YAXAAV?$_STLP_alloc_proxy@PAUTagAttribute@framework@@U12@V?$allocator@UTagAttribute@framework@@@_STL@@@1@0@Z
-??_C@_0BP@EGLBGAIM@?$CD?$CD?$CD?5illegal?5index?5of?5sequence?$CB?$AA@
-??_C@_0DF@HCMHNEML@o?3?2SRX644?2wntmsci8?2inc?2com?1sun?1s@
-?getLength@?$Sequence@V?$Reference@VXFrame@frame@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QBAJXZ
-??0OString@rtl@@QAE@ABV01@@Z
-??0OString@rtl@@QAE@PAU_rtl_String@@@Z
-??0OStringBuffer@rtl@@QAE@J@Z
-??1OStringBuffer@rtl@@QAE@XZ
-?append@OStringBuffer@rtl@@QAEAAV12@PBD@Z
-?append@OStringBuffer@rtl@@QAEAAV12@PBDJ@Z
-?getLength@OStringBuffer@rtl@@QAEJXZ
-?makeStringAndClear@OStringBuffer@rtl@@QAE?AVOString@2@XZ
-??_C@_0CH@POINNAOP@o?3?2SRX644?2wntmsci8?2inc?2rtl?1ustri@
-??_C@_02MBJIFMOJ@?$CC?6?$AA@
-??_C@_03BJGFLNCI@?6?7?$CC?$AA@
-??_C@_09CEFOMOPC@ASSERT?3?6?7?$AA@
-??_C@_0BI@KPGMBMAN@Object?5not?5initialized?$CB?$AA@
-??_C@_0BM@KONIKAFG@Invalid?5parameter?5detected?$CB?$AA@
-??_C@_0BM@PNDEGMPN@CheckedIterator?3?3getEntry?$CI?$CJ?$AA@
-??_C@_0BO@JDFMDNA@CheckedIterator?3?3initialize?$CI?$CJ?$AA@
-??_C@_0BO@OCDPHMII@CheckedIterator?3?3operator?$CL?$CL?$CI?$CJ?$AA@
-??_C@_0BP@PMIODBAN@Wrong?5using?5of?5class?5detected?$CB?$AA@
-??_C@_0CG@COEOBHIK@?4?4?2?4?4?2inc?2classes?1checkediterato@
-??_C@_0DB@HKAGDIKE@Instance?5already?5initialized?$CB?5Do@
-?implcp_addFilter@FilterCache@framework@@CAEABVOUString@rtl@@ABV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?implcp_existsContentHandler@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_existsDetector@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_existsFilter@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_existsLoader@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_existsType@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_getContentHandler@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_getContentHandlerProperties@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_getDetector@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_getDetectorProperties@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_getFilter@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_getFilterProperties@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_getLoader@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_getLoaderProperties@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_getType@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_getTypeProperties@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_queryFilters@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_removeFilter@FilterCache@framework@@CAEABVOUString@rtl@@@Z
-?implcp_replaceFilter@FilterCache@framework@@CAEABVOUString@rtl@@ABV?$Sequence@UPropertyValue@beans@star@sun@com@@@uno@star@sun@com@@@Z
-?implcp_searchContentHandlerForType@FilterCache@framework@@CAEABVOUString@rtl@@ABV?$CheckedIterator@VStringList@framework@@@2@0@Z
-?implcp_searchDetectorForType@FilterCache@framework@@CAEABVOUString@rtl@@ABV?$CheckedIterator@VStringList@framework@@@2@0@Z
-?implcp_searchFilterForType@FilterCache@framework@@CAEABVOUString@rtl@@ABV?$CheckedIterator@VStringList@framework@@@2@0@Z
-?implcp_searchLoaderForType@FilterCache@framework@@CAEABVOUString@rtl@@ABV?$CheckedIterator@VStringList@framework@@@2@0@Z
-?implcp_searchType@FilterCache@framework@@CAEABVOUString@rtl@@PBV34@1ABV?$CheckedIterator@V?$SetNodeHash@UFileType@framework@@@framework@@@2@0@Z
-??_C@_04LHHJCNI@_top?$AA@
-??_C@_05HDAFIHDF@_self?$AA@
-??_C@_06OJCKEJOC@_blank?$AA@
-??_C@_07GMMAGBEF@_beamer?$AA@
-??_C@_07LPOLCDGO@_parent?$AA@
-??_C@_08BFLCMEFH@_default?$AA@
-??_C@_08OAICDHKA@_menubar?$AA@
-??_C@_0BB@LOAPKBHL@OFFICE_HELP_TASK?$AA@
-??_C@_0L@CNIOKIAK@_helpagent?$AA@
-?isSpecialTarget@TargetCheck@framework@@SAEABVOUString@rtl@@@Z
-?isValidTarget@TargetCheck@framework@@SAEABVOUString@rtl@@@Z
-?matchSpecialTarget@TargetCheck@framework@@SAEABVOUString@rtl@@0@Z
-?impldbg_checkParameter_match@Wildcard@framework@@SAEABVOUString@rtl@@0@Z
-?DbgError@@YAXPBD0G@Z
-?DbgGetData@@YAPAUDbgData@@XZ
-?DbgIsAssert@@YAKXZ
-?DbgIsErrorOut@@YAKXZ
-?getLength@?$Sequence@V?$Reference@VXInteractionContinuation@task@star@sun@com@@@uno@star@sun@com@@@uno@star@sun@com@@QBAJXZ
diff --git a/framework/util/guiapps/makefile.mk b/framework/util/guiapps/makefile.mk index 62b2731ea1b5..63e0b5ad26cd 100644 --- a/framework/util/guiapps/makefile.mk +++ b/framework/util/guiapps/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.2 $ +# $Revision: 1.3 $ # -# last change: $Author: hr $ $Date: 2002-08-19 16:25:51 $ +# last change: $Author: hr $ $Date: 2003-03-25 18:22:13 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -70,9 +70,9 @@ ENABLE_EXCEPTIONS= TRUE NO_BSYMBOLIC= TRUE GEN_HID= TRUE -COMP3TYPELIST= fwl -COMP4TYPELIST= fwk -COMP5TYPELIST= lgd +#COMP3TYPELIST= fwl +#COMP4TYPELIST= fwk +#COMP5TYPELIST= lgd # --- Settings ----------------------------------------------------- diff --git a/framework/util/makefile.mk b/framework/util/makefile.mk index ab8e1fe6f936..fe16bc6c4799 100644 --- a/framework/util/makefile.mk +++ b/framework/util/makefile.mk @@ -2,9 +2,9 @@ # # $RCSfile: makefile.mk,v $ # -# $Revision: 1.69 $ +# $Revision: 1.70 $ # -# last change: $Author: cd $ $Date: 2002-10-14 11:44:05 $ +# last change: $Author: hr $ $Date: 2003-03-25 18:22:09 $ # # The Contents of this file are made available subject to the terms of # either of the following licenses @@ -69,9 +69,9 @@ ENABLE_EXCEPTIONS= TRUE NO_BSYMBOLIC= TRUE GEN_HID= TRUE -COMP3TYPELIST= fwl -COMP4TYPELIST= fwk -COMP5TYPELIST= lgd +#COMP3TYPELIST= fwl +#COMP4TYPELIST= fwk +#COMP5TYPELIST= lgd # --- Settings ----------------------------------------------------- @@ -90,7 +90,8 @@ LIB1OBJFILES= $(SLO)$/wildcard.obj \ $(SLO)$/filtercachedata.obj \ $(SLO)$/protocolhandlercache.obj \ $(SLO)$/networkdomain.obj \ - $(SLO)$/configaccess.obj + $(SLO)$/configaccess.obj \ + $(SLO)$/framelistanalyzer.obj # --- export library for sfx2 ------------------------------------------------- @@ -123,7 +124,8 @@ LIB2OBJFILES= $(SLO)$/attributelist.obj \ $(SLO)$/interaction.obj \ $(SLO)$/addonmenu.obj \ $(SLO)$/addonsoptions.obj \ - $(SLO)$/fwkresid.obj + $(SLO)$/fwkresid.obj \ + $(SLO)$/acceleratorinfo.obj # --- import classes library --------------------------------------------------- @@ -222,8 +224,7 @@ SHL4TARGET= fwk$(UPD)$(DLLPOSTFIX) SHL4IMPLIB= ifwk -SHL4OBJS= $(SLO)$/asyncquit.obj \ - $(SLO)$/basedispatcher.obj \ +SHL4OBJS= $(SLO)$/basedispatcher.obj \ $(SLO)$/blankdispatcher.obj \ $(SLO)$/createdispatcher.obj \ $(SLO)$/desktop.obj \ @@ -244,6 +245,7 @@ SHL4OBJS= $(SLO)$/asyncquit.obj \ $(SLO)$/pluginframe.obj \ $(SLO)$/registerservices.obj \ $(SLO)$/selfdispatcher.obj \ + $(SLO)$/closedispatcher.obj \ $(SLO)$/soundhandler.obj \ $(SLO)$/statusindicator.obj \ $(SLO)$/statusindicatorfactory.obj \ @@ -253,9 +255,12 @@ SHL4OBJS= $(SLO)$/asyncquit.obj \ $(SLO)$/urltransformer.obj \ $(SLO)$/documentlist.obj \ $(SLO)$/xmldocproperties.obj \ - $(SLO)$/jobexecutor.obj \ - $(SLO)$/jobhandler.obj \ - $(SLO)$/jobdispatch.obj \ + $(SLO)$/configaccess.obj \ + $(SLO)$/job.obj \ + $(SLO)$/jobdata.obj \ + $(SLO)$/jobdispatch.obj \ + $(SLO)$/jobexecutor.obj \ + $(SLO)$/jobresult.obj \ $(SLO)$/joburl.obj \ $(SLO)$/dispatchrecordersupplier.obj\ $(SLO)$/dispatchrecorder.obj \ @@ -265,7 +270,10 @@ SHL4OBJS= $(SLO)$/asyncquit.obj \ $(SLO)$/loadeventlistener.obj \ $(SLO)$/asyncloadthread.obj \ $(SLO)$/componentloader.obj \ - $(SLO)$/persistentwindowstate.obj + $(SLO)$/persistentwindowstate.obj \ + $(SLO)$/colorlistener.obj \ + $(SLO)$/backingcomp.obj \ + $(SLO)$/dispatchhelper.obj SHL4STDLIBS= $(CPPULIB) \ $(CPPUHELPERLIB) \ |