diff -r 84ad3b177aa3 -r 57d5b8e231c4 browserui/browser/BrowserAppSrc/BrowserAppViewBase.cpp --- a/browserui/browser/BrowserAppSrc/BrowserAppViewBase.cpp Mon Mar 30 12:49:49 2009 +0300 +++ b/browserui/browser/BrowserAppSrc/BrowserAppViewBase.cpp Fri May 08 08:18:43 2009 +0300 @@ -30,8 +30,8 @@ #include #include #include - - +#include "BrowserUtil.h" +#include // ================= MEMBER FUNCTIONS ======================= // --------------------------------------------------------- @@ -280,4 +280,40 @@ Cba()->SetCommandSetL( commandSet ); Cba()->DrawNow(); } + +// ----------------------------------------------------------------------------- +// CBrowserContentView::LaunchSearchApplicationL +// ----------------------------------------------------------------------------- +// +void CBrowserViewBase::LaunchSearchApplicationL( const TDesC& aSearchString ) + { + TInt id = iApiProvider.Preferences().GetIntValue( KBrowserSearchAppUid ); + TUid searchAppId( TUid::Uid( id ) ); + TApaTaskList taskList( CEikonEnv::Static()->WsSession() ); + TApaTask task = taskList.FindApp( searchAppId ); + HBufC8* searchParam8 = HBufC8::NewLC( aSearchString.Length() + 1); + searchParam8->Des().Append( aSearchString ); + if ( task.Exists() ) + { + User::LeaveIfError( task.SendMessage( TUid::Uid( 0 ), *searchParam8 ) ); + } + else + { + RApaLsSession appArcSession; + TApaAppInfo appInfo; + User::LeaveIfError(appArcSession.Connect()); + CleanupClosePushL( appArcSession ); + TInt err = appArcSession.GetAppInfo( appInfo, searchAppId ); + if( err == KErrNone ) + { + CApaCommandLine* cmdLine = CApaCommandLine::NewLC(); + cmdLine->SetExecutableNameL( appInfo.iFullName ); + cmdLine->SetTailEndL( *searchParam8 ); + User::LeaveIfError( appArcSession.StartApp( *cmdLine )); + CleanupStack::PopAndDestroy( cmdLine ); + } + CleanupStack::PopAndDestroy( &appArcSession ); + } + CleanupStack::PopAndDestroy( searchParam8 ); + } // End of File