/// <summary>
 /// Registers this instance to all events of the given <see cref="IInteractionEventProxy"/>.
 /// </summary>
 /// <param name="iep">The event proxy that forwards specific interaction events.</param>
 public virtual void RegisterToEvents(IInteractionEventProxy iep)
 {
     interactionEventSource = iep;
     if (iep != null)
     {
         UnregisterFromEvents(iep);
         iep.ButtonCombinationReleased += new EventHandler<ButtonReleasedEventArgs>(im_ButtonCombinationReleased);
         iep.ButtonPressed += new EventHandler<ButtonPressedEventArgs>(im_ButtonPressed);
         iep.ButtonReleased += new EventHandler<ButtonReleasedEventArgs>(im_ButtonReleased);
         iep.GesturePerformed += new EventHandler<GestureEventArgs>(im_GesturePerformed);
     }
 }
 /// <summary>
 /// Unregisters this instance from all events of the given <see cref="IInteractionEventProxy"/>.
 /// </summary>
 /// <param name="iep">The event proxy that forwards specific interaction events.</param>
 public virtual void UnregisterFromEvents(IInteractionEventProxy iep)
 {
     if (iep != null)
     {
         try { iep.ButtonCombinationReleased -= new EventHandler<ButtonReleasedEventArgs>(im_ButtonCombinationReleased); }
         catch { }
         try { iep.ButtonPressed -= new EventHandler<ButtonPressedEventArgs>(im_ButtonPressed); }
         catch { }
         try { iep.ButtonReleased -= new EventHandler<ButtonReleasedEventArgs>(im_ButtonReleased); }
         catch { }
         try { iep.GesturePerformed -= new EventHandler<GestureEventArgs>(im_GesturePerformed); }
         catch { }
     }
 }