16d739b60SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 36d739b60SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 46d739b60SAndrew Rist * or more contributor license agreements. See the NOTICE file 56d739b60SAndrew Rist * distributed with this work for additional information 66d739b60SAndrew Rist * regarding copyright ownership. The ASF licenses this file 76d739b60SAndrew Rist * to you under the Apache License, Version 2.0 (the 86d739b60SAndrew Rist * "License"); you may not use this file except in compliance 96d739b60SAndrew Rist * with the License. You may obtain a copy of the License at 106d739b60SAndrew Rist * 116d739b60SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 126d739b60SAndrew Rist * 136d739b60SAndrew Rist * Unless required by applicable law or agreed to in writing, 146d739b60SAndrew Rist * software distributed under the License is distributed on an 156d739b60SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 166d739b60SAndrew Rist * KIND, either express or implied. See the License for the 176d739b60SAndrew Rist * specific language governing permissions and limitations 186d739b60SAndrew Rist * under the License. 196d739b60SAndrew Rist * 206d739b60SAndrew Rist *************************************************************/ 216d739b60SAndrew Rist 226d739b60SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_framework.hxx" 26cdf0e10cSrcweir 27cdf0e10cSrcweir //_________________________________________________________________________________________________________________ 28cdf0e10cSrcweir // my own includes 29cdf0e10cSrcweir //_________________________________________________________________________________________________________________ 30cdf0e10cSrcweir #include <comphelper/interaction.hxx> 31cdf0e10cSrcweir #include <framework/interaction.hxx> 32cdf0e10cSrcweir #include <general.h> 33cdf0e10cSrcweir 34cdf0e10cSrcweir using namespace ::com::sun::star; 35cdf0e10cSrcweir 36cdf0e10cSrcweir namespace framework{ 37cdf0e10cSrcweir 38cdf0e10cSrcweir /*-************************************************************************************************************//** 39cdf0e10cSrcweir @short declaration of special continuation for filter selection 40cdf0e10cSrcweir @descr Sometimes filter detection during loading document failed. Then we need a possibility 41cdf0e10cSrcweir to ask user for his decision. These continuation transport selected filter by user to 42cdf0e10cSrcweir code user of interaction. 43cdf0e10cSrcweir 44cdf0e10cSrcweir @attention This implementation could be used one times only. We don't support a resetable continuation yet! 45cdf0e10cSrcweir Why? Normaly interaction should show a filter selection dialog and ask user for his decision. 46cdf0e10cSrcweir He can select any filter - then instances of these class will be called by handler ... or user 47cdf0e10cSrcweir close dialog without any selection. Then another continuation should be slected by handler to 48*07a3d7f1SPedro Giffuni abort continuations ... Retrying isn't very useful here ... I think. 49cdf0e10cSrcweir 50cdf0e10cSrcweir @implements XInteractionFilterSelect 51cdf0e10cSrcweir 52cdf0e10cSrcweir @base ImplInheritanceHelper1 53cdf0e10cSrcweir ContinuationBase 54cdf0e10cSrcweir 55cdf0e10cSrcweir @devstatus ready to use 56cdf0e10cSrcweir @threadsafe no (used on once position only!) 57cdf0e10cSrcweir *//*-*************************************************************************************************************/ 58cdf0e10cSrcweir class ContinuationFilterSelect : public comphelper::OInteraction< ::com::sun::star::document::XInteractionFilterSelect > 59cdf0e10cSrcweir { 60cdf0e10cSrcweir // c++ interface 61cdf0e10cSrcweir public: 62cdf0e10cSrcweir ContinuationFilterSelect(); 63cdf0e10cSrcweir 64cdf0e10cSrcweir // uno interface 65cdf0e10cSrcweir public: 66cdf0e10cSrcweir virtual void SAL_CALL setFilter( const ::rtl::OUString& sFilter ) throw( ::com::sun::star::uno::RuntimeException ); 67cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getFilter( ) throw( ::com::sun::star::uno::RuntimeException ); 68cdf0e10cSrcweir 69cdf0e10cSrcweir // member 70cdf0e10cSrcweir private: 71cdf0e10cSrcweir ::rtl::OUString m_sFilter; 72cdf0e10cSrcweir 73cdf0e10cSrcweir }; // class ContinuationFilterSelect 74cdf0e10cSrcweir 75cdf0e10cSrcweir 76cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 77cdf0e10cSrcweir // initialize continuation with right start values 78cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 79cdf0e10cSrcweir ContinuationFilterSelect::ContinuationFilterSelect() 80cdf0e10cSrcweir : m_sFilter( ::rtl::OUString() ) 81cdf0e10cSrcweir { 82cdf0e10cSrcweir } 83cdf0e10cSrcweir 84cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 85cdf0e10cSrcweir // handler should use it after selection to set user specified filter for transport 86cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 87cdf0e10cSrcweir void SAL_CALL ContinuationFilterSelect::setFilter( const ::rtl::OUString& sFilter ) throw( css::uno::RuntimeException ) 88cdf0e10cSrcweir { 89cdf0e10cSrcweir m_sFilter = sFilter; 90cdf0e10cSrcweir } 91cdf0e10cSrcweir 92cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 93cdf0e10cSrcweir // read access to transported filter 94cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 95cdf0e10cSrcweir ::rtl::OUString SAL_CALL ContinuationFilterSelect::getFilter() throw( css::uno::RuntimeException ) 96cdf0e10cSrcweir { 97cdf0e10cSrcweir return m_sFilter; 98cdf0e10cSrcweir } 99cdf0e10cSrcweir 100cdf0e10cSrcweir class RequestFilterSelect_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest > 101cdf0e10cSrcweir { 102cdf0e10cSrcweir public: 103cdf0e10cSrcweir RequestFilterSelect_Impl( const ::rtl::OUString& sURL ); 104cdf0e10cSrcweir sal_Bool isAbort () const; 105cdf0e10cSrcweir ::rtl::OUString getFilter() const; 106cdf0e10cSrcweir 107cdf0e10cSrcweir public: 108cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL getRequest() throw( ::com::sun::star::uno::RuntimeException ); 109cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException ); 110cdf0e10cSrcweir 111cdf0e10cSrcweir private: 112cdf0e10cSrcweir ::com::sun::star::uno::Any m_aRequest ; 113cdf0e10cSrcweir ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations; 114cdf0e10cSrcweir comphelper::OInteractionAbort* m_pAbort; 115cdf0e10cSrcweir ContinuationFilterSelect* m_pFilter; 116cdf0e10cSrcweir }; 117cdf0e10cSrcweir 118cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 119*07a3d7f1SPedro Giffuni // initialize instance with all necessary informations 120cdf0e10cSrcweir // We use it without any further checks on our member then ...! 121cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 122cdf0e10cSrcweir RequestFilterSelect_Impl::RequestFilterSelect_Impl( const ::rtl::OUString& sURL ) 123cdf0e10cSrcweir { 124cdf0e10cSrcweir ::rtl::OUString temp; 125cdf0e10cSrcweir css::uno::Reference< css::uno::XInterface > temp2; 126cdf0e10cSrcweir css::document::NoSuchFilterRequest aFilterRequest( temp , 127cdf0e10cSrcweir temp2 , 128cdf0e10cSrcweir sURL ); 129cdf0e10cSrcweir m_aRequest <<= aFilterRequest; 130cdf0e10cSrcweir 131cdf0e10cSrcweir m_pAbort = new comphelper::OInteractionAbort; 132cdf0e10cSrcweir m_pFilter = new ContinuationFilterSelect; 133cdf0e10cSrcweir 134cdf0e10cSrcweir m_lContinuations.realloc( 2 ); 135cdf0e10cSrcweir m_lContinuations[0] = css::uno::Reference< css::task::XInteractionContinuation >( m_pAbort ); 136cdf0e10cSrcweir m_lContinuations[1] = css::uno::Reference< css::task::XInteractionContinuation >( m_pFilter ); 137cdf0e10cSrcweir } 138cdf0e10cSrcweir 139cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 140cdf0e10cSrcweir // return abort state of interaction 141cdf0e10cSrcweir // If it is true, return value of method "getFilter()" will be unspecified then! 142cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 143cdf0e10cSrcweir sal_Bool RequestFilterSelect_Impl::isAbort() const 144cdf0e10cSrcweir { 145cdf0e10cSrcweir return m_pAbort->wasSelected(); 146cdf0e10cSrcweir } 147cdf0e10cSrcweir 148cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 149cdf0e10cSrcweir // return user selected filter 150cdf0e10cSrcweir // Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony! 151cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 152cdf0e10cSrcweir ::rtl::OUString RequestFilterSelect_Impl::getFilter() const 153cdf0e10cSrcweir { 154cdf0e10cSrcweir return m_pFilter->getFilter(); 155cdf0e10cSrcweir } 156cdf0e10cSrcweir 157cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 158cdf0e10cSrcweir // handler call it to get type of request 159cdf0e10cSrcweir // Is hard coded to "please select filter" here. see ctor for further informations. 160cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 161cdf0e10cSrcweir css::uno::Any SAL_CALL RequestFilterSelect_Impl::getRequest() throw( css::uno::RuntimeException ) 162cdf0e10cSrcweir { 163cdf0e10cSrcweir return m_aRequest; 164cdf0e10cSrcweir } 165cdf0e10cSrcweir 166cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 167cdf0e10cSrcweir // handler call it to get possible continuations 168cdf0e10cSrcweir // We support "abort/select_filter" only here. 169cdf0e10cSrcweir // After interaction we support read access on these continuations on our c++ interface to 170cdf0e10cSrcweir // return user decision. 171cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 172cdf0e10cSrcweir css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > SAL_CALL RequestFilterSelect_Impl::getContinuations() throw( css::uno::RuntimeException ) 173cdf0e10cSrcweir { 174cdf0e10cSrcweir return m_lContinuations; 175cdf0e10cSrcweir } 176cdf0e10cSrcweir 177cdf0e10cSrcweir 178cdf0e10cSrcweir RequestFilterSelect::RequestFilterSelect( const ::rtl::OUString& sURL ) 179cdf0e10cSrcweir { 180cdf0e10cSrcweir pImp = new RequestFilterSelect_Impl( sURL ); 181cdf0e10cSrcweir pImp->acquire(); 182cdf0e10cSrcweir } 183cdf0e10cSrcweir 184cdf0e10cSrcweir RequestFilterSelect::~RequestFilterSelect() 185cdf0e10cSrcweir { 186cdf0e10cSrcweir pImp->release(); 187cdf0e10cSrcweir } 188cdf0e10cSrcweir 189cdf0e10cSrcweir 190cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 191cdf0e10cSrcweir // return abort state of interaction 192cdf0e10cSrcweir // If it is true, return value of method "getFilter()" will be unspecified then! 193cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 194cdf0e10cSrcweir sal_Bool RequestFilterSelect::isAbort() const 195cdf0e10cSrcweir { 196cdf0e10cSrcweir return pImp->isAbort(); 197cdf0e10cSrcweir } 198cdf0e10cSrcweir 199cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 200cdf0e10cSrcweir // return user selected filter 201cdf0e10cSrcweir // Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony! 202cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 203cdf0e10cSrcweir ::rtl::OUString RequestFilterSelect::getFilter() const 204cdf0e10cSrcweir { 205cdf0e10cSrcweir return pImp->getFilter(); 206cdf0e10cSrcweir } 207cdf0e10cSrcweir 208cdf0e10cSrcweir uno::Reference < task::XInteractionRequest > RequestFilterSelect::GetRequest() 209cdf0e10cSrcweir { 210cdf0e10cSrcweir return uno::Reference < task::XInteractionRequest > (pImp); 211cdf0e10cSrcweir } 212cdf0e10cSrcweir 213cdf0e10cSrcweir /* 214cdf0e10cSrcweir class RequestAmbigousFilter_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest > 215cdf0e10cSrcweir { 216cdf0e10cSrcweir public: 217cdf0e10cSrcweir RequestAmbigousFilter_Impl( const ::rtl::OUString& sURL , 218cdf0e10cSrcweir const ::rtl::OUString& sSelectedFilter , 219cdf0e10cSrcweir const ::rtl::OUString& sDetectedFilter ); 220cdf0e10cSrcweir sal_Bool isAbort () const; 221cdf0e10cSrcweir ::rtl::OUString getFilter() const; 222cdf0e10cSrcweir 223cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL getRequest () throw( ::com::sun::star::uno::RuntimeException ); 224cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException ); 225cdf0e10cSrcweir 226cdf0e10cSrcweir ::com::sun::star::uno::Any m_aRequest ; 227cdf0e10cSrcweir ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations; 228cdf0e10cSrcweir ContinuationAbort* m_pAbort ; 229cdf0e10cSrcweir ContinuationFilterSelect* m_pFilter ; 230cdf0e10cSrcweir }; 231cdf0e10cSrcweir 232cdf0e10cSrcweir RequestAmbigousFilter::RequestAmbigousFilter( const ::rtl::OUString& sURL, const ::rtl::OUString& sSelectedFilter, 233cdf0e10cSrcweir const ::rtl::OUString& sDetectedFilter ) 234cdf0e10cSrcweir { 235cdf0e10cSrcweir pImp = new RequestAmbigousFilter_Impl( sURL, sSelectedFilter, sDetectedFilter ); 236cdf0e10cSrcweir pImp->acquire(); 237cdf0e10cSrcweir } 238cdf0e10cSrcweir 239cdf0e10cSrcweir RequestAmbigousFilter::~RequestAmbigousFilter() 240cdf0e10cSrcweir { 241cdf0e10cSrcweir pImp->release(); 242cdf0e10cSrcweir } 243cdf0e10cSrcweir 244cdf0e10cSrcweir sal_Bool RequestAmbigousFilter::isAbort() const 245cdf0e10cSrcweir { 246cdf0e10cSrcweir return pImp->isAbort(); 247cdf0e10cSrcweir } 248cdf0e10cSrcweir 249cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 250cdf0e10cSrcweir // return user selected filter 251cdf0e10cSrcweir // Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony! 252cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 253cdf0e10cSrcweir ::rtl::OUString RequestAmbigousFilter::getFilter() const 254cdf0e10cSrcweir { 255cdf0e10cSrcweir return pImp->getFilter(); 256cdf0e10cSrcweir } 257cdf0e10cSrcweir 258cdf0e10cSrcweir uno::Reference < task::XInteractionRequest > RequestAmbigousFilter::GetRequest() 259cdf0e10cSrcweir { 260cdf0e10cSrcweir return uno::Reference < task::XInteractionRequest > (pImp); 261cdf0e10cSrcweir } 262cdf0e10cSrcweir 263cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 264*07a3d7f1SPedro Giffuni // initialize instance with all necessary informations 265cdf0e10cSrcweir // We use it without any further checks on our member then ...! 266cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 267cdf0e10cSrcweir RequestAmbigousFilter_Impl::RequestAmbigousFilter_Impl( const ::rtl::OUString& sURL , 268cdf0e10cSrcweir const ::rtl::OUString& sSelectedFilter , 269cdf0e10cSrcweir const ::rtl::OUString& sDetectedFilter ) 270cdf0e10cSrcweir { 271cdf0e10cSrcweir ::rtl::OUString temp; 272cdf0e10cSrcweir css::uno::Reference< css::uno::XInterface > temp2; 273cdf0e10cSrcweir css::document::AmbigousFilterRequest aFilterRequest( temp , 274cdf0e10cSrcweir temp2 , 275cdf0e10cSrcweir sURL , 276cdf0e10cSrcweir sSelectedFilter , 277cdf0e10cSrcweir sDetectedFilter ); 278cdf0e10cSrcweir m_aRequest <<= aFilterRequest; 279cdf0e10cSrcweir 280cdf0e10cSrcweir m_pAbort = new ContinuationAbort ; 281cdf0e10cSrcweir m_pFilter = new ContinuationFilterSelect; 282cdf0e10cSrcweir 283cdf0e10cSrcweir m_lContinuations.realloc( 2 ); 284cdf0e10cSrcweir m_lContinuations[0] = css::uno::Reference< css::task::XInteractionContinuation >( m_pAbort ); 285cdf0e10cSrcweir m_lContinuations[1] = css::uno::Reference< css::task::XInteractionContinuation >( m_pFilter ); 286cdf0e10cSrcweir } 287cdf0e10cSrcweir 288cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 289cdf0e10cSrcweir // return abort state of interaction 290cdf0e10cSrcweir // If it is true, return value of method "getFilter()" will be unspecified then! 291cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 292cdf0e10cSrcweir sal_Bool RequestAmbigousFilter_Impl::isAbort() const 293cdf0e10cSrcweir { 294cdf0e10cSrcweir return m_pAbort->isSelected(); 295cdf0e10cSrcweir } 296cdf0e10cSrcweir 297cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 298cdf0e10cSrcweir // return user selected filter 299cdf0e10cSrcweir // Return value valid for non aborted interaction only. Please check "isAbort()" before you call these ony! 300cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 301cdf0e10cSrcweir ::rtl::OUString RequestAmbigousFilter_Impl::getFilter() const 302cdf0e10cSrcweir { 303cdf0e10cSrcweir return m_pFilter->getFilter(); 304cdf0e10cSrcweir } 305cdf0e10cSrcweir 306cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 307cdf0e10cSrcweir // handler call it to get type of request 308cdf0e10cSrcweir // Is hard coded to "please select filter" here. see ctor for further informations. 309cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 310cdf0e10cSrcweir css::uno::Any SAL_CALL RequestAmbigousFilter_Impl::getRequest() throw( css::uno::RuntimeException ) 311cdf0e10cSrcweir { 312cdf0e10cSrcweir return m_aRequest; 313cdf0e10cSrcweir } 314cdf0e10cSrcweir 315cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 316cdf0e10cSrcweir // handler call it to get possible continuations 317cdf0e10cSrcweir // We support "abort/select_filter" only here. 318cdf0e10cSrcweir // After interaction we support read access on these continuations on our c++ interface to 319cdf0e10cSrcweir // return user decision. 320cdf0e10cSrcweir //--------------------------------------------------------------------------------------------------------- 321cdf0e10cSrcweir css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > SAL_CALL RequestAmbigousFilter_Impl::getContinuations() throw( css::uno::RuntimeException ) 322cdf0e10cSrcweir { 323cdf0e10cSrcweir return m_lContinuations; 324cdf0e10cSrcweir } 325cdf0e10cSrcweir */ 326cdf0e10cSrcweir 327cdf0e10cSrcweir class InteractionRequest_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest > 328cdf0e10cSrcweir { 329cdf0e10cSrcweir uno::Any m_aRequest; 330cdf0e10cSrcweir uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > m_lContinuations; 331cdf0e10cSrcweir 332cdf0e10cSrcweir public: 333cdf0e10cSrcweir InteractionRequest_Impl( const ::com::sun::star::uno::Any& aRequest, 334cdf0e10cSrcweir const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > lContinuations ) 335cdf0e10cSrcweir { 336cdf0e10cSrcweir m_aRequest = aRequest; 337cdf0e10cSrcweir m_lContinuations = lContinuations; 338cdf0e10cSrcweir } 339cdf0e10cSrcweir 340cdf0e10cSrcweir virtual uno::Any SAL_CALL getRequest() throw( uno::RuntimeException ); 341cdf0e10cSrcweir virtual uno::Sequence< uno::Reference< task::XInteractionContinuation > > SAL_CALL getContinuations() 342cdf0e10cSrcweir throw( uno::RuntimeException ); 343cdf0e10cSrcweir }; 344cdf0e10cSrcweir 345cdf0e10cSrcweir uno::Any SAL_CALL InteractionRequest_Impl::getRequest() throw( uno::RuntimeException ) 346cdf0e10cSrcweir { 347cdf0e10cSrcweir return m_aRequest; 348cdf0e10cSrcweir } 349cdf0e10cSrcweir 350cdf0e10cSrcweir uno::Sequence< uno::Reference< task::XInteractionContinuation > > SAL_CALL InteractionRequest_Impl::getContinuations() 351cdf0e10cSrcweir throw( uno::RuntimeException ) 352cdf0e10cSrcweir { 353cdf0e10cSrcweir return m_lContinuations; 354cdf0e10cSrcweir } 355cdf0e10cSrcweir 356cdf0e10cSrcweir uno::Reference < task::XInteractionRequest > InteractionRequest::CreateRequest( 357cdf0e10cSrcweir const uno::Any& aRequest, const uno::Sequence< uno::Reference< task::XInteractionContinuation > > lContinuations ) 358cdf0e10cSrcweir { 359cdf0e10cSrcweir return new InteractionRequest_Impl( aRequest, lContinuations ); 360cdf0e10cSrcweir } 361cdf0e10cSrcweir 362cdf0e10cSrcweir } // namespace framework 363