1*6d739b60SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*6d739b60SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*6d739b60SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*6d739b60SAndrew Rist * distributed with this work for additional information 6*6d739b60SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*6d739b60SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*6d739b60SAndrew Rist * "License"); you may not use this file except in compliance 9*6d739b60SAndrew Rist * with the License. You may obtain a copy of the License at 10*6d739b60SAndrew Rist * 11*6d739b60SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*6d739b60SAndrew Rist * 13*6d739b60SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*6d739b60SAndrew Rist * software distributed under the License is distributed on an 15*6d739b60SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*6d739b60SAndrew Rist * KIND, either express or implied. See the License for the 17*6d739b60SAndrew Rist * specific language governing permissions and limitations 18*6d739b60SAndrew Rist * under the License. 19*6d739b60SAndrew Rist * 20*6d739b60SAndrew Rist *************************************************************/ 21*6d739b60SAndrew Rist 22*6d739b60SAndrew 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 48cdf0e10cSrcweir abort continuations ... Retrying isn't very usefull 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 //--------------------------------------------------------------------------------------------------------- 119cdf0e10cSrcweir // initialize instance with all neccessary 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 //--------------------------------------------------------------------------------------------------------- 264cdf0e10cSrcweir // initialize instance with all neccessary 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