protected virtual void OnShare(ShareEventArgs e)
 {
     if (Share != null)
     {
         Share(this, e);
     }
 }
        protected override void OnShareTargetActivated( ShareTargetActivatedEventArgs args )
        {
            Contract.Assume( args != null );

            IServiceProvider serviceProvider = Host;

            if ( serviceProvider == null )
                return;

            IEventBroker eventBroker;

            // publish search event for the entire application
            if ( !serviceProvider.TryGetService( out eventBroker ) )
                return;

            var e = new ShareEventArgs( args.PreviousExecutionState, args.ShareOperation );
            eventBroker.Publish( "Share", null, e );
        }