fdo#46808, Convert frame::Frame to new style

Change-Id: I74427d1e0059808f04960c648b93245b06c20f7f
diff --git a/UnoControls/source/controls/framecontrol.cxx b/UnoControls/source/controls/framecontrol.cxx
index 27afd5d..c2bfcde 100644
--- a/UnoControls/source/controls/framecontrol.cxx
+++ b/UnoControls/source/controls/framecontrol.cxx
@@ -19,12 +19,13 @@

#include "framecontrol.hxx"

#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/frame/FrameSearchFlag.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/util/URLTransformer.hpp>
#include <com/sun/star/util/XURLTransformer.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/frame/FrameSearchFlag.hpp>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <comphelper/processfactory.hxx>
#include <cppuhelper/typeprovider.hxx>
#include <osl/diagnose.h>
@@ -459,8 +460,8 @@ void FrameControl::impl_createFrame(    const   Reference< XWindowPeer >&   xPee
                                        const   OUString&                   rURL        ,
                                        const   Sequence< PropertyValue >&  rArguments  )
{
    Reference< XFrame >     xOldFrame   ;
    Reference< XFrame >     xNewFrame   ;
    Reference< XFrame2 >     xOldFrame   ;
    Reference< XFrame2 >     xNewFrame   ;

    {
        MutexGuard  aGuard ( m_aMutex ) ;
@@ -469,29 +470,24 @@ void FrameControl::impl_createFrame(    const   Reference< XWindowPeer >&   xPee



    xNewFrame = Reference< XFrame >  ( impl_getComponentContext()->getServiceManager()->createInstanceWithContext("com.sun.star.frame.Frame", impl_getComponentContext()), UNO_QUERY ) ;
    Reference< XDispatchProvider >  xDSP ( xNewFrame, UNO_QUERY ) ;
    xNewFrame = Frame::create( impl_getComponentContext() );

    if (xDSP.is())
    Reference< XWindow >  xWP ( xPeer, UNO_QUERY ) ;
    xNewFrame->initialize ( xWP ) ;

    //  option
    //xFrame->setName( "WhatYouWant" );

    Reference< XURLTransformer > xTrans = URLTransformer::create( impl_getComponentContext() );
    // load file
    URL aURL ;
    aURL.Complete = rURL ;
    xTrans->parseStrict( aURL ) ;

    Reference< XDispatch >  xDisp = xNewFrame->queryDispatch ( aURL, OUString (), FrameSearchFlag::SELF ) ;
    if (xDisp.is())
    {
        Reference< XWindow >  xWP ( xPeer, UNO_QUERY ) ;
        xNewFrame->initialize ( xWP ) ;

        //  option
        //xFrame->setName( "WhatYouWant" );

        Reference< XURLTransformer > xTrans = URLTransformer::create( impl_getComponentContext() );
        // load file
        URL aURL ;

        aURL.Complete = rURL ;
        xTrans->parseStrict( aURL ) ;

        Reference< XDispatch >  xDisp = xDSP->queryDispatch ( aURL, OUString (), FrameSearchFlag::SELF ) ;
        if (xDisp.is())
        {
            xDisp->dispatch ( aURL, rArguments ) ;
        }
        xDisp->dispatch ( aURL, rArguments ) ;
    }

    // set the frame
@@ -519,20 +515,20 @@ void FrameControl::impl_createFrame(    const   Reference< XWindowPeer >&   xPee

void FrameControl::impl_deleteFrame()
{
    Reference< XFrame >  xOldFrame;
    Reference< XFrame >  xNullFrame;
    Reference< XFrame2 >  xOldFrame;
    Reference< XFrame2 >  xNullFrame;

    {
        // do not dispose the frame in this guarded section (deadlock?)
        MutexGuard aGuard( m_aMutex );
        xOldFrame = m_xFrame;
        m_xFrame = Reference< XFrame > ();
        m_xFrame = Reference< XFrame2 > ();
    }

    // notify the listeners
    sal_Int32 nFrameId = PROPERTYHANDLE_FRAME;
    Any aNewFrame( &xNullFrame, ::getCppuType((const Reference< XFrame >*)0) );
    Any aOldFrame( &xOldFrame, ::getCppuType((const Reference< XFrame >*)0) );
    Any aNewFrame( &xNullFrame, ::getCppuType((const Reference< XFrame2 >*)0) );
    Any aOldFrame( &xOldFrame, ::getCppuType((const Reference< XFrame2 >*)0) );
    fire( &nFrameId, &aNewFrame, &aOldFrame, 1, sal_False );

    // dispose the frame
diff --git a/UnoControls/source/inc/framecontrol.hxx b/UnoControls/source/inc/framecontrol.hxx
index 96086a6..8da8c67 100644
--- a/UnoControls/source/inc/framecontrol.hxx
+++ b/UnoControls/source/inc/framecontrol.hxx
@@ -22,7 +22,7 @@

#include <com/sun/star/frame/XFrameActionListener.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include <com/sun/star/frame/FrameActionEvent.hpp>
#include <com/sun/star/frame/FrameAction.hpp>
#include <com/sun/star/lang/XServiceName.hpp>
@@ -593,7 +593,7 @@ private:

private:

    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >         m_xFrame                    ;
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame2 >        m_xFrame                    ;
    OUString                                        m_sComponentURL             ;
    ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >   m_seqLoaderArguments        ;
    ::cppu::OMultiTypeInterfaceContainerHelper      m_aInterfaceContainer       ;
diff --git a/basctl/source/dlged/propbrw.cxx b/basctl/source/dlged/propbrw.cxx
index a5f19ac..24ec2d7 100644
--- a/basctl/source/dlged/propbrw.cxx
+++ b/basctl/source/dlged/propbrw.cxx
@@ -28,6 +28,7 @@
#include <svx/svxids.hrc>

#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/inspection/XObjectInspector.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <comphelper/types.hxx>
@@ -85,7 +86,6 @@ DBG_NAME(PropBrw)
PropBrw::PropBrw (DialogWindowLayout& rLayout_):
    DockingWindow(&rLayout_),
    m_bInitialStateChange(true),
    m_xORB(comphelper::getProcessServiceFactory()),
    m_xContextDocument(SfxViewShell::Current() ? SfxViewShell::Current()->GetCurrentDocument() : Reference<XModel>()),
    rLayout(rLayout_),
    pView(0)
@@ -99,12 +99,9 @@ PropBrw::PropBrw (DialogWindowLayout& rLayout_):
    try
    {
        // create a frame wrapper for myself
        m_xMeAsFrame = Reference< XFrame >(m_xORB->createInstance( "com.sun.star.frame.Frame" ), UNO_QUERY);
        if (m_xMeAsFrame.is())
        {
            m_xMeAsFrame->initialize( VCLUnoHelper::GetInterface ( this ) );
            m_xMeAsFrame->setName( "form property browser" );  // change name!
        }
        m_xMeAsFrame = frame::Frame::create( comphelper::getProcessComponentContext() );
        m_xMeAsFrame->initialize( VCLUnoHelper::GetInterface ( this ) );
        m_xMeAsFrame->setName( "form property browser" );  // change name!
    }
    catch (const Exception&)
    {
@@ -127,8 +124,7 @@ void PropBrw::ImplReCreateController()

    try
    {
        Reference< XComponentContext > xOwnContext(
            comphelper::getComponentContext( m_xORB ) );
        Reference< XComponentContext > xOwnContext = comphelper::getProcessComponentContext();

        // a ComponentContext for the
        ::cppu::ContextEntry_Init aHandlerContextInfo[] =
@@ -160,7 +156,7 @@ void PropBrw::ImplReCreateController()
            }
            else
            {
                xAsXController->attachFrame(m_xMeAsFrame);
                xAsXController->attachFrame( Reference<XFrame>(m_xMeAsFrame,UNO_QUERY_THROW) );
                m_xBrowserComponentWindow = m_xMeAsFrame->getComponentWindow();
                DBG_ASSERT(m_xBrowserComponentWindow.is(), "PropBrw::PropBrw: attached the controller, but have no component window!");
            }
diff --git a/basctl/source/inc/propbrw.hxx b/basctl/source/inc/propbrw.hxx
index fe00cdd..76020e6 100644
--- a/basctl/source/inc/propbrw.hxx
+++ b/basctl/source/inc/propbrw.hxx
@@ -21,6 +21,7 @@
#define BASCTL_PROPBRW_HXX

#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include <comphelper/stl_types.hxx>
#include <svl/lstner.hxx>
#include <svl/brdcst.hxx>
@@ -30,9 +31,6 @@
class SfxBindings;
class SdrView;
class SfxViewShell;
namespace com { namespace sun { namespace star { namespace lang {
    class XMultiServiceFactory;
}}}}

namespace basctl
{
@@ -44,9 +42,7 @@ class PropBrw : public DockingWindow, public SfxListener, public SfxBroadcaster
private:
    bool        m_bInitialStateChange;

    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
                    m_xORB;
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame2 >
                    m_xMeAsFrame;
    ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
                    m_xBrowserController;
diff --git a/dbaccess/source/ui/app/AppDetailPageHelper.cxx b/dbaccess/source/ui/app/AppDetailPageHelper.cxx
index 62ef52d..c7a23ad 100644
--- a/dbaccess/source/ui/app/AppDetailPageHelper.cxx
+++ b/dbaccess/source/ui/app/AppDetailPageHelper.cxx
@@ -25,30 +25,30 @@
#include "tabletree.hxx"
#include "UITools.hxx"
#include "dbtreelistbox.hxx"
#include <com/sun/star/frame/XLayoutManager.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/awt/XTabController.hpp>
#include <com/sun/star/sdbc/XConnection.hpp>
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
#include <com/sun/star/sdbcx/XViewsSupplier.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/container/XContainer.hpp>
#include <com/sun/star/form/XLoadable.hpp>
#include <com/sun/star/frame/XLayoutManager.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/frame/FrameSearchFlag.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/frame/XFrames.hpp>
#include <com/sun/star/frame/XFramesSupplier.hpp>
#include <com/sun/star/awt/XWindow.hpp>
#include <toolkit/helper/vclunohelper.hxx>
#include <com/sun/star/ucb/XCommandEnvironment.hpp>
#include <com/sun/star/ucb/XCommandProcessor.hpp>
#include <com/sun/star/ucb/Command.hpp>
#include <com/sun/star/form/XLoadable.hpp>
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/container/XContainer.hpp>
#include <com/sun/star/sdb/CommandType.hpp>
#include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/sdb/application/XDatabaseDocumentUI.hpp>
#include <com/sun/star/sdb/application/DatabaseObject.hpp>
#include <com/sun/star/sdb/application/DatabaseObjectContainer.hpp>
#include <com/sun/star/sdbc/XConnection.hpp>
#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
#include <com/sun/star/sdbcx/XViewsSupplier.hpp>
#include <com/sun/star/ucb/XCommandEnvironment.hpp>
#include <com/sun/star/ucb/XCommandProcessor.hpp>
#include <com/sun/star/ucb/Command.hpp>
#include <com/sun/star/util/XCloseable.hpp>
#include <toolkit/helper/vclunohelper.hxx>
#include "AppView.hxx"
#include "dbaccess_helpid.hrc"
#include "dbu_app.hrc"
@@ -1141,20 +1141,19 @@ void OAppDetailPageHelper::showPreview( const OUString& _sDataSourceName,
        {
            try
            {
                m_xFrame = Reference < XFrame > ( getBorderWin().getView()->getORB()->getServiceManager()->createInstanceWithContext( OUString("com.sun.star.frame.Frame"), getBorderWin().getView()->getORB() ), UNO_QUERY );
                m_xFrame = Frame::create( getBorderWin().getView()->getORB() );
                m_xFrame->initialize( m_xWindow );

                // no layout manager (and thus no toolbars) in the preview
                // Must be called after initialize ... but before any other call to this frame.
                // Otherwise frame throws "life time exceptions" as e.g. NON_INITIALIZED
                Reference< XPropertySet > xFrameProps( m_xFrame, UNO_QUERY_THROW );
                xFrameProps->setPropertyValue( OUString( "LayoutManager" ), makeAny(Reference< XLayoutManager >()) );
                m_xFrame->setLayoutManager( Reference< XLayoutManager >() );

                Reference<XFramesSupplier> xSup(getBorderWin().getView()->getAppController().getXController()->getFrame(),UNO_QUERY);
                if ( xSup.is() )
                {
                    Reference<XFrames> xFrames = xSup->getFrames();
                    xFrames->append(m_xFrame);
                    xFrames->append( Reference<XFrame>(m_xFrame,UNO_QUERY_THROW));
                }
            }
            catch(const Exception&)
@@ -1169,7 +1168,7 @@ void OAppDetailPageHelper::showPreview( const OUString& _sDataSourceName,
            xApplication, NULL, _bTable
        ) );
        SAL_WNODEPRECATED_DECLARATIONS_POP
        pDispatcher->setTargetFrame( m_xFrame );
        pDispatcher->setTargetFrame( Reference<XFrame>(m_xFrame,UNO_QUERY_THROW) );

        ::comphelper::NamedValueCollection aArgs;
        aArgs.put( "Preview", sal_True );
diff --git a/dbaccess/source/ui/app/AppDetailPageHelper.hxx b/dbaccess/source/ui/app/AppDetailPageHelper.hxx
index 486ca96..3f8df99 100644
--- a/dbaccess/source/ui/app/AppDetailPageHelper.hxx
+++ b/dbaccess/source/ui/app/AppDetailPageHelper.hxx
@@ -37,7 +37,7 @@
#include <memory>

namespace com{ namespace sun { namespace star { namespace awt   { class XWindow; } } } }
namespace com{ namespace sun { namespace star { namespace frame { class XFrame; } } } }
namespace com{ namespace sun { namespace star { namespace frame { class XFrame2; } } } }
namespace com{ namespace sun { namespace star { namespace io    { class XPersist; } } } }

#define ELEMENT_COUNT   size_t(E_ELEMENT_TYPE_COUNT)
@@ -90,7 +90,7 @@ namespace dbaui
        Window*             m_pTablePreview;
        ::std::auto_ptr<PopupMenu> m_aMenu;
        PreviewMode         m_ePreviewMode;
        ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >
        ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 >
                            m_xFrame;
        ::com::sun::star::uno::Reference < ::com::sun::star::io::XPersist >
                            m_xDocInfo;
diff --git a/dbaccess/source/ui/inc/querycontainerwindow.hxx b/dbaccess/source/ui/inc/querycontainerwindow.hxx
index 749493e..5fab032 100644
--- a/dbaccess/source/ui/inc/querycontainerwindow.hxx
+++ b/dbaccess/source/ui/inc/querycontainerwindow.hxx
@@ -23,7 +23,7 @@
#include <vcl/window.hxx>
#include <vcl/split.hxx>
#include "dataview.hxx"
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include "QueryViewSwitch.hxx"
#include <vcl/dockwin.hxx>

@@ -50,7 +50,7 @@ namespace dbaui
        OQueryViewSwitch*   m_pViewSwitch;
        OBeamer*            m_pBeamer;
        Splitter*           m_pSplitter;
        ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xBeamer;
        ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame2 > m_xBeamer;

        DECL_LINK( SplitHdl, void* );
    public:
@@ -66,7 +66,7 @@ namespace dbaui
            // called when the beamer has been disposed
        void    disposingPreview();

        ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >
        ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame2 >
                getPreviewFrame() const { return m_xBeamer; }

        OQueryDesignView*   getDesignView() { return m_pViewSwitch->getDesignView(); }
diff --git a/dbaccess/source/ui/querydesign/querycontainerwindow.cxx b/dbaccess/source/ui/querydesign/querycontainerwindow.cxx
index 07ef8b7..2c04309 100644
--- a/dbaccess/source/ui/querydesign/querycontainerwindow.cxx
+++ b/dbaccess/source/ui/querydesign/querycontainerwindow.cxx
@@ -28,8 +28,9 @@
#include <sfx2/sfxsids.hrc>
#include <vcl/fixed.hxx>
#include "UITools.hxx"
#include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/util/XCloseable.hpp>

//.........................................................................
namespace dbaui
@@ -195,18 +196,13 @@ namespace dbaui

            ::dbaui::notifySystemWindow(this,m_pBeamer,::comphelper::mem_fun(&TaskPaneList::AddWindow));

            Reference < XFrame > xBeamerFrame( m_pViewSwitch->getORB()->getServiceManager()->createInstanceWithContext(OUString("com.sun.star.frame.Frame"), m_pViewSwitch->getORB()),UNO_QUERY );
            m_xBeamer.set( xBeamerFrame );
            OSL_ENSURE(m_xBeamer.is(),"No frame created!");
            m_xBeamer = Frame::create( m_pViewSwitch->getORB() );
            m_xBeamer->initialize( VCLUnoHelper::GetInterface ( m_pBeamer ) );

            // notify layout manager to not create internal toolbars
            Reference < XPropertySet > xPropSet( xBeamerFrame, UNO_QUERY );
            try
            {
                const OUString aLayoutManager( "LayoutManager" );
                Reference < XPropertySet > xLMPropSet(xPropSet->getPropertyValue( aLayoutManager ),UNO_QUERY);

                Reference < XPropertySet > xLMPropSet(m_xBeamer->getLayoutManager(), UNO_QUERY);
                if ( xLMPropSet.is() )
                {
                    const OUString aAutomaticToolbars( "AutomaticToolbars" );
@@ -222,7 +218,7 @@ namespace dbaui
            // append our frame
            Reference < XFramesSupplier > xSup(_xFrame,UNO_QUERY);
            Reference < XFrames > xFrames = xSup->getFrames();
            xFrames->append( m_xBeamer );
            xFrames->append( Reference<XFrame>(m_xBeamer,UNO_QUERY_THROW) );

            Size aSize = GetOutputSizePixel();
            Size aBeamer(aSize.Width(),sal_Int32(aSize.Height()*0.33));
diff --git a/dbaccess/source/ui/querydesign/querycontroller.cxx b/dbaccess/source/ui/querydesign/querycontroller.cxx
index ca36ffe..960c8a0 100644
--- a/dbaccess/source/ui/querydesign/querycontroller.cxx
+++ b/dbaccess/source/ui/querydesign/querycontroller.cxx
@@ -1192,7 +1192,7 @@ void SAL_CALL OQueryController::disposing( const EventObject& Source ) throw(Run
    {
        if ( Source.Source == m_aCurrentFrame.getFrame() )
        {   // our frame is being disposed -> close the preview window (if we have one)
            Reference< XFrame > xPreviewFrame( getContainer()->getPreviewFrame() );
            Reference< XFrame2 > xPreviewFrame( getContainer()->getPreviewFrame() );
            ::comphelper::disposeComponent( xPreviewFrame );
        }
        else if ( Source.Source == getContainer()->getPreviewFrame() )
diff --git a/embedserv/source/embed/docholder.cxx b/embedserv/source/embed/docholder.cxx
index e5a7511..e56f66f 100644
--- a/embedserv/source/embed/docholder.cxx
+++ b/embedserv/source/embed/docholder.cxx
@@ -30,36 +30,37 @@

#include "common.h"
#include <Windows.h>
#include <com/sun/star/lang/SystemDependent.hpp>
#include <com/sun/star/awt/XTopWindow.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/awt/XView.hpp>
#include <com/sun/star/awt/Toolkit.hpp>
#include <com/sun/star/awt/XSystemChildFactory.hpp>
#include <com/sun/star/awt/XSystemDependentWindowPeer.hpp>
#include <com/sun/star/awt/XSystemDependentMenuPeer.hpp>
#include <com/sun/star/ui/XUIElement.hpp>
#include <com/sun/star/awt/WindowAttribute.hpp>
#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/util/XCloseBroadcaster.hpp>
#include <com/sun/star/util/XCloseAble.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/bridge/XBridgeSupplier2.hpp>
#include <com/sun/star/bridge/ModelDependent.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
#include <com/sun/star/document/MacroExecMode.hpp>
#include <com/sun/star/embed/EmbedMapUnits.hpp>
#include <com/sun/star/embed/XVisualObject.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/frame/XModel.hpp>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/XFramesSupplier.hpp>
#include <com/sun/star/frame/FrameSearchFlag.hpp>
#include <com/sun/star/frame/XStatusListener.hpp>
#include <com/sun/star/util/XModifyBroadcaster.hpp>
#include <com/sun/star/frame/XDispatchProviderInterception.hpp>
#include <com/sun/star/awt/XTopWindow.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/awt/XView.hpp>
#include <com/sun/star/bridge/XBridgeSupplier2.hpp>
#include <com/sun/star/bridge/ModelDependent.hpp>
#include <com/sun/star/embed/EmbedMapUnits.hpp>
#include <com/sun/star/embed/XVisualObject.hpp>
#include <com/sun/star/document/MacroExecMode.hpp>
#include <com/sun/star/lang/SystemDependent.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/task/InteractionHandler.hpp>
#include <com/sun/star/ui/XUIElement.hpp>
#include <com/sun/star/util/XCloseBroadcaster.hpp>
#include <com/sun/star/util/XCloseAble.hpp>
#include <com/sun/star/util/XModifyBroadcaster.hpp>
#include <comphelper/processfactory.hxx>
#include <osl/diagnose.h>
#include <rtl/process.h>
@@ -348,28 +349,12 @@ HRESULT DocumentHolder::InPlaceActivate(
            m_xFrame->activate();
        else {
            // create frame and initialize it with with the created window
            static const OUString aFrameServiceName( "com.sun.star.frame.Frame" );
            m_xFrame = uno::Reference<frame::XFrame>(
                m_xFactory->createInstance(aFrameServiceName),
                uno::UNO_QUERY);

            if(!m_xFrame.is())
                return ERROR;

            m_xFrame = frame::Frame::create( m_xFactory );
            m_xFrame->initialize(m_xEditWindow);

            uno::Reference<frame::XDispatchProviderInterception>
                xDPI(m_xFrame,uno::UNO_QUERY);
            if(xDPI.is())
                xDPI->registerDispatchProviderInterceptor( CreateNewInterceptor() );
            m_xFrame->registerDispatchProviderInterceptor( CreateNewInterceptor() );

            uno::Reference<beans::XPropertySet> xPS(m_xFrame,uno::UNO_QUERY);
            if( xPS.is() )
            {
                aAny = xPS->getPropertyValue(
                    OUString("LayoutManager"));
                aAny >>= m_xLayoutManager;
            }
            m_xLayoutManager.set( m_xFrame->getLayoutManager(), UNO_QUERY_THROW );

            if(m_xLayoutManager.is())
                m_xLayoutManager->setDockingAreaAcceptor(this);
@@ -378,7 +363,7 @@ HRESULT DocumentHolder::InPlaceActivate(
            LoadDocInFrame( sal_True );

            uno::Reference< frame::XDesktop2 > xDesktop = frame::Desktop::create(comphelper::getComponentContext(m_xFactory));
            xDesktop->getFrames()->append(m_xFrame);
            xDesktop->getFrames()->append( uno::Reference<frame::XFrame>(m_xFrame, uno::UNO_QUERY_THROW) );

            // determine the menuhandle to get menutitems.
            if(m_xLayoutManager.is()) {
@@ -661,7 +646,7 @@ void DocumentHolder::DisconnectFrameDocument( sal_Bool bComplete )

    if ( bComplete )
    {
        m_xFrame = uno::Reference< frame::XFrame>();
        m_xFrame = uno::Reference<frame::XFrame2>();
        m_pIDispatch = NULL;
        m_xDocument = uno::Reference< frame::XModel >();
    }
@@ -709,12 +694,10 @@ void DocumentHolder::CloseFrame()
        catch( const uno::Exception& ) {
        }
    else {
        uno::Reference<lang::XComponent> xComp(m_xFrame,uno::UNO_QUERY);
        if(xComp.is())
            xComp->dispose();
        m_xFrame->dispose();
    }

    m_xFrame = uno::Reference< frame::XFrame >();
    m_xFrame = uno::Reference< frame::XFrame2 >();
}

void DocumentHolder::SetDocument( const uno::Reference< frame::XModel >& xDoc, sal_Bool bLink )
@@ -761,9 +744,7 @@ sal_Bool DocumentHolder::ExecuteSuspendCloseFrame()
                        xCloseable->close(sal_True);
                    else
                    {
                        uno::Reference<lang::XComponent> xComp( m_xFrame, uno::UNO_QUERY_THROW );
                        if( xComp.is() )
                            xComp->dispose();
                        m_xFrame->dispose();
                    }
                }
                catch( const util::CloseVetoException& )
@@ -777,13 +758,13 @@ sal_Bool DocumentHolder::ExecuteSuspendCloseFrame()
        {
        }

        m_xFrame = uno::Reference< frame::XFrame >();
        m_xFrame = uno::Reference< frame::XFrame2 >();
    }

    return sal_True;
}

uno::Reference< frame::XFrame > DocumentHolder::DocumentFrame()
uno::Reference< frame::XFrame2 > DocumentHolder::DocumentFrame()
{
    if(! m_xFrame.is() )
    {
@@ -795,8 +776,7 @@ uno::Reference< frame::XFrame > DocumentHolder::DocumentFrame()
        // is loaded into the frame in ::show() method the terminate listener will be removed
        // this is so only for outplace activation
        if( xFrame.is() )
            m_xFrame = xFrame->findFrame(
                OUString("_blank"),0);
            m_xFrame = xFrame->findFrame( OUString("_blank"), 0 );

        uno::Reference< util::XCloseBroadcaster > xBroadcaster(
            m_xFrame, uno::UNO_QUERY );
@@ -811,10 +791,7 @@ uno::Reference< frame::XFrame > DocumentHolder::DocumentFrame()
    if( m_xFrame.is() )
    {
        // intercept
        uno::Reference<frame::XDispatchProviderInterception>
            xDPI(m_xFrame,uno::UNO_QUERY);
        if(xDPI.is())
            xDPI->registerDispatchProviderInterceptor( CreateNewInterceptor() );
        m_xFrame->registerDispatchProviderInterceptor( CreateNewInterceptor() );
    }

    return m_xFrame;
@@ -868,17 +845,11 @@ void DocumentHolder::show()
            LoadDocInFrame( sal_False );

            // get rid of second closer if it is there
            uno::Reference< beans::XPropertySet > xProps( m_xFrame, uno::UNO_QUERY );
            if ( xProps.is() )
            uno::Reference< beans::XPropertySet > xLMProps( m_xFrame->getLayoutManager(), uno::UNO_QUERY );
            if ( xLMProps.is() )
            {
                uno::Reference< frame::XLayoutManager > xLayoutManager;
                xProps->getPropertyValue( OUString( "LayoutManager" ) ) >>= xLayoutManager;
                uno::Reference< beans::XPropertySet > xLMProps( xLayoutManager, uno::UNO_QUERY );
                if ( xLMProps.is() )
                {
                    xLMProps->setPropertyValue( OUString( "MenuBarCloser" ),
                                                uno::makeAny( uno::Reference< frame::XStatusListener >() ) );
                }
                xLMProps->setPropertyValue( OUString( "MenuBarCloser" ),
                                            uno::makeAny( uno::Reference< frame::XStatusListener >() ) );
            }

            if ( !m_bLink )
@@ -1007,24 +978,16 @@ void DocumentHolder::setTitle(const OUString& aDocumentName)
            }
        }
        // set the title
        uno::Reference<beans::XPropertySet> xPropSet(
            m_xFrame,uno::UNO_QUERY);
        if(xPropSet.is()) {
            uno::Any aAny;
            static const sal_Unicode u[] = { ' ','(',0 };
            static const sal_Unicode c[] = { ')',0 };
            OUString aTotalName(m_aFilterName);
            aTotalName += OUString(u);
            aTotalName += aDocumentName;
            aTotalName += OUString(c);
            aAny <<= aTotalName;
            try {
                xPropSet->setPropertyValue(
                    OUString("Title"),
                    aAny);
            }
            catch( const uno::Exception& ) {
            }
        static const sal_Unicode u[] = { ' ','(',0 };
        static const sal_Unicode c[] = { ')',0 };
        rtl::OUString aTotalName(m_aFilterName);
        aTotalName += rtl::OUString(u);
        aTotalName += aDocumentName;
        aTotalName += rtl::OUString(c);
        try {
            m_xFrame->setTitle( aTotalName );
        }
        catch( const uno::Exception& ) {
        }
    }

@@ -1383,7 +1346,7 @@ DocumentHolder::disposing(
    }

    if( m_xFrame.is() && m_xFrame == aSource.Source )
        m_xFrame = uno::Reference< frame::XFrame >();
        m_xFrame = uno::Reference< frame::XFrame2 >();
}


@@ -1421,14 +1384,14 @@ DocumentHolder::notifyClosing(
        // can happen only in case of links
        m_pIDispatch = NULL;
        m_xDocument = uno::Reference< frame::XModel >();
        m_xFrame = uno::Reference< frame::XFrame >();
        m_xFrame = uno::Reference< frame::XFrame2 >();

        LockedEmbedDocument_Impl aDocLock = m_xOleAccess->GetEmbedDocument();
        if ( aDocLock.GetEmbedDocument() )
            aDocLock.GetEmbedDocument()->OLENotifyClosing();
    }
    else if( m_xFrame.is() && m_xFrame == aSource.Source )
        m_xFrame = uno::Reference< frame::XFrame >();
        m_xFrame = uno::Reference< frame::XFrame2 >();
}

void SAL_CALL
diff --git a/embedserv/source/inc/docholder.hxx b/embedserv/source/inc/docholder.hxx
index 61c6ef8..e4f72ee 100644
--- a/embedserv/source/inc/docholder.hxx
+++ b/embedserv/source/inc/docholder.hxx
@@ -25,7 +25,7 @@
#include <com/sun/star/util/XCloseListener.hpp>
#include <com/sun/star/frame/XTerminateListener.hpp>
#include <com/sun/star/util/XModifyListener.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include <com/sun/star/frame/XDispatchProviderInterceptor.hpp>
#include <cppuhelper/implbase4.hxx>

@@ -90,7 +90,7 @@ private:


    ::com::sun::star::uno::Reference<
    ::com::sun::star::frame::XFrame > m_xFrame;
    ::com::sun::star::frame::XFrame2 > m_xFrame;

    OUString m_aContainerName,m_aDocumentNamePart,m_aFilterName;

@@ -100,7 +100,7 @@ private:


    ::com::sun::star::uno::Reference<
    ::com::sun::star::frame::XFrame > DocumentFrame();
    ::com::sun::star::frame::XFrame2 > DocumentFrame();


    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterceptor >
diff --git a/extensions/source/nsplugin/source/so_instance.cxx b/extensions/source/nsplugin/source/so_instance.cxx
index 23cd49e..0045da3 100644
--- a/extensions/source/nsplugin/source/so_instance.cxx
+++ b/extensions/source/nsplugin/source/so_instance.cxx
@@ -31,6 +31,7 @@
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/DispatchHelper.hpp>
#include <com/sun/star/frame/XDispatchProviderInterception.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/lang/SystemDependent.hpp>
#include <com/sun/star/awt/Toolkit.hpp>
#include <com/sun/star/awt/XVclWindowPeer.hpp>
@@ -172,14 +173,7 @@ sal_Bool SoPluginInstance::LoadDocument(NSP_HWND hParent)
            m_nX, m_nY, m_nWidth, m_nHeight, m_nFlag);

        // create frame
        m_xFrame = Reference< frame::XFrame >(
            mxRemoteMSF->createInstance( OUString("com.sun.star.frame.Frame")),
            uno::UNO_QUERY );
        if (!m_xFrame.is())
        {
            debug_fprintf(NSP_LOG_APPEND, "can not create frame\n");
            return sal_False;
        }
        m_xFrame = frame::Frame::create( xContext );

        // initialize frame
        m_xFrame->initialize( m_xUnoWin );
@@ -208,7 +202,7 @@ sal_Bool SoPluginInstance::LoadDocument(NSP_HWND hParent)
        }

        // append m_xFrame to m_xFrames
        m_xFrames->append( m_xFrame );
        m_xFrames->append( Reference<frame::XFrame>(m_xFrame, uno::UNO_QUERY_THROW) );

        // create XComponentLoader
        Reference< frame::XComponentLoader > xLoader( m_xFrame, uno::UNO_QUERY );
@@ -425,7 +419,7 @@ sal_Bool SoPluginInstance::Destroy(void)

    m_xUnoWin = Reference< awt::XWindow >();
    m_xComponent = Reference< XComponent >();
    m_xFrame = Reference< frame::XFrame >();
    m_xFrame = Reference< frame::XFrame2 >();
    m_xFrames = Reference< frame::XFrames >();
    m_xDispatcher = Reference< frame::XDispatchHelper >();
    m_xDispatchProvider = Reference< frame::XDispatchProvider >();
diff --git a/extensions/source/nsplugin/source/so_instance.hxx b/extensions/source/nsplugin/source/so_instance.hxx
index 1af9146..92b771e 100644
--- a/extensions/source/nsplugin/source/so_instance.hxx
+++ b/extensions/source/nsplugin/source/so_instance.hxx
@@ -37,6 +37,7 @@
#include <com/sun/star/uno/XNamingService.hpp>
#include <com/sun/star/connection/ConnectionSetupException.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/frame/XLayoutManager.hpp>
#include <com/sun/star/util/URL.hpp>
#include <com/sun/star/frame/XStorable.hpp>
#include <com/sun/star/io/XSeekable.hpp>
@@ -47,7 +48,7 @@
#include <com/sun/star/awt/WindowDescriptor.hpp>
#include <rtl/ustring.hxx>
#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include <com/sun/star/frame/XDispatchHelper.hpp>

#include "ns_debug.hxx"
@@ -77,7 +78,7 @@ private:
    // StarOffice component window
    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > m_xComponent;
    // StarOffice frame for this Plugin
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame;
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame2 > m_xFrame;
    // Frames of StarOffice
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrames > m_xFrames;
    // Dispatcher of frame
diff --git a/framework/inc/macros/xtypeprovider.hxx b/framework/inc/macros/xtypeprovider.hxx
index 3de533f..85648a7 100644
--- a/framework/inc/macros/xtypeprovider.hxx
+++ b/framework/inc/macros/xtypeprovider.hxx
@@ -638,6 +638,34 @@ ________________________________________________________________________________
                                                                    ))                                                                                          \
                                        )

//  implementation of XTypeProvider with 20 additional interfaces for getTypes()
#define DEFINE_XTYPEPROVIDER_21( CLASS, TYPE1, TYPE2, TYPE3, TYPE4, TYPE5, TYPE6, TYPE7, TYPE8, TYPE9, TYPE10, TYPE11, TYPE12, TYPE13, TYPE14, TYPE15, TYPE16, TYPE17, TYPE18, TYPE19, TYPE20, TYPE21 ) \
    PRIVATE_DEFINE_XTYPEPROVIDER_LARGE  (   CLASS,                                                                                                              \
                                            (PRIVATE_DEFINE_TYPE_12 (   TYPE1   ,                                                                               \
                                                                        TYPE2   ,                                                                               \
                                                                        TYPE3   ,                                                                               \
                                                                        TYPE4   ,                                                                               \
                                                                        TYPE5   ,                                                                               \
                                                                        TYPE6   ,                                                                               \
                                                                        TYPE7   ,                                                                               \
                                                                        TYPE8   ,                                                                               \
                                                                        TYPE9   ,                                                                               \
                                                                        TYPE10  ,                                                                               \
                                                                        TYPE11  ,                                                                               \
                                                                        TYPE12                                                                                  \
                                                                    )),                                                                                         \
                                            (PRIVATE_DEFINE_TYPE_9  (   TYPE13  ,                                                                               \
                                                                        TYPE14  ,                                                                               \
                                                                        TYPE15  ,                                                                               \
                                                                        TYPE16  ,                                                                               \
                                                                        TYPE17  ,                                                                               \
                                                                        TYPE18  ,                                                                               \
                                                                        TYPE19  ,                                                                               \
                                                                        TYPE20  ,                                                                               \
                                                                        TYPE21                                                                                  \
                                                                    ))                                                                                          \
                                        )

//  implementation of XTypeProvider with 1 additional interface for getTypes() AND using 1 baseclass
#define DEFINE_XTYPEPROVIDER_1_WITH_BASECLASS( CLASS, BASECLASS, TYPE1 )                                            \
    PRIVATE_DEFINE_XTYPEPROVIDER_BASECLASS  (   CLASS,                                                              \
diff --git a/framework/inc/services.h b/framework/inc/services.h
index 956568d..bf15026 100644
--- a/framework/inc/services.h
+++ b/framework/inc/services.h
@@ -28,7 +28,6 @@ namespace framework{
//  used servicenames by framework
//_________________________________________________________________________________________________________________

#define SERVICENAME_FRAME                                       DECLARE_ASCII("com.sun.star.frame.Frame"                            )
#define SERVICENAME_FRAMELOADERFACTORY                          DECLARE_ASCII("com.sun.star.frame.FrameLoaderFactory"               )
#define SERVICENAME_FILTERFACTORY                               DECLARE_ASCII("com.sun.star.document.FilterFactory"                 )
#define SERVICENAME_TYPEDETECTION                               DECLARE_ASCII("com.sun.star.document.TypeDetection"                 )
@@ -62,7 +61,6 @@ namespace framework{
//  used implementationnames by framework
//_________________________________________________________________________________________________________________

#define IMPLEMENTATIONNAME_FRAME                                DECLARE_ASCII("com.sun.star.comp.framework.Frame"                   )
#define IMPLEMENTATIONNAME_DESKTOP                              DECLARE_ASCII("com.sun.star.comp.framework.Desktop"                 )
#define IMPLEMENTATIONNAME_URLTRANSFORMER                       DECLARE_ASCII("com.sun.star.comp.framework.URLTransformer"          )
#define IMPLEMENTATIONNAME_GENERICFRAMELOADER                   DECLARE_ASCII("com.sun.star.comp.office.FrameLoader"                )
diff --git a/framework/inc/services/frame.hxx b/framework/inc/services/frame.hxx
index cc050cf..492c398 100644
--- a/framework/inc/services/frame.hxx
+++ b/framework/inc/services/frame.hxx
@@ -35,23 +35,6 @@
#include <macros/xserviceinfo.hxx>
#include <general.h>

#include <com/sun/star/frame/XDispatchInformationProvider.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/frame/XController.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XDispatchRecorderSupplier.hpp>
#include <com/sun/star/frame/XDispatchProviderInterception.hpp>
#include <com/sun/star/frame/XDispatchProviderInterceptor.hpp>
#include <com/sun/star/lang/XEventListener.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrameActionListener.hpp>
#include <com/sun/star/frame/XFrames.hpp>
#include <com/sun/star/frame/XFramesSupplier.hpp>
#include <com/sun/star/frame/XTitle.hpp>
#include <com/sun/star/frame/XTitleChangeBroadcaster.hpp>
#include <com/sun/star/task/XStatusIndicator.hpp>
#include <com/sun/star/task/XStatusIndicatorFactory.hpp>
#include <com/sun/star/awt/XTopWindowListener.hpp>
#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/awt/XTopWindow.hpp>
@@ -60,8 +43,18 @@
#include <com/sun/star/awt/FocusEvent.hpp>
#include <com/sun/star/datatransfer/dnd/XDropTargetListener.hpp>
#include <com/sun/star/document/XActionLockable.hpp>
#include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/lang/XEventListener.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/frame/XController.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/frame/XDispatchProviderInterceptor.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include <com/sun/star/frame/XFrameActionListener.hpp>
#include <com/sun/star/frame/XLayoutManager.hpp>
#include <com/sun/star/frame/XTitle.hpp>
#include <com/sun/star/frame/XTitleChangeBroadcaster.hpp>
#include <com/sun/star/task/XStatusIndicator.hpp>
#include <com/sun/star/util/XCloseable.hpp>

#include <unotools/cmdoptions.hxx>
#include <cppuhelper/interfacecontainer.hxx>
@@ -111,11 +104,7 @@ class WindowCommandDispatch;
class Frame :   // interfaces
                public  css::lang::XTypeProvider                    ,
                public  css::lang::XServiceInfo                     ,
                public  css::frame::XFramesSupplier                 ,   // => XFrame => XComponent
                public  css::frame::XDispatchProvider               ,
                public  css::frame::XDispatchProviderInterception   ,
                public  css::frame::XDispatchInformationProvider    ,
                public  css::task::XStatusIndicatorFactory          ,
                public  css::frame::XFrame2                         ,
                public  css::awt::XWindowListener                   ,   // => XEventListener
                public  css::awt::XTopWindowListener                ,
                public  css::awt::XFocusListener                    ,
@@ -290,6 +279,19 @@ class Frame :   // interfaces
        virtual void SAL_CALL addTitleChangeListener   ( const css::uno::Reference< css::frame::XTitleChangeListener >& xListener) throw (css::uno::RuntimeException);
        virtual void SAL_CALL removeTitleChangeListener( const css::uno::Reference< css::frame::XTitleChangeListener >& xListenr ) throw (css::uno::RuntimeException);


        //---------------------------------------------------------------------------------------------------------
        //  XFrame2 attributes
        //---------------------------------------------------------------------------------------------------------
        virtual css::uno::Reference<css::container::XNameContainer> SAL_CALL getUserDefinedAttributes() throw (css::uno::RuntimeException);

        virtual css::uno::Reference<css::frame::XDispatchRecorderSupplier> SAL_CALL getDispatchRecorderSupplier() throw (css::uno::RuntimeException);
        virtual void SAL_CALL setDispatchRecorderSupplier(const css::uno::Reference<css::frame::XDispatchRecorderSupplier>&) throw (css::uno::RuntimeException);

        virtual css::uno::Reference<css::uno::XInterface> SAL_CALL getLayoutManager() throw (css::uno::RuntimeException);
        virtual void SAL_CALL setLayoutManager(const css::uno::Reference<css::uno::XInterface>&) throw (css::uno::RuntimeException);


        //---------------------------------------------------------------------------------------------------------
        //  PropertySetHelper => XPropertySet, XPropertySetInfo
        //---------------------------------------------------------------------------------------------------------
@@ -331,7 +333,7 @@ class Frame :   // interfaces

        // non threadsafe
        void                                                    impl_checkMenuCloser            (                                                                        );
        void                                                    impl_setCloser                  ( const css::uno::Reference< css::frame::XFrame >&      xFrame           ,
        void                                                    impl_setCloser                  ( const css::uno::Reference< css::frame::XFrame2 >&     xFrame           ,
                                                                                                        sal_Bool                                        bState           );
        void                                                    impl_disposeContainerWindow     (       css::uno::Reference< css::awt::XWindow >&       xWindow          );
        static const css::uno::Sequence< css::beans::Property > impl_getStaticPropertyDescriptor(                                                                        );
@@ -403,8 +405,8 @@ 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
        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!)
        css::uno::Reference< ::com::sun::star::frame::XLayoutManager >    m_xLayoutManager                    ;   /// is used to layout the child windows of the frame.
        static css::uno::WeakReference< css::frame::XFrame2 >                   m_xCloserFrame                      ;   /// holds the only frame, which must show the special closer menu item (can be NULL!)
        css::uno::Reference< ::css::frame::XLayoutManager >    m_xLayoutManager                    ;   /// is used to layout the child windows of the frame.
        css::uno::Reference< css::frame::XDispatchInformationProvider >         m_xDispatchInfoHelper               ;
        css::uno::Reference< css::frame::XTitle >                               m_xTitleHelper                      ;

diff --git a/framework/inc/services/taskcreatorsrv.hxx b/framework/inc/services/taskcreatorsrv.hxx
index 2d80f43..68654e0 100644
--- a/framework/inc/services/taskcreatorsrv.hxx
+++ b/framework/inc/services/taskcreatorsrv.hxx
@@ -28,7 +28,7 @@
#include <stdtypes.h>

#include <com/sun/star/uno/XInterface.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include <com/sun/star/lang/XTypeProvider.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
@@ -132,14 +132,14 @@ class TaskCreatorService : public  css::lang::XTypeProvider

        void implts_applyDocStyleToWindow(const css::uno::Reference< css::awt::XWindow >& xWindow) const;

        css::uno::Reference< css::frame::XFrame > implts_createFrame( const css::uno::Reference< css::frame::XFrame >& xParentFrame     ,
        css::uno::Reference< css::frame::XFrame2 > implts_createFrame( const css::uno::Reference< css::frame::XFrame >& xParentFrame     ,
                                                                      const css::uno::Reference< css::awt::XWindow >&  xContainerWindow ,
                                                                      const OUString&                           sName            );

        void implts_establishWindowStateListener( const css::uno::Reference< css::frame::XFrame >& xFrame );
        void implts_establishTitleBarUpdate( const css::uno::Reference< css::frame::XFrame >& xFrame );
        void implts_establishWindowStateListener( const css::uno::Reference< css::frame::XFrame2 >& xFrame );
        void implts_establishTitleBarUpdate( const css::uno::Reference< css::frame::XFrame2 >& xFrame );

        void implts_establishDocModifyListener( const css::uno::Reference< css::frame::XFrame >& xFrame );
        void implts_establishDocModifyListener( const css::uno::Reference< css::frame::XFrame2 >& xFrame );

        OUString impl_filterNames( const OUString& sName );
};
diff --git a/framework/source/services/frame.cxx b/framework/source/services/frame.cxx
index 6c6a32ae..44d30d0 100644
--- a/framework/source/services/frame.cxx
+++ b/framework/source/services/frame.cxx
@@ -91,22 +91,23 @@

namespace framework{

css::uno::WeakReference< css::frame::XFrame > Frame::m_xCloserFrame = css::uno::WeakReference< css::frame::XFrame >();
css::uno::WeakReference< css::frame::XFrame2 > Frame::m_xCloserFrame = css::uno::WeakReference< css::frame::XFrame2 >();

//*****************************************************************************************************************
//  XInterface, XTypeProvider, XServiceInfo
//*****************************************************************************************************************
DEFINE_XINTERFACE_21                (   Frame                                                                   ,
DEFINE_XINTERFACE_22                (   Frame                                                                   ,
                                        OWeakObject                                                             ,
                                        DIRECT_INTERFACE(css::lang::XTypeProvider                               ),
                                        DIRECT_INTERFACE(css::lang::XServiceInfo                                ),
                                        DIRECT_INTERFACE(css::frame::XFrame2                                    ),
                                        DIRECT_INTERFACE(css::frame::XFramesSupplier                            ),
                                        DIRECT_INTERFACE(css::frame::XFrame                                     ),
                                        DIRECT_INTERFACE(css::lang::XComponent                                  ),
                                        DIRECT_INTERFACE(css::task::XStatusIndicatorFactory                     ),
                                        DIRECT_INTERFACE(css::frame::XDispatchProvider                          ),
                                        DIRECT_INTERFACE(css::frame::XDispatchInformationProvider               ),
                                        DIRECT_INTERFACE(css::frame::XDispatchProviderInterception              ),
                                        DIRECT_INTERFACE(css::lang::XComponent                                  ),
                                        DIRECT_INTERFACE(css::beans::XPropertySet                               ),
                                        DIRECT_INTERFACE(css::beans::XPropertySetInfo                           ),
                                        DIRECT_INTERFACE(css::awt::XWindowListener                              ),
@@ -121,18 +122,19 @@ DEFINE_XINTERFACE_21                (   Frame                                   
                                        DIRECT_INTERFACE(css::frame::XTitleChangeBroadcaster                    )
                                    )

DEFINE_XTYPEPROVIDER_20             (   Frame                                                                   ,
DEFINE_XTYPEPROVIDER_21             (   Frame                                                                   ,
                                        css::lang::XTypeProvider                                                ,
                                        css::lang::XServiceInfo                                                 ,
                                        css::frame::XFrame2                                                     ,
                                        css::frame::XFramesSupplier                                             ,
                                        css::frame::XFrame                                                      ,
                                        css::lang::XComponent                                                   ,
                                        css::task::XStatusIndicatorFactory                                      ,
                                        css::beans::XPropertySet                                                ,
                                        css::beans::XPropertySetInfo                                            ,
                                        css::frame::XDispatchProvider                                           ,
                                        css::frame::XDispatchInformationProvider                                ,
                                        css::frame::XDispatchProviderInterception                               ,
                                        css::lang::XComponent                                                   ,
                                        css::beans::XPropertySet                                                ,
                                        css::beans::XPropertySetInfo                                            ,
                                        css::awt::XWindowListener                                               ,
                                        css::awt::XTopWindowListener                                            ,
                                        css::awt::XFocusListener                                                ,
@@ -146,8 +148,8 @@ DEFINE_XTYPEPROVIDER_20             (   Frame                                   

DEFINE_XSERVICEINFO_MULTISERVICE    (   Frame                                                                   ,
                                        ::cppu::OWeakObject                                                     ,
                                        SERVICENAME_FRAME                                                       ,
                                        IMPLEMENTATIONNAME_FRAME
                                        "com.sun.star.frame.Frame"                                              ,
                                        OUString("com.sun.star.comp.framework.Frame")
                                    )

DEFINE_INIT_SERVICE                 (   Frame,
@@ -1735,6 +1737,47 @@ void SAL_CALL Frame::removeTitleChangeListener( const css::uno::Reference< css::
    xTitle->removeTitleChangeListener(xListener);
}

css::uno::Reference<css::container::XNameContainer> SAL_CALL Frame::getUserDefinedAttributes() throw (css::uno::RuntimeException)
{
    // optional attribute
    return 0;
}

css::uno::Reference<css::frame::XDispatchRecorderSupplier> SAL_CALL Frame::getDispatchRecorderSupplier() throw (css::uno::RuntimeException)
{
    ReadGuard aReadLock( m_aLock );
    return m_xDispatchRecorderSupplier;
}

void SAL_CALL Frame::setDispatchRecorderSupplier(const css::uno::Reference<css::frame::XDispatchRecorderSupplier>& p) throw (css::uno::RuntimeException)
{
    TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS );

    /* SAFE { */
        WriteGuard aWriteLock( m_aLock );
            m_xDispatchRecorderSupplier.set(p);
        aWriteLock.unlock();
    /* } SAFE */
}

css::uno::Reference<css::uno::XInterface> SAL_CALL Frame::getLayoutManager() throw (css::uno::RuntimeException)
{
    ReadGuard aReadLock( m_aLock );
    return m_xLayoutManager;
}

void SAL_CALL Frame::setLayoutManager(const css::uno::Reference<css::uno::XInterface>& p1) throw (css::uno::RuntimeException)
{
    TransactionGuard aTransaction( m_aTransactionManager, E_HARDEXCEPTIONS );

    /* SAFE { */
        WriteGuard aWriteLock( m_aLock );
            m_xLayoutManager.set(p1, css::uno::UNO_QUERY_THROW);
        aWriteLock.unlock();
    /* } SAFE */
}


/*-****************************************************************************************************/
void Frame::implts_forgetSubFrames()
{
@@ -3011,7 +3054,7 @@ void Frame::implts_checkSuicide()
                <TRUE/> enable; <FALSE/> disable this state
 */

void Frame::impl_setCloser( /*IN*/ const css::uno::Reference< css::frame::XFrame >& xFrame ,
void Frame::impl_setCloser( /*IN*/ const css::uno::Reference< css::frame::XFrame2 >& xFrame ,
                            /*IN*/       sal_Bool                                   bState  )
{
    // Note: If start module isnt installed - no closer has to be shown!
@@ -3068,7 +3111,7 @@ void Frame::impl_checkMenuCloser()
        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;
    css::uno::Reference< css::frame::XFrame2 > xNewCloserFrame;

    // -----------------------------
    // a)
@@ -3088,7 +3131,7 @@ void Frame::impl_checkMenuCloser()
    {
        // others[0] can't be the backing component!
        // Because it's set at the special member aAnalyzer.m_xBackingComponent ... :-)
        xNewCloserFrame = aAnalyzer.m_lOtherVisibleFrames[0];
        xNewCloserFrame.set( aAnalyzer.m_lOtherVisibleFrames[0], css::uno::UNO_QUERY_THROW );
    }
    // -----------------------------
    // b)
@@ -3109,7 +3152,7 @@ void Frame::impl_checkMenuCloser()
    // 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);
    css::uno::Reference< css::frame::XFrame2 > xCloserFrame (m_xCloserFrame.get(), css::uno::UNO_QUERY);
    if (xCloserFrame!=xNewCloserFrame)
    {
        if (xCloserFrame.is())
diff --git a/framework/source/services/taskcreatorsrv.cxx b/framework/source/services/taskcreatorsrv.cxx
index b90ef2c..52f5ebe 100644
--- a/framework/source/services/taskcreatorsrv.cxx
+++ b/framework/source/services/taskcreatorsrv.cxx
@@ -27,7 +27,7 @@
#include <loadenv/targethelper.hxx>
#include <services.h>

#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/frame/XController.hpp>
#include <com/sun/star/frame/XModel.hpp>
#include <com/sun/star/frame/XDesktop.hpp>
@@ -160,7 +160,7 @@ css::uno::Reference< css::uno::XInterface > SAL_CALL TaskCreatorService::createI
    //------------------->

    // create the new frame
    css::uno::Reference< css::frame::XFrame > xFrame = implts_createFrame(xParentFrame, xContainerWindow, sRightName);
    css::uno::Reference< css::frame::XFrame2 > xFrame = implts_createFrame(xParentFrame, xContainerWindow, sRightName);

    // special freature:
    // A special listener will restore pos/size states in case
@@ -264,7 +264,7 @@ css::uno::Reference< css::awt::XWindow > TaskCreatorService::implts_createContai
}

//-----------------------------------------------
css::uno::Reference< css::frame::XFrame > TaskCreatorService::implts_createFrame( const css::uno::Reference< css::frame::XFrame >& xParentFrame    ,
css::uno::Reference< css::frame::XFrame2 > TaskCreatorService::implts_createFrame( const css::uno::Reference< css::frame::XFrame >& xParentFrame    ,
                                                                                  const css::uno::Reference< css::awt::XWindow >&  xContainerWindow,
                                                                                  const OUString&                           sName           )
{
@@ -275,7 +275,7 @@ css::uno::Reference< css::frame::XFrame > TaskCreatorService::implts_createFrame
    // <- SAFE

    // create new frame.
    css::uno::Reference< css::frame::XFrame > xNewFrame( xSMGR->createInstance( SERVICENAME_FRAME ), css::uno::UNO_QUERY_THROW );
    css::uno::Reference< css::frame::XFrame2 > xNewFrame = css::frame::Frame::create( comphelper::getComponentContext(xSMGR) );

    // Set window on frame.
    // Do it before calling any other interface methods ...
@@ -288,7 +288,7 @@ css::uno::Reference< css::frame::XFrame > TaskCreatorService::implts_createFrame
    {
        css::uno::Reference< css::frame::XFramesSupplier > xSupplier  (xParentFrame, css::uno::UNO_QUERY_THROW);
        css::uno::Reference< css::frame::XFrames >         xContainer = xSupplier->getFrames();
        xContainer->append( xNewFrame );
        xContainer->append( css::uno::Reference<css::frame::XFrame>(xNewFrame, css::uno::UNO_QUERY_THROW) );
    }

    // Set it's API name (if there is one from outside)
@@ -299,7 +299,7 @@ css::uno::Reference< css::frame::XFrame > TaskCreatorService::implts_createFrame
}

//-----------------------------------------------
void TaskCreatorService::implts_establishWindowStateListener( const css::uno::Reference< css::frame::XFrame >& xFrame )
void TaskCreatorService::implts_establishWindowStateListener( const css::uno::Reference< css::frame::XFrame2 >& xFrame )
{
    // SAFE  ->
    ReadGuard aReadLock( m_aLock );
@@ -320,7 +320,7 @@ void TaskCreatorService::implts_establishWindowStateListener( const css::uno::Re
}

//-----------------------------------------------
void TaskCreatorService::implts_establishDocModifyListener( const css::uno::Reference< css::frame::XFrame >& xFrame )
void TaskCreatorService::implts_establishDocModifyListener( const css::uno::Reference< css::frame::XFrame2 >& xFrame )
{
    // SAFE  ->
    ReadGuard aReadLock( m_aLock );
@@ -340,7 +340,7 @@ void TaskCreatorService::implts_establishDocModifyListener( const css::uno::Refe
}

//-----------------------------------------------
void TaskCreatorService::implts_establishTitleBarUpdate( const css::uno::Reference< css::frame::XFrame >& xFrame )
void TaskCreatorService::implts_establishTitleBarUpdate( const css::uno::Reference< css::frame::XFrame2 >& xFrame )
{
    // SAFE  ->
    ReadGuard aReadLock( m_aLock );
diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk
index 092cefb..3ad428a 100644
--- a/offapi/UnoApi_offapi.mk
+++ b/offapi/UnoApi_offapi.mk
@@ -161,6 +161,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/frame,\
	DispatchRecorder \
	DispatchRecorderSupplier \
	DocumentTemplates \
	Frame \
	GlobalEventBroadcaster \
	MediaTypeDetectionHelper \
	ModuleManager \
@@ -896,7 +897,6 @@ $(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star/frame,\
	DesktopTask \
	DesktopTasks \
	DispatchProvider \
	Frame \
	FrameControl \
	FrameLoader \
	FrameLoaderFactory \
@@ -2546,6 +2546,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/frame,\
	XExtendedFilterDetection \
	XFilterDetect \
	XFrame \
	XFrame2 \
	XFrameActionListener \
	XFrameLoader \
	XFrameLoaderQuery \
diff --git a/offapi/com/sun/star/frame/Frame.idl b/offapi/com/sun/star/frame/Frame.idl
index 5d72240..a354fed 100644
--- a/offapi/com/sun/star/frame/Frame.idl
+++ b/offapi/com/sun/star/frame/Frame.idl
@@ -19,15 +19,8 @@
#ifndef __com_sun_star_frame_Frame_idl__
#define __com_sun_star_frame_Frame_idl__

#include <com/sun/star/frame/XFrame.idl>
#include <com/sun/star/frame/XDispatchProvider.idl>
#include <com/sun/star/frame/XDispatchRecorderSupplier.idl>
#include <com/sun/star/frame/XDispatchProviderInterception.idl>
#include <com/sun/star/frame/XFramesSupplier.idl>
#include <com/sun/star/task/XStatusIndicatorFactory.idl>
#include <com/sun/star/beans/XPropertySet.idl>
#include <com/sun/star/frame/XDispatchInformationProvider.idl>
#include <com/sun/star/xml/UserDefinedAttributesSupplier.idl>
#include <com/sun/star/frame/XFrame2.idl>
#include <com/sun/star/awt/XWindow.idl>


 module com {  module sun {  module star {  module frame {
@@ -45,113 +38,7 @@

    @see Desktop
 */
published service Frame
{
    /** contains user defined attributes.

        @see    <type scope="com::sun::star::xml">UserDefinedAttributesSupplier</type>
     */
    [optional] service com::sun::star::xml::UserDefinedAttributesSupplier;

    /** allows the component to be loaded and accessed
        within the frame; it is the main connection to the
        environment of the component.
     */
    interface XFrame;

    /** provides access to dispatchers for the frame.

        <p>
        What kind of URLs a frame accepts in the calls to <member>XDispatchProvider::queryDispatch()</member>,
        and how the returned dispatcher handles dispatches is completely implementation dependent
        (though of course the restrictions of <type>XDispatchProvider</type> must be met).
        Frame implementations may (optionally) support special targets in the call to
        <member>XDispatchProvider::queryDispatch()</member>.
        Such special targets are passed as target frame name. They may, in addition,
        require special frame search flags (see <type>FrameSearchFlag</type>), or,
        in opposite, limit the set of allowed flags.<br>
        Common special targets include:
        <ul>
                        <li><b>_blank</b><br> is used to create a new frame when dispatching the URL.</li>
            <li><b>_default</b><br> is used to recycle empty or create a new frame when dispatching the URL.</li>
            <li><b>_self</b><br> forces the frame to dispatch the URL into itself. ("" means the same)</li>
                        <li><b>_parent</b><br> dispatches the URL into the parent frame.</li>
                        <li><b>_top</b><br> dispatches the URL into the top level frame, the frame where this is invoked belongs to.</li>
        </ul>
        </p>

        @see XDispatch
        @see XFrame::findFrame()
    */
    interface XDispatchProvider;

    /** provides information about supported commands

        @since OOo 2.0
    */
    [optional] interface XDispatchInformationProvider;

    /** supports interception mechanism for dispatched URLs

        <p>
        Registered objects can intercept, suppress or reroute dispatched URLs.
        If they support another interface too (<type>XInterceptorInfo</type>)
        it's possible to perform it by directly calling of right interceptor without
        using list of all registered ones.
        </p>
     */
    interface XDispatchProviderInterception;

    /** provides access to sub frames within this frame
     */
    interface XFramesSupplier;

    /** supplies access to <type scope="com::sun::star::task">XStatusIndicator</type> objects
        for the component within the frame to show progresses
     */
    [optional] interface com::sun::star::task::XStatusIndicatorFactory;

    /** if possible it sets/gets the UI title on/from the frame container window

        <p>
        It depends from the type of the frame container window. If it is a system
        task window all will be OK. Otherwise the title can't be set.
        Setting/getting of the pure value of this property must be possible in every
        case. Only showing on the UI can be fail.
        </p>
     */
    [property] string Title;

    /** provides access to the dispatch recorder of the frame

        <p>
        Such recorder can be used to record dispatch requests.
        The supplier contains a dispatch recorder and provide the functionality
        to use it for any dispatch object from outside which supports the interface
        <type>XDispatch</type>. A supplier is available only, if recording was enabled.
        That means: if someone wishes to enable recoding on a frame he must set
        a supplier with a recorder object inside of it. Every user of dispatches
        has to check then if such supplier is available at this frame property.
        If value of this property is <NULL/> he must call <member>XDispatch::dispatch()</member>
        on the original dispatch object. If it's a valid value he must use the supplier
        by calling his method <member>XDispatchRecorderSupplier::dispatchAndRecord()</member>
        with the original dispatch object as argument.
        </p>

        <p>
        Note:<br>
        It's not recommended to cache an already gotten supplier. Because there exist
        no possibility to check for enabled/disabled recording then.
        </p>

    @since OOo 1.1.2
     */
    [optional, property] XDispatchRecorderSupplier RecorderSupplier;

    /** provides access to the <type>LayoutManager</type> of the frame.
    */
    [optional, property] com::sun::star::uno::XInterface LayoutManager;
};
published service Frame : XFrame2;


}; }; }; };
diff --git a/offapi/com/sun/star/frame/XFrame2.idl b/offapi/com/sun/star/frame/XFrame2.idl
new file mode 100644
index 0000000..d90d00b
--- /dev/null
+++ b/offapi/com/sun/star/frame/XFrame2.idl
@@ -0,0 +1,145 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */
#ifndef __com_sun_star_frame_XFrame2_idl__
#define __com_sun_star_frame_XFrame2_idl__

#include <com/sun/star/container/XNameContainer.idl>
#include <com/sun/star/frame/XDispatchInformationProvider.idl>
#include <com/sun/star/frame/XDispatchProvider.idl>
#include <com/sun/star/frame/XDispatchProviderInterception.idl>
#include <com/sun/star/frame/XDispatchRecorderSupplier.idl>
#include <com/sun/star/frame/XFramesSupplier.idl>
#include <com/sun/star/task/XStatusIndicatorFactory.idl>


module com {  module sun {  module star {  module frame {

/**
    @since LibreOffice 4.1
 */
published interface XFrame2
{
    /** contains user defined attributes.
     */
    [attribute, readonly] com::sun::star::container::XNameContainer UserDefinedAttributes;

    /** provides access to dispatchers for the frame.

        <p>
        What kind of URLs a frame accepts in the calls to <member>XDispatchProvider::queryDispatch()</member>,
        and how the returned dispatcher handles dispatches is completely implementation dependent
        (though of course the restrictions of <type>XDispatchProvider</type> must be met).
        Frame implementations may (optionally) support special targets in the call to
        <member>XDispatchProvider::queryDispatch()</member>.
        Such special targets are passed as target frame name. They may, in addition,
        require special frame search flags (see <type>FrameSearchFlag</type>), or,
        in opposite, limit the set of allowed flags.<br>
        Common special targets include:
        <ul>
                        <li><b>_blank</b><br> is used to create a new frame when dispatching the URL.</li>
            <li><b>_default</b><br> is used to recycle empty or create a new frame when dispatching the URL.</li>
            <li><b>_self</b><br> forces the frame to dispatch the URL into itself. ("" means the same)</li>
                        <li><b>_parent</b><br> dispatches the URL into the parent frame.</li>
                        <li><b>_top</b><br> dispatches the URL into the top level frame, the frame where this is invoked belongs to.</li>
        </ul>
        </p>

        @see XDispatch
        @see XFrame::findFrame()
    */
    interface XDispatchProvider;

    /** provides information about supported commands

        @since OOo 2.0
    */
    interface XDispatchInformationProvider;

    /** supports interception mechanism for dispatched URLs

        <p>
        Registered objects can intercept, suppress or reroute dispatched URLs.
        If they support another interface too (<type>XInterceptorInfo</type>)
        it's possible to perform it by directly calling of right interceptor without
        using list of all registered ones.
        </p>
     */
    interface XDispatchProviderInterception;

    /** Provides access to sub frames within this frame,
        and via it's XFrame sub-interface: Allows the component to be loaded and accessed
        within the frame; it is the main connection to the
        environment of the component.
     */
    interface XFramesSupplier; // -> XFrame

    /** supplies access to <type scope="com::sun::star::task">XStatusIndicator</type> objects
        for the component within the frame to show progresses
     */
    interface com::sun::star::task::XStatusIndicatorFactory;

    /** if possible it sets/gets the UI title on/from the frame container window

        <p>
        It depends from the type of the frame container window. If it is a system
        task window all will be OK. Otherwise the title can't be set.
        Setting/getting of the pure value of this property must be possible in every
        case. Only showing on the UI can be fail.
        </p>
     */
    [attribute] string Title;

    /** provides access to the dispatch recorder of the frame

        <p>
        Such recorder can be used to record dispatch requests.
        The supplier contains a dispatch recorder and provide the functionality
        to use it for any dispatch object from outside which supports the interface
        <type>XDispatch</type>. A supplier is available only, if recording was enabled.
        That means: if someone wishes to enable recoding on a frame he must set
        a supplier with a recorder object inside of it. Every user of dispatches
        has to check then if such supplier is available at this frame property.
        If value of this property is <NULL/> he must call <member>XDispatch::dispatch()</member>
        on the original dispatch object. If it's a valid value he must use the supplier
        by calling his method <member>XDispatchRecorderSupplier::dispatchAndRecord()</member>
        with the original dispatch object as argument.
        </p>

        <p>
        Note:<br>
        It's not recommended to cache an already gotten supplier. Because there exist
        no possibility to check for enabled/disabled recording then.
        </p>

    @since OOo 1.1.2
     */
    [attribute] XDispatchRecorderSupplier DispatchRecorderSupplier;

    /** Provides access to the <type>LayoutManager</type> of the frame.
        This is actually of type XLayoutManager, but this API is still experimental (unpublished).
    */
    [attribute] com::sun::star::uno::XInterface LayoutManager;
};


}; }; }; };

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/type_reference/types.rdb b/offapi/type_reference/types.rdb
index 86a0752..f43806a 100644
--- a/offapi/type_reference/types.rdb
+++ b/offapi/type_reference/types.rdb
Binary files differ
diff --git a/reportdesign/source/ui/inc/propbrw.hxx b/reportdesign/source/ui/inc/propbrw.hxx
index 005d1d5..aae98d4 100644
--- a/reportdesign/source/ui/inc/propbrw.hxx
+++ b/reportdesign/source/ui/inc/propbrw.hxx
@@ -20,10 +20,9 @@
#ifndef _REPORT_PROPBRW_HXX
#define _REPORT_PROPBRW_HXX

#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/awt/XControlContainer.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include <com/sun/star/inspection/XObjectInspector.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <svl/brdcst.hxx>
@@ -48,9 +47,9 @@ private:
    OModuleClient       m_aModuleClient;
    ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >
                        m_xInspectorContext;
    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
    ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >
                        m_xORB;
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame2 >
                        m_xMeAsFrame;
    ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XObjectInspector >
                        m_xBrowserController;
@@ -87,7 +86,7 @@ protected:
    DECL_LINK( OnAsyncGetFocus, void* );

public:
    PropBrw(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xORB
    PropBrw(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _xORB
            ,Window* pParent
            ,ODesignView*  _pDesignView);
    virtual ~PropBrw();
diff --git a/reportdesign/source/ui/report/DesignView.cxx b/reportdesign/source/ui/report/DesignView.cxx
index 9d9ef89..3ca115c 100644
--- a/reportdesign/source/ui/report/DesignView.cxx
+++ b/reportdesign/source/ui/report/DesignView.cxx
@@ -460,7 +460,7 @@ void ODesignView::togglePropertyBrowser(sal_Bool _bToogleOn)
{
    if ( !m_pPropWin && _bToogleOn )
    {
        m_pPropWin = new PropBrw(Reference<XMultiServiceFactory>(getController().getORB()->getServiceManager(), UNO_QUERY_THROW), m_pTaskPane,this);
        m_pPropWin = new PropBrw(getController().getORB(), m_pTaskPane,this);
        m_pPropWin->Invalidate();
        static_cast<OTaskWindow*>(m_pTaskPane)->setPropertyBrowser(m_pPropWin);
        notifySystemWindow(this,m_pPropWin,::comphelper::mem_fun(&TaskPaneList::AddWindow));
diff --git a/reportdesign/source/ui/report/propbrw.cxx b/reportdesign/source/ui/report/propbrw.cxx
index d7f4e22..0b14f2a 100644
--- a/reportdesign/source/ui/report/propbrw.cxx
+++ b/reportdesign/source/ui/report/propbrw.cxx
@@ -25,8 +25,13 @@
#include <tools/debug.hxx>
#include <tools/diagnose_ex.h>
#include <com/sun/star/awt/XLayoutConstrains.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/inspection/ObjectInspector.hpp>
#include <com/sun/star/inspection/DefaultHelpProvider.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/report/inspection/DefaultComponentInspectorModel.hpp>
#include <svx/svxids.hrc>
#include <vcl/stdtext.hxx>
#include <svx/svdview.hxx>
@@ -40,10 +45,6 @@
#include <comphelper/stl_types.hxx>
#include <comphelper/types.hxx>
#include <comphelper/sequence.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/report/inspection/DefaultComponentInspectorModel.hpp>
#include <comphelper/processfactory.hxx>
#include "SectionView.hxx"
#include "ReportSection.hxx"
@@ -92,7 +93,7 @@ DBG_NAME( rpt_PropBrw )

//----------------------------------------------------------------------------

PropBrw::PropBrw(const Reference< XMultiServiceFactory >&   _xORB,Window* pParent,ODesignView*  _pDesignView)
PropBrw::PropBrw(const Reference< XComponentContext >& _xORB, Window* pParent, ODesignView*  _pDesignView)
          :DockingWindow(pParent,WinBits(WB_STDMODELESS|WB_SIZEABLE|WB_3DLOOK|WB_ROLLABLE))
          ,m_xORB(_xORB)
          ,m_pDesignView(_pDesignView)
@@ -107,12 +108,9 @@ PropBrw::PropBrw(const Reference< XMultiServiceFactory >&   _xORB,Window* pParen
    try
    {
        // create a frame wrapper for myself
        m_xMeAsFrame = Reference< XFrame >(m_xORB->createInstance(OUString("com.sun.star.frame.Frame")), UNO_QUERY);
        if (m_xMeAsFrame.is())
        {
            m_xMeAsFrame->initialize( VCLUnoHelper::GetInterface ( this ) );
            m_xMeAsFrame->setName(OUString("report property browser"));  // change name!
        }
        m_xMeAsFrame = Frame::create( m_xORB );
        m_xMeAsFrame->initialize( VCLUnoHelper::GetInterface ( this ) );
        m_xMeAsFrame->setName( OUString("report property browser") );  // change name!
    }
    catch (Exception&)
    {
@@ -123,8 +121,6 @@ PropBrw::PropBrw(const Reference< XMultiServiceFactory >&   _xORB,Window* pParen

    if (m_xMeAsFrame.is())
    {
        Reference< XComponentContext > xOwnContext(
            comphelper::getComponentContext( m_xORB ) );
        try
        {
            ::cppu::ContextEntry_Init aHandlerContextInfo[] =
@@ -135,9 +131,9 @@ PropBrw::PropBrw(const Reference< XMultiServiceFactory >&   _xORB,Window* pParen
            };
            m_xInspectorContext.set(
                ::cppu::createComponentContext( aHandlerContextInfo, sizeof( aHandlerContextInfo ) / sizeof( aHandlerContextInfo[0] ),
                xOwnContext ) );
                m_xORB ) );
            // create a property browser controller
            bool bEnableHelpSection = lcl_shouldEnableHelpSection( xOwnContext );
            bool bEnableHelpSection = lcl_shouldEnableHelpSection( m_xORB );
            Reference< inspection::XObjectInspectorModel> xInspectorModel( bEnableHelpSection
                ?   report::inspection::DefaultComponentInspectorModel::createWithHelpSection( m_xInspectorContext, 3, 8 )
                :   report::inspection::DefaultComponentInspectorModel::createDefault( m_xInspectorContext ) );
@@ -150,7 +146,7 @@ PropBrw::PropBrw(const Reference< XMultiServiceFactory >&   _xORB,Window* pParen
            }
            else
            {
                m_xBrowserController->attachFrame(m_xMeAsFrame);
                m_xBrowserController->attachFrame( Reference<XFrame>(m_xMeAsFrame, UNO_QUERY_THROW));
                m_xBrowserComponentWindow = m_xMeAsFrame->getComponentWindow();
                OSL_ENSURE(m_xBrowserComponentWindow.is(), "PropBrw::PropBrw: attached the controller, but have no component window!");
                if ( bEnableHelpSection )
diff --git a/sfx2/inc/sfx2/templateinfodlg.hxx b/sfx2/inc/sfx2/templateinfodlg.hxx
index db5c11d..69d79b2 100644
--- a/sfx2/inc/sfx2/templateinfodlg.hxx
+++ b/sfx2/inc/sfx2/templateinfodlg.hxx
@@ -18,7 +18,7 @@ namespace svtools {
}

namespace com{ namespace sun { namespace star { namespace awt   { class XWindow; } } } }
namespace com{ namespace sun { namespace star { namespace frame { class XFrame; } } } }
namespace com{ namespace sun { namespace star { namespace frame { class XFrame2; } } } }

class SfxTemplateInfoDlg : public ModalDialog
{
@@ -41,7 +41,7 @@ private:
    Window *mpPreviewView;  // gets released when xWindows get destroyed (dont delete in constructor)
    svtools::ODocumentInfoPreview *mpInfoView;

    ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame > xFrame;
    ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 > m_xFrame;
    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > xWindow;
};

diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx
index b75168c..5078c95e 100644
--- a/sfx2/source/appl/newhelp.cxx
+++ b/sfx2/source/appl/newhelp.cxx
@@ -42,18 +42,13 @@
#include <comphelper/processfactory.hxx>
#include <comphelper/string.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <com/sun/star/util/XModifiable.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/util/CloseVetoException.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/beans/Property.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/beans/XPropertySetInfo.hpp>
#include <com/sun/star/container/XIndexAccess.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/frame/XTitle.hpp>
#include <com/sun/star/frame/XLayoutManager.hpp>
#include <com/sun/star/frame/DispatchResultState.hpp>
@@ -61,9 +56,11 @@
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XDispatchProviderInterception.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/i18n/XBreakIterator.hpp>
#include <com/sun/star/i18n/WordType.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/style/XStyle.hpp>
#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
#include <com/sun/star/text/XText.hpp>
@@ -78,9 +75,12 @@
#include <com/sun/star/util/XSearchDescriptor.hpp>
#include <com/sun/star/util/URLTransformer.hpp>
#include <com/sun/star/util/XURLTransformer.hpp>
#include <com/sun/star/util/XModifiable.hpp>
#include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/util/CloseVetoException.hpp>
#include <com/sun/star/ui/XDockingAreaAcceptor.hpp>
#include <com/sun/star/view/XSelectionSupplier.hpp>
#include <com/sun/star/view/XViewSettingsSupplier.hpp>
#include <com/sun/star/ui/XDockingAreaAcceptor.hpp>
#include <svtools/helpopt.hxx>
#include <unotools/historyoptions.hxx>
#include <svtools/menuoptions.hxx>
@@ -1480,7 +1480,7 @@ void SfxHelpWindow_Impl::loadHelpContent(const OUString& sHelpURL, sal_Bool bAdd
        return;

    // If a print job runs do not open a new page
    Reference< XFrame >      xTextFrame      = pTextWin->getFrame();
    Reference< XFrame2 >     xTextFrame      = pTextWin->getFrame();
    Reference< XController > xTextController ;
    if (xTextFrame.is())
        xTextController = xTextFrame->getController ();
@@ -2004,12 +2004,11 @@ long TextWin_Impl::Notify( NotifyEvent& rNEvt )

// -----------------------------------------------------------------------
// remove docking area acceptor from layoutmanager, so it will not layout anything further .-)
static void lcl_disableLayoutOfFrame(const Reference< XFrame >& xFrame)
static void lcl_disableLayoutOfFrame(const Reference< XFrame2 >& xFrame)
{
    static const OUString PROP_LAYOUT_MANAGER("LayoutManager");

    Reference< XPropertySet > xPropSet(xFrame, UNO_QUERY_THROW);
    xPropSet->setPropertyValue(PROP_LAYOUT_MANAGER, makeAny(Reference< XLayoutManager >()));
    xFrame->setLayoutManager( Reference< XLayoutManager >() );
}

// class SfxHelpTextWindow_Impl ------------------------------------------
@@ -2037,8 +2036,7 @@ SfxHelpTextWindow_Impl::SfxHelpTextWindow_Impl( SfxHelpWindow_Impl* pParent ) :
{
    sfx2::AddToTaskPaneList( &aToolBox );

    xFrame = Reference < XFrame > ( ::comphelper::getProcessServiceFactory()->createInstance(
        "com.sun.star.frame.Frame" ), UNO_QUERY );
    xFrame = Frame::create( ::comphelper::getProcessComponentContext() );
    xFrame->initialize( VCLUnoHelper::GetInterface ( pTextWin ) );
    xFrame->setName( "OFFICE_HELP" );
    lcl_disableLayoutOfFrame(xFrame);
@@ -2570,12 +2568,10 @@ long SfxHelpTextWindow_Impl::PreNotify( NotifyEvent& rNEvt )
            aMenu.InsertSeparator();
            aMenu.InsertItem( TBI_SELECTIONMODE, SfxResId( STR_HELP_MENU_TEXT_SELECTION_MODE ).toString() );
            aMenu.SetHelpId( TBI_SELECTIONMODE, HID_HELP_TEXT_SELECTION_MODE );
            Reference < XDispatchProvider > xProv( xFrame, UNO_QUERY );
            URL aURL;
            aURL.Complete = ".uno:SelectTextMode";
            PARSE_URL( aURL );
            Reference < XDispatch > xDisp = xProv.is() ?
                    xProv->queryDispatch( aURL, OUString(), 0 ) : Reference < XDispatch >();
            Reference < XDispatch > xDisp = xFrame->queryDispatch( aURL, OUString(), 0 );
            if(xDisp.is())
            {
                HelpStatusListener_Impl* pStateListener;
@@ -3148,7 +3144,7 @@ void SfxHelpWindow_Impl::openDone(const OUString& sURL    ,
// -----------------------------------------------------------------------

SfxHelpWindow_Impl::SfxHelpWindow_Impl(
    const ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >& rFrame,
    const ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 >& rFrame,
    Window* pParent, WinBits ) :

    SplitWindow( pParent, WB_3DLOOK | WB_NOSPLITDRAW ),
@@ -3177,12 +3173,11 @@ SfxHelpWindow_Impl::SfxHelpWindow_Impl(
    pIndexWin->SetSelectFactoryHdl( LINK( this, SfxHelpWindow_Impl, SelectFactoryHdl ) );
    pIndexWin->Show();
    pTextWin = new SfxHelpTextWindow_Impl( this );
    Reference < XFramesSupplier > xSup( rFrame, UNO_QUERY );
    Reference < XFrames > xFrames = xSup->getFrames();
    xFrames->append( pTextWin->getFrame() );
    Reference < XFrames > xFrames = rFrame->getFrames();
    xFrames->append( Reference<XFrame>(pTextWin->getFrame(), UNO_QUERY_THROW) );
    pTextWin->SetSelectHdl( LINK( this, SfxHelpWindow_Impl, SelectHdl ) );
    pTextWin->Show();
    pHelpInterceptor->setInterception( pTextWin->getFrame() );
    pHelpInterceptor->setInterception( Reference<XFrame>(pTextWin->getFrame(), UNO_QUERY_THROW) );
    pHelpListener->SetChangeHdl( LINK( this, SfxHelpWindow_Impl, ChangeHdl ) );
    LoadConfig();
}
diff --git a/sfx2/source/appl/newhelp.hxx b/sfx2/source/appl/newhelp.hxx
index a3ed34e..fe84268 100644
--- a/sfx2/source/appl/newhelp.hxx
+++ b/sfx2/source/appl/newhelp.hxx
@@ -23,10 +23,9 @@
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/frame/XDispatchResultListener.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrame2.hpp>

namespace com { namespace sun { namespace star { namespace awt { class XWindow; } } } }
namespace com { namespace sun { namespace star { namespace frame { class XFrame; } } } }
namespace com { namespace sun { namespace star { namespace i18n { class XBreakIterator; } } } }
namespace com { namespace sun { namespace star { namespace text { class XTextRange; } } } }

@@ -445,7 +444,7 @@ private:
    SfxHelpWindow_Impl*     pHelpWin;
    Window*                 pTextWin;
    sfx2::SearchDialog*     pSrchDlg;
    ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >
    ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 >
                            xFrame;
    ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator >
                            xBreakIterator;
@@ -483,7 +482,7 @@ public:
    virtual void            GetFocus();
    virtual void            DataChanged( const DataChangedEvent& rDCEvt );

    inline ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >
    inline ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 >
                            getFrame() const { return xFrame; }

    inline void             SetSelectHdl( const Link& rLink ) { aToolBox.SetSelectHdl( rLink ); }
@@ -508,7 +507,7 @@ friend class SfxHelpIndexWindow_Impl;
                                xWindow;
    ::com::sun::star::uno::Reference < ::com::sun::star::frame::XDispatchResultListener >
                                xOpenListener;
    ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >
    ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 >
                                xFrame;

    SfxHelpIndexWindow_Impl*    pIndexWin;
@@ -543,7 +542,7 @@ friend class SfxHelpIndexWindow_Impl;
    DECL_LINK(          ChangeHdl, HelpListener_Impl* );

public:
    SfxHelpWindow_Impl( const ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >& rFrame,
    SfxHelpWindow_Impl( const ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 >& rFrame,
                        Window* pParent, WinBits nBits );
    ~SfxHelpWindow_Impl();

@@ -551,7 +550,7 @@ public:

    void                setContainerWindow(
                            ::com::sun::star::uno::Reference < ::com::sun::star::awt::XWindow > xWin );
    inline ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >
    inline ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 >
                        getTextFrame() const { return pTextWin->getFrame(); }
    inline ::com::sun::star::uno::Reference < ::com::sun::star::frame::XDispatchResultListener >
                        getOpenListener() const { return xOpenListener; }
diff --git a/sfx2/source/appl/sfxhelp.cxx b/sfx2/source/appl/sfxhelp.cxx
index 297e356..d37f618 100644
--- a/sfx2/source/appl/sfxhelp.cxx
+++ b/sfx2/source/appl/sfxhelp.cxx
@@ -23,7 +23,7 @@
#include <algorithm>
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <comphelper/processfactory.hxx>
@@ -526,15 +526,15 @@ OUString SfxHelp::CreateHelpURL_Impl( const OUString& aCommandURL, const OUStrin
    return aHelpURL.makeStringAndClear();
}

SfxHelpWindow_Impl* impl_createHelp(Reference< XFrame >& rHelpTask   ,
SfxHelpWindow_Impl* impl_createHelp(Reference< XFrame2 >& rHelpTask   ,
                                    Reference< XFrame >& rHelpContent)
{
    Reference < XDesktop2 > xDesktop = Desktop::create( ::comphelper::getProcessComponentContext() );

    // otherwise - create new help task
    Reference< XFrame > xHelpTask = xDesktop->findFrame(
        OUString("OFFICE_HELP_TASK"),
        FrameSearchFlag::TASKS | FrameSearchFlag::CREATE);
    Reference< XFrame2 > xHelpTask(
        xDesktop->findFrame(  "OFFICE_HELP_TASK", FrameSearchFlag::TASKS | FrameSearchFlag::CREATE),
        UNO_QUERY_THROW);
    if (!xHelpTask.is())
        return 0;

@@ -753,9 +753,9 @@ sal_Bool SfxHelp::Start_Impl(const OUString& rURL, const Window* pWindow, const 
    // check if help window is still open
    // If not, create a new one and return access directly to the internal sub frame showing the help content
    // search must be done here; search one desktop level could return an arbitraty frame
    Reference< XFrame > xHelp = xDesktop->findFrame(
        OUString("OFFICE_HELP_TASK"),
        FrameSearchFlag::CHILDREN);
    Reference< XFrame2 > xHelp(
        xDesktop->findFrame( "OFFICE_HELP_TASK", FrameSearchFlag::CHILDREN),
        UNO_QUERY_THROW);
    Reference< XFrame > xHelpContent = xDesktop->findFrame(
        OUString("OFFICE_HELP"),
        FrameSearchFlag::CHILDREN);
diff --git a/sfx2/source/dialog/partwnd.cxx b/sfx2/source/dialog/partwnd.cxx
index 4530ecf..fb0058f 100644
--- a/sfx2/source/dialog/partwnd.cxx
+++ b/sfx2/source/dialog/partwnd.cxx
@@ -18,19 +18,19 @@
 */

#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/frame/XController.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/task/XStatusIndicator.hpp>
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/util/URL.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/util/CloseVetoException.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/frame/XController.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <comphelper/processfactory.hxx>

#include <toolkit/helper/vclunohelper.hxx>
@@ -105,40 +105,32 @@ SfxPartDockWnd_Impl::SfxPartDockWnd_Impl
)
    : SfxDockingWindow( pBind, pChildWin, pParent, nBits )
{
    ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame > xFrame(
            ::comphelper::getProcessServiceFactory()->createInstance(
            "com.sun.star.frame.Frame" ), ::com::sun::star::uno::UNO_QUERY );
    css::uno::Reference < css::frame::XFrame2 > xFrame = css::frame::Frame::create(
            ::comphelper::getProcessComponentContext() );
    xFrame->initialize( VCLUnoHelper::GetInterface ( this ) );

    ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xPropSet(
        xFrame, ::com::sun::star::uno::UNO_QUERY );
    try
    {
        const OUString aLayoutManager( "LayoutManager" );
        ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xLMPropSet;
        css::uno::Reference< css::beans::XPropertySet > xLMPropSet( xFrame->getLayoutManager(), css::uno::UNO_QUERY_THROW );

        ::com::sun::star::uno::Any a = xPropSet->getPropertyValue( aLayoutManager );
        if ( a >>= xLMPropSet )
        {
            const OUString aAutomaticToolbars( "AutomaticToolbars" );
            xLMPropSet->setPropertyValue( aAutomaticToolbars, ::com::sun::star::uno::Any( sal_False ));
        }
        const OUString aAutomaticToolbars( "AutomaticToolbars" );
        xLMPropSet->setPropertyValue( aAutomaticToolbars, css::uno::Any( sal_False ));
    }
    catch( ::com::sun::star::uno::RuntimeException& )
    catch( css::uno::RuntimeException& )
    {
        throw;
    }
    catch( ::com::sun::star::uno::Exception& )
    catch( css::uno::Exception& )
    {
    }

    pChildWin->SetFrame( xFrame );
    pChildWin->SetFrame( css::uno::Reference<css::frame::XFrame>(xFrame,css::uno::UNO_QUERY_THROW) );
    if ( pBind->GetDispatcher() )
    {
        ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFramesSupplier >
                xSupp ( pBind->GetDispatcher()->GetFrame()->GetFrame().GetFrameInterface(), ::com::sun::star::uno::UNO_QUERY );
        css::uno::Reference < css::frame::XFramesSupplier >
                xSupp ( pBind->GetDispatcher()->GetFrame()->GetFrame().GetFrameInterface(), css::uno::UNO_QUERY );
        if ( xSupp.is() )
            xSupp->getFrames()->append( xFrame );
            xSupp->getFrames()->append( css::uno::Reference<css::frame::XFrame>(xFrame, css::uno::UNO_QUERY_THROW) );
    }
    else {
        OSL_FAIL("Bindings without Dispatcher!");
diff --git a/sfx2/source/dialog/templateinfodlg.cxx b/sfx2/source/dialog/templateinfodlg.cxx
index 32fa7d8..9437f33 100644
--- a/sfx2/source/dialog/templateinfodlg.cxx
+++ b/sfx2/source/dialog/templateinfodlg.cxx
@@ -17,7 +17,7 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/document/DocumentProperties.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/task/InteractionHandler.hpp>
#include <com/sun/star/util/URL.hpp>
@@ -53,8 +53,8 @@ SfxTemplateInfoDlg::SfxTemplateInfoDlg (Window *pParent)

    xWindow = VCLUnoHelper::GetInterface(mpPreviewView);

    xFrame.set(comphelper::getProcessServiceFactory()->createInstance("com.sun.star.frame.Frame"), uno::UNO_QUERY );
    xFrame->initialize( xWindow );
    m_xFrame = Frame::create( comphelper::getProcessComponentContext() );
    m_xFrame->initialize( xWindow );

    mpPreviewView->Show();
    mpInfoView->Show();
@@ -62,7 +62,7 @@ SfxTemplateInfoDlg::SfxTemplateInfoDlg (Window *pParent)

SfxTemplateInfoDlg::~SfxTemplateInfoDlg()
{
    xFrame->dispose();
    m_xFrame->dispose();

    delete mpInfoView;
}
@@ -97,10 +97,7 @@ void SfxTemplateInfoDlg::loadDocument(const OUString &rURL)
        aURL.Complete = rURL;
        xTrans->parseStrict(aURL);

        uno::Reference<frame::XDispatchProvider> xProv( xFrame, uno::UNO_QUERY );

        uno::Reference<frame::XDispatch> xDisp = xProv.is() ?
            xProv->queryDispatch( aURL, "_self", 0 ) : uno::Reference<XDispatch>();
        uno::Reference<frame::XDispatch> xDisp = m_xFrame->queryDispatch( aURL, "_self", 0 );

        if ( xDisp.is() )
        {
diff --git a/sfx2/source/doc/iframe.cxx b/sfx2/source/doc/iframe.cxx
index a93d5bc..d43d338 100644
--- a/sfx2/source/doc/iframe.cxx
+++ b/sfx2/source/doc/iframe.cxx
@@ -23,7 +23,7 @@
#include <sfx2/sfxsids.hrc>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XDispatch.hpp>
#include <com/sun/star/frame/XFramesSupplier.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/util/URLTransformer.hpp>
#include <com/sun/star/util/XURLTransformer.hpp>

@@ -42,7 +42,7 @@ namespace sfx2

class IFrameWindow_Impl : public Window
{
    uno::Reference < frame::XFrame > mxFrame;
    uno::Reference < frame::XFrame2 > mxFrame;
    sal_Bool                bBorder;

public:
@@ -92,11 +92,11 @@ const SfxItemPropertyMapEntry* lcl_GetIFramePropertyMap_Impl()
    return aIFramePropertyMap_Impl;
}

SFX_IMPL_XSERVICEINFO( IFrameObject, "com.sun.star.embed.SpecialEmbeddedObject", "com.sun.star.comp.sfx2.IFrameObject" )
SFX_IMPL_XSERVICEINFO_CTX( IFrameObject, "com.sun.star.embed.SpecialEmbeddedObject", "com.sun.star.comp.sfx2.IFrameObject" )
SFX_IMPL_SINGLEFACTORY( IFrameObject );

IFrameObject::IFrameObject( const uno::Reference < lang::XMultiServiceFactory >& rFact )
    : mxFact( rFact )
IFrameObject::IFrameObject( const uno::Reference < uno::XComponentContext >& rxContext )
    : mxContext( rxContext )
    , maPropMap( lcl_GetIFramePropertyMap_Impl() )
{
}
@@ -132,7 +132,7 @@ throw( uno::RuntimeException )
        // we must destroy the IFrame before the parent is destroyed
        xWindow->addEventListener( this );

        mxFrame = uno::Reference< frame::XFrame >( mxFact->createInstance( "com.sun.star.frame.Frame" ),uno::UNO_QUERY );
        mxFrame = frame::Frame::create( mxContext );
        uno::Reference < awt::XWindow > xWin( pWin->GetComponentInterface(), uno::UNO_QUERY );
        mxFrame->initialize( xWin );
        mxFrame->setName( maFrmDescr.GetName() );
@@ -141,11 +141,9 @@ throw( uno::RuntimeException )
        if ( xFramesSupplier.is() )
            mxFrame->setCreator( xFramesSupplier );

        uno::Reference< frame::XDispatchProvider > xProv( mxFrame, uno::UNO_QUERY );

        util::URL aTargetURL;
        aTargetURL.Complete = OUString( maFrmDescr.GetURL().GetMainURL( INetURLObject::NO_DECODE ) );
        uno::Reference < util::XURLTransformer > xTrans( util::URLTransformer::create( ::comphelper::getComponentContext(mxFact) ) );
        uno::Reference < util::XURLTransformer > xTrans( util::URLTransformer::create( mxContext ) );
        xTrans->parseStrict( aTargetURL );

        uno::Sequence < beans::PropertyValue > aProps(2);
@@ -153,7 +151,7 @@ throw( uno::RuntimeException )
        aProps[0].Value <<= (sal_Int16) 2;
        aProps[1].Name = "ReadOnly";
        aProps[1].Value <<= (sal_Bool) sal_True;
        uno::Reference < frame::XDispatch > xDisp = xProv->queryDispatch( aTargetURL, "_self", 0 );
        uno::Reference < frame::XDispatch > xDisp = mxFrame->queryDispatch( aTargetURL, "_self", 0 );
        if ( xDisp.is() )
            xDisp->dispatch( aTargetURL, aProps );

diff --git a/sfx2/source/inc/iframe.hxx b/sfx2/source/inc/iframe.hxx
index 0dfc1c3..965550d 100644
--- a/sfx2/source/inc/iframe.hxx
+++ b/sfx2/source/inc/iframe.hxx
@@ -26,9 +26,8 @@
#include <com/sun/star/lang/XEventListener.hpp>
#include <com/sun/star/frame/XSynchronousFrameLoader.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/embed/XEmbeddedObject.hpp>
#include <cppuhelper/implbase6.hxx>
@@ -51,13 +50,13 @@ class IFrameObject : public ::cppu::WeakImplHelper6 <
        com::sun::star::lang::XInitialization,
        com::sun::star::beans::XPropertySet >
{
    com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > mxFact;
    com::sun::star::uno::Reference < com::sun::star::frame::XFrame > mxFrame;
    com::sun::star::uno::Reference < com::sun::star::uno::XComponentContext > mxContext;
    com::sun::star::uno::Reference < com::sun::star::frame::XFrame2 > mxFrame;
    com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > mxObj;
    SfxItemPropertyMap  maPropMap;
    SfxFrameDescriptor  maFrmDescr;

                        IFrameObject( const com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory >& rFact );
                        IFrameObject( const com::sun::star::uno::Reference < com::sun::star::uno::XComponentContext>& rxContext );
                        ~IFrameObject();

    virtual sal_Bool SAL_CALL load( const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& lDescriptor,
diff --git a/sfx2/source/view/frame2.cxx b/sfx2/source/view/frame2.cxx
index 8d3507f..c3a2a50 100644
--- a/sfx2/source/view/frame2.cxx
+++ b/sfx2/source/view/frame2.cxx
@@ -36,7 +36,7 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/frame/XFramesSupplier.hpp>
#include <com/sun/star/frame/XLayoutManager.hpp>

@@ -246,11 +246,11 @@ SfxFrame* SfxFrame::Create( SfxObjectShell& rDoc, Window& rWindow, sal_uInt16 nV
        // create and initialize new top level frame for this window
        Reference < XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
        Reference < XDesktop2 > xDesktop = Desktop::create( xContext );
        Reference < XFrame > xFrame( xContext->getServiceManager()->createInstanceWithContext("com.sun.star.frame.Frame", xContext), UNO_QUERY_THROW );
        Reference < XFrame2 > xFrame = Frame::create( xContext );

        Reference< awt::XWindow2 > xWin( VCLUnoHelper::GetInterface ( &rWindow ), uno::UNO_QUERY_THROW );
        xFrame->initialize( xWin.get() );
        xDesktop->getFrames()->append( xFrame );
        xDesktop->getFrames()->append( Reference<XFrame>(xFrame, uno::UNO_QUERY_THROW) );

        if ( xWin->isActive() )
            xFrame->activate();
diff --git a/slideshow/source/engine/shapes/viewappletshape.cxx b/slideshow/source/engine/shapes/viewappletshape.cxx
index 0d6dbe0..87175ee 100644
--- a/slideshow/source/engine/shapes/viewappletshape.cxx
+++ b/slideshow/source/engine/shapes/viewappletshape.cxx
@@ -47,7 +47,7 @@
#include <com/sun/star/awt/WindowAttribute.hpp>
#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/frame/XSynchronousFrameLoader.hpp>

#include "viewappletshape.hxx"
@@ -170,18 +170,13 @@ namespace slideshow
                    // create a frame, and load the applet into it
                    // ===========================================

                    mxFrame.set(
                        xFactory->createInstanceWithContext(
                            OUString("com.sun.star.frame.Frame" ),
                            mxComponentContext ),
                        uno::UNO_QUERY_THROW );

                    mxFrame = frame::Frame::create( mxComponentContext );
                    mxFrame->initialize( xOwnWindow );

                    uno::Reference < frame::XSynchronousFrameLoader > xLoader( mxViewer,
                                                                               uno::UNO_QUERY_THROW );
                    xLoader->load( uno::Sequence < beans::PropertyValue >(),
                                   mxFrame );
                                   uno::Reference<frame::XFrame>(mxFrame, uno::UNO_QUERY_THROW) );


                    // resize surrounding window and applet to current shape size
diff --git a/slideshow/source/engine/shapes/viewappletshape.hxx b/slideshow/source/engine/shapes/viewappletshape.hxx
index 92514d9..d852ebd 100644
--- a/slideshow/source/engine/shapes/viewappletshape.hxx
+++ b/slideshow/source/engine/shapes/viewappletshape.hxx
@@ -31,7 +31,7 @@
namespace com { namespace sun { namespace star {
namespace frame {
    class XSynchronousFrameLoader;
    class XFrame;
    class XFrame2;
}
namespace uno {
    class XComponentContext;
@@ -148,7 +148,7 @@ namespace slideshow

            /// the frame containing the applet
            ::com::sun::star::uno::Reference<
                ::com::sun::star::frame::XFrame>                  mxFrame;
                ::com::sun::star::frame::XFrame2>                 mxFrame;
            ::com::sun::star::uno::Reference<
                ::com::sun::star::uno::XComponentContext>         mxComponentContext;
        };
diff --git a/svtools/source/contnr/templwin.cxx b/svtools/source/contnr/templwin.cxx
index 793485c..a682b86 100644
--- a/svtools/source/contnr/templwin.cxx
+++ b/svtools/source/contnr/templwin.cxx
@@ -39,7 +39,7 @@
#include "unotools/configmgr.hxx"
#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <toolkit/helper/vclunohelper.hxx>
#include <com/sun/star/util/URL.hpp>
#include <com/sun/star/util/URLTransformer.hpp>
@@ -595,21 +595,18 @@ OUString SvtDocInfoTable_Impl::GetString( long nId ) const

// class SvtFrameWindow_Impl ---------------------------------------------

SvtFrameWindow_Impl::SvtFrameWindow_Impl( Window* pParent ) :

    Window( pParent )

SvtFrameWindow_Impl::SvtFrameWindow_Impl( Window* pParent )
  : Window( pParent )
{
    // detect application language
    aLocale= SvtPathOptions().GetLocale();
    aLocale = SvtPathOptions().GetLocale();

    // create windows and frame
    pEditWin = new ODocumentInfoPreview( this ,WB_LEFT | WB_VSCROLL | WB_READONLY | WB_BORDER | WB_3DLOOK);
    pTextWin = new Window( this );
    xFrame = Reference < XFrame > ( ::comphelper::getProcessServiceFactory()->
        createInstance( "com.sun.star.frame.Frame" ), UNO_QUERY );
    m_xFrame = Frame::create( ::comphelper::getProcessComponentContext() );
    xWindow = VCLUnoHelper::GetInterface( pTextWin );
    xFrame->initialize( xWindow );
    m_xFrame->initialize( xWindow );

    // create docinfo instance
    m_xDocProps.set( document::DocumentProperties::create(::comphelper::getProcessComponentContext()) );
@@ -621,7 +618,7 @@ SvtFrameWindow_Impl::~SvtFrameWindow_Impl()
{
    delete pEditWin;
    delete pEmptyWin;
    xFrame->dispose();
    m_xFrame->dispose();
}

void SvtFrameWindow_Impl::ViewEditWin()
@@ -693,7 +690,7 @@ void SvtFrameWindow_Impl::OpenFile( const String& rURL, sal_Bool bPreview, sal_B

    if ( rURL.Len() == 0 )
    {
        xFrame->setComponent( Reference < com::sun::star::awt::XWindow >(), Reference < XController >() );
        m_xFrame->setComponent( Reference < com::sun::star::awt::XWindow >(), Reference < XController >() );
        ViewEmptyWin();
    }
    else if ( !::utl::UCBContentHelper::IsFolder( rURL ) )
@@ -705,7 +702,7 @@ void SvtFrameWindow_Impl::OpenFile( const String& rURL, sal_Bool bPreview, sal_B
        xTrans->parseStrict( aURL );

        String aTarget;
        Reference < XDispatchProvider > xProv( xFrame, UNO_QUERY );
        Reference < XDispatchProvider > xProv( m_xFrame, UNO_QUERY_THROW );
        if ( bPreview )
            aTarget = "_self";
        else
@@ -752,8 +749,8 @@ void SvtFrameWindow_Impl::OpenFile( const String& rURL, sal_Bool bPreview, sal_B
                        aArgs[2].Value.setValue( &b, ::getBooleanCppuType() );
                        xDisp->dispatch( aURL, aArgs );

                        OUString                                         aDispURL;
                        Reference< ::com::sun::star::frame::XController >       xCtrl = xFrame->getController();
                        OUString                                                aDispURL;
                        Reference< ::com::sun::star::frame::XController >       xCtrl = m_xFrame->getController();
                        if( xCtrl.is() )
                        {
                            Reference< ::com::sun::star::frame::XModel >        xMdl = xCtrl->getModel();
@@ -763,7 +760,7 @@ void SvtFrameWindow_Impl::OpenFile( const String& rURL, sal_Bool bPreview, sal_B

                        if( aDispURL != aURL.Complete )
                        {
                            xFrame->setComponent( Reference < com::sun::star::awt::XWindow >(), Reference < XController >() );
                            m_xFrame->setComponent( Reference < com::sun::star::awt::XWindow >(), Reference < XController >() );
                            ViewEmptyWin();
                            m_aOpenURL = OUString();
                        }
diff --git a/svtools/source/contnr/templwin.hxx b/svtools/source/contnr/templwin.hxx
index 6de3ba5..3d2240c 100644
--- a/svtools/source/contnr/templwin.hxx
+++ b/svtools/source/contnr/templwin.hxx
@@ -32,7 +32,7 @@
#include <com/sun/star/lang/Locale.hpp>

namespace com{ namespace sun { namespace star { namespace awt   { class XWindow; } } } }
namespace com{ namespace sun { namespace star { namespace frame { class XFrame; } } } }
namespace com{ namespace sun { namespace star { namespace frame { class XFrame2; } } } }
namespace com{ namespace sun { namespace star { namespace document {
    class XDocumentProperties;
} } } }
@@ -167,8 +167,8 @@ public:
class SvtFrameWindow_Impl : public Window
{
private:
    ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >
                                xFrame;
    ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame2 >
                                m_xFrame;
    ::com::sun::star::uno::Reference < ::com::sun::star::document::XDocumentProperties>
                                m_xDocProps;
    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >
diff --git a/svx/source/form/fmPropBrw.cxx b/svx/source/form/fmPropBrw.cxx
index c18e010..e62eb97 100644
--- a/svx/source/form/fmPropBrw.cxx
+++ b/svx/source/form/fmPropBrw.cxx
@@ -35,16 +35,17 @@
#include "svx/svdpagv.hxx"
#include "svx/svxids.hrc"

#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/form/XForm.hpp>
#include <com/sun/star/form/FormComponentType.hpp>
#include <com/sun/star/awt/XLayoutConstrains.hpp>
#include <com/sun/star/awt/XControlContainer.hpp>
#include <com/sun/star/awt/PosSize.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/form/XForm.hpp>
#include <com/sun/star/form/FormComponentType.hpp>
#include <com/sun/star/form/inspection/DefaultFormComponentInspectorModel.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/inspection/ObjectInspector.hpp>
#include <com/sun/star/inspection/ObjectInspectorModel.hpp>
#include <com/sun/star/form/inspection/DefaultFormComponentInspectorModel.hpp>
#include <com/sun/star/inspection/XObjectInspectorUI.hpp>
#include <com/sun/star/inspection/DefaultHelpProvider.hpp>

@@ -85,7 +86,7 @@ FmPropBrwMgr::FmPropBrwMgr( Window* _pParent, sal_uInt16 _nId,
                            SfxBindings* _pBindings, SfxChildWinInfo* _pInfo)
              :SfxChildWindow(_pParent, _nId)
{
    pWindow = new FmPropBrw( ::comphelper::getProcessServiceFactory(), _pBindings, this, _pParent, _pInfo );
    pWindow = new FmPropBrw( ::comphelper::getProcessComponentContext(), _pBindings, this, _pParent, _pInfo );
    eChildAlignment = SFX_ALIGN_NOALIGNMENT;
    ((SfxFloatingWindow*)pWindow)->Initialize( _pInfo );
}
@@ -190,7 +191,7 @@ OUString GetUIHeadlineName(sal_Int16 nClassId, const Any& aUnoObj)
//========================================================================
DBG_NAME(FmPropBrw);
//------------------------------------------------------------------------
FmPropBrw::FmPropBrw( const Reference< XMultiServiceFactory >& _xORB, SfxBindings* _pBindings,
FmPropBrw::FmPropBrw( const Reference< XComponentContext >& _xORB, SfxBindings* _pBindings,
            SfxChildWindow* _pMgr, Window* _pParent, const SfxChildWinInfo* _pInfo )
    :SfxFloatingWindow(_pBindings, _pMgr, _pParent, WinBits(WB_STDMODELESS|WB_SIZEABLE|WB_3DLOOK|WB_ROLLABLE) )
    ,SfxControllerItem(SID_FM_PROPERTY_CONTROL, *_pBindings)
@@ -208,30 +209,19 @@ FmPropBrw::FmPropBrw( const Reference< XMultiServiceFactory >& _xORB, SfxBinding
    try
    {
        // create a frame wrapper for myself
        m_xMeAsFrame = Reference< XFrame >(m_xORB->createInstance(OUString("com.sun.star.frame.Frame") ), UNO_QUERY);
        if (m_xMeAsFrame.is())
        {
            // create an intermediate window, which is to be the container window of the frame
            // Do *not* use |this| as container window for the frame, this would result in undefined
            // responsibility for this window (as soon as we initialize a frame with a window, the frame
            // is responsible for it's life time, but |this| is controlled by the belonging SfxChildWindow)
            // #i34249#
            Window* pContainerWindow = new Window( this );
            pContainerWindow->Show();
            m_xFrameContainerWindow = VCLUnoHelper::GetInterface ( pContainerWindow );
        m_xMeAsFrame = Frame::create(m_xORB);

            m_xMeAsFrame->initialize( m_xFrameContainerWindow );
            m_xMeAsFrame->setName(OUString("form property browser") );
            if ( _pBindings->GetDispatcher() )
            {
                ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFramesSupplier >
                        xSupp ( _pBindings->GetDispatcher()->GetFrame()->GetFrame().GetFrameInterface(), ::com::sun::star::uno::UNO_QUERY );
//                if ( xSupp.is() )
//                    xSupp->getFrames()->append( m_xMeAsFrame );
                // Don't append frame to frame hierachy to prevent UI_DEACTIVATE messages
                // #i31834#
            }
        }
        // create an intermediate window, which is to be the container window of the frame
        // Do *not* use |this| as container window for the frame, this would result in undefined
        // responsibility for this window (as soon as we initialize a frame with a window, the frame
        // is responsible for it's life time, but |this| is controlled by the belonging SfxChildWindow)
        // #i34249#
        Window* pContainerWindow = new Window( this );
        pContainerWindow->Show();
        m_xFrameContainerWindow = VCLUnoHelper::GetInterface ( pContainerWindow );

        m_xMeAsFrame->initialize( m_xFrameContainerWindow );
        m_xMeAsFrame->setName( OUString("form property browser") );
    }
    catch (Exception&)
    {
@@ -240,7 +230,7 @@ FmPropBrw::FmPropBrw( const Reference< XMultiServiceFactory >& _xORB, SfxBinding
    }

    if (m_xMeAsFrame.is())
        _pMgr->SetFrame( m_xMeAsFrame );
        _pMgr->SetFrame( Reference<XFrame>(m_xMeAsFrame,UNO_QUERY_THROW) );


    if ( m_xBrowserComponentWindow.is() )
@@ -558,8 +548,6 @@ void FmPropBrw::impl_createPropertyBrowser_throw( FmFormShell* _pFormShell )
        xControlMap = pFormPage->GetImpl().getControlToShapeMap();

    // our own component context
    Reference< XComponentContext > xOwnContext(
        comphelper::getComponentContext( m_xORB ) );

    // a ComponentContext for the
    ::cppu::ContextEntry_Init aHandlerContextInfo[] =
@@ -571,9 +559,9 @@ void FmPropBrw::impl_createPropertyBrowser_throw( FmFormShell* _pFormShell )
    };
    m_xInspectorContext.set(
        ::cppu::createComponentContext( aHandlerContextInfo, sizeof( aHandlerContextInfo ) / sizeof( aHandlerContextInfo[0] ),
        xOwnContext ) );
        m_xORB ) );

    bool bEnableHelpSection = lcl_shouldEnableHelpSection( xOwnContext );
    bool bEnableHelpSection = lcl_shouldEnableHelpSection( m_xORB );

    // an object inspector model
    m_xInspectorModel =
@@ -594,7 +582,7 @@ void FmPropBrw::impl_createPropertyBrowser_throw( FmFormShell* _pFormShell )
    }
    else
    {
        m_xBrowserController->attachFrame( m_xMeAsFrame );
        m_xBrowserController->attachFrame( Reference<XFrame>(m_xMeAsFrame,UNO_QUERY_THROW) );
        m_xBrowserComponentWindow = m_xMeAsFrame->getComponentWindow();
        DBG_ASSERT( m_xBrowserComponentWindow.is(), "FmPropBrw::impl_createPropertyBrowser_throw: attached the controller, but have no component window!" );
    }
diff --git a/svx/source/inc/fmPropBrw.hxx b/svx/source/inc/fmPropBrw.hxx
index 50ef095..6cc7fd8 100644
--- a/svx/source/inc/fmPropBrw.hxx
+++ b/svx/source/inc/fmPropBrw.hxx
@@ -19,9 +19,8 @@
#ifndef SVX_FMPROPBRW_HXX
#define SVX_FMPROPBRW_HXX

#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/awt/XControlContainer.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrame2.hpp>
#include <com/sun/star/inspection/XObjectInspectorModel.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>

@@ -48,9 +47,9 @@ class FmPropBrw : public SfxFloatingWindow, public SfxControllerItem
    OUString m_sLastActivePage;
    ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >
                        m_xInspectorContext;
    ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
    ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >
                    m_xORB;
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame2 >
                    m_xMeAsFrame;
    ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
                    m_xLastKnownDocument;
@@ -77,7 +76,7 @@ protected:

public:
    FmPropBrw(
        const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xORB,
        const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _xORB,
        SfxBindings* pBindings,
        SfxChildWindow* pMgr,
        Window* pParent,
diff --git a/sw/source/ui/dbui/dbtablepreviewdialog.cxx b/sw/source/ui/dbui/dbtablepreviewdialog.cxx
index e150f89..f9d2daf 100644
--- a/sw/source/ui/dbui/dbtablepreviewdialog.cxx
+++ b/sw/source/ui/dbui/dbtablepreviewdialog.cxx
@@ -20,9 +20,7 @@
#include <swtypes.hxx>
#include <dbtablepreviewdialog.hxx>
#include <comphelper/processfactory.hxx>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <toolkit/unohlp.hxx>

#include <dbui.hrc>
@@ -67,13 +65,8 @@ SwDBTablePreviewDialog::SwDBTablePreviewDialog(Window* pParent, uno::Sequence< b
    try
    {
        // create a frame wrapper for myself
        uno::Reference< lang::XMultiServiceFactory >
                                    xMgr = comphelper::getProcessServiceFactory();
        m_xFrame = uno::Reference< frame::XFrame >(xMgr->createInstance("com.sun.star.frame.Frame"), uno::UNO_QUERY);
        if(m_xFrame.is())
        {
            m_xFrame->initialize( VCLUnoHelper::GetInterface ( m_pBeamerWIN ) );
        }
        m_xFrame = frame::Frame::create( comphelper::getProcessComponentContext() );
        m_xFrame->initialize( VCLUnoHelper::GetInterface( m_pBeamerWIN ) );
    }
    catch (uno::Exception const &)
    {
@@ -81,10 +74,9 @@ SwDBTablePreviewDialog::SwDBTablePreviewDialog(Window* pParent, uno::Sequence< b
    }
    if(m_xFrame.is())
    {
        uno::Reference<frame::XDispatchProvider> xDP(m_xFrame, uno::UNO_QUERY);
        util::URL aURL;
        aURL.Complete = ".component:DB/DataSourceBrowser";
        uno::Reference<frame::XDispatch> xD = xDP->queryDispatch(aURL, "", 0x0C);
        uno::Reference<frame::XDispatch> xD = m_xFrame->queryDispatch(aURL, "", 0x0C);
        if(xD.is())
        {
            xD->dispatch(aURL, rValues);
diff --git a/sw/source/ui/dbui/dbtablepreviewdialog.hxx b/sw/source/ui/dbui/dbtablepreviewdialog.hxx
index 5d58ef8..826a9fd 100644
--- a/sw/source/ui/dbui/dbtablepreviewdialog.hxx
+++ b/sw/source/ui/dbui/dbtablepreviewdialog.hxx
@@ -26,7 +26,7 @@

namespace com{ namespace sun{ namespace star{
    namespace beans{  struct PropertyValue; }
    namespace frame{ class XFrame;     }
    namespace frame{ class XFrame2;     }
    }}}

class SwDBTablePreviewDialog : public SfxModalDialog
@@ -35,7 +35,7 @@ class SwDBTablePreviewDialog : public SfxModalDialog
    Window*         m_pBeamerWIN;
    OKButton        m_aOK;

    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >         m_xFrame;
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame2 >         m_xFrame;
public:
    SwDBTablePreviewDialog(Window* pParent,
            ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& rValues  );
diff --git a/sw/source/ui/envelp/mailmrge.cxx b/sw/source/ui/envelp/mailmrge.cxx
index d6c23504..077ad27 100644
--- a/sw/source/ui/envelp/mailmrge.cxx
+++ b/sw/source/ui/envelp/mailmrge.cxx
@@ -42,19 +42,20 @@
#include <sfx2/docfile.hxx>
#include <sfx2/docfilt.hxx>
#include <comphelper/sequenceashashmap.hxx>
#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
#include <com/sun/star/frame/XDispatchProvider.hpp>
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/container/XContainerQuery.hpp>
#include <com/sun/star/container/XEnumeration.hpp>
#include <com/sun/star/form/runtime/XFormController.hpp>
#include <com/sun/star/frame/Frame.hpp>
#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
#include <com/sun/star/sdbcx/XRowLocate.hpp>
#include <com/sun/star/sdb/XResultSetAccess.hpp>
#include <com/sun/star/sdbc/XDataSource.hpp>
#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
#include <toolkit/unohlp.hxx>
#include <comphelper/processfactory.hxx>
#include <com/sun/star/form/runtime/XFormController.hpp>
#include <cppuhelper/implbase1.hxx>
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/container/XContainerQuery.hpp>
#include <com/sun/star/container/XEnumeration.hpp>

#include <unomid.h>

@@ -267,24 +268,17 @@ SwMailMergeDlg::SwMailMergeDlg(Window* pParent, SwWrtShell& rShell,
        try
        {
            // create a frame wrapper for myself
            uno::Reference< XMultiServiceFactory >
                                        xMgr = comphelper::getProcessServiceFactory();
            xFrame = uno::Reference< XFrame >(xMgr->createInstance("com.sun.star.frame.Frame"), UNO_QUERY);
            if(xFrame.is())
            {
                xFrame->initialize( VCLUnoHelper::GetInterface ( pBeamerWin ) );
            }
            m_xFrame = frame::Frame::create( comphelper::getProcessComponentContext() );
        }
        catch (const Exception&)
        {
            xFrame.clear();
            m_xFrame.clear();
        }
        if(xFrame.is())
        if(m_xFrame.is())
        {
            uno::Reference<XDispatchProvider> xDP(xFrame, UNO_QUERY);
            URL aURL;
            aURL.Complete = ".component:DB/DataSourceBrowser";
            uno::Reference<XDispatch> xD = xDP->queryDispatch(aURL,
            uno::Reference<XDispatch> xD = m_xFrame->queryDispatch(aURL,
                        "",
                        0x0C);
            if(xD.is())
@@ -300,7 +294,7 @@ SwMailMergeDlg::SwMailMergeDlg(Window* pParent, SwWrtShell& rShell,
                xD->dispatch(aURL, aProperties);
                pBeamerWin->Show();
            }
            uno::Reference<XController> xController = xFrame->getController();
            uno::Reference<XController> xController = m_xFrame->getController();
            pImpl->xFController = uno::Reference<runtime::XFormController>(xController, UNO_QUERY);
            if(pImpl->xFController.is())
            {
@@ -452,10 +446,10 @@ SwMailMergeDlg::SwMailMergeDlg(Window* pParent, SwWrtShell& rShell,

SwMailMergeDlg::~SwMailMergeDlg()
{
    if(xFrame.is())
    if(m_xFrame.is())
    {
        xFrame->setComponent(NULL, NULL);
        xFrame->dispose();
        m_xFrame->setComponent(NULL, NULL);
        m_xFrame->dispose();
    }
    else
        delete pBeamerWin;
diff --git a/sw/source/ui/inc/mailmrge.hxx b/sw/source/ui/inc/mailmrge.hxx
index e170af0..e3ebd53 100644
--- a/sw/source/ui/inc/mailmrge.hxx
+++ b/sw/source/ui/inc/mailmrge.hxx
@@ -39,7 +39,7 @@ class SwXSelChgLstnr_Impl;
struct SwMailMergeDlg_Impl;
namespace com{namespace sun{namespace star{
    namespace frame{
        class XFrame;
        class XFrame2;
    }
    namespace sdbc{
        class XResultSet;
@@ -110,7 +110,7 @@ class SwMailMergeDlg : public SvxStandardDialog

    sal_uInt16          nMergeType;
    ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >       m_aSelection;
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame;
    ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame2 > m_xFrame;

    Size            m_aDialogSize;
    OUString m_sSaveFilter;