/// <summary>
 /// Adds the list item to the current selection.
 /// </summary>
 /// <param name="extension">The extension interface.</param>
 /// <param name="control">The base ProdUI control.</param>
 /// <param name="itemText">The text of the item to select.</param>
 internal static void AddToSelectionBridge(this IMultipleSelectionList extension, BaseProdControl control, string itemText)
 {
     try
     {
         UiaAddToSelection(control, itemText);
     }
     catch (ArgumentNullException err)
     {
         throw new ProdOperationException(err);
     }
     catch (ElementNotAvailableException err)
     {
         throw new ProdOperationException(err);
     }
     catch (InvalidOperationException)
     {
         NativeAddToSelection(control, itemText);
     }
 }
 /// <summary>
 /// Sets the selected items from a supplied list.
 /// </summary>
 /// <param name="extension">The extension interface.</param>
 /// <param name="control">The base ProdUI control.</param>
 /// <param name="items">The text of the items to select.</param>
 internal static void SetSelectedItemsBridge(this IMultipleSelectionList extension, BaseProdControl control, Collection <string> items)
 {
     try
     {
         UiaSetSelectedItems(control, items);
     }
     catch (ArgumentNullException err)
     {
         throw new ProdOperationException(err);
     }
     catch (ElementNotAvailableException err)
     {
         throw new ProdOperationException(err);
     }
     catch (InvalidOperationException err)
     {
         throw new ProdOperationException(err);
     }
 }
 /// <summary>
 /// Selects all items in a ListBox.
 /// </summary>
 /// <param name="extension">The extension interface.</param>
 /// <param name="control">The base ProdUI control.</param>
 internal static void SelectAllBridge(this IMultipleSelectionList extension, BaseProdControl control)
 {
     try
     {
         UiaSelectAll(control);
     }
     catch (ArgumentNullException err)
     {
         throw new ProdOperationException(err);
     }
     catch (ElementNotAvailableException err)
     {
         throw new ProdOperationException(err);
     }
     catch (InvalidOperationException)
     {
         NativeSelectAll(control);
     }
 }
 /// <summary>
 /// Removes the selected list item from the current selection.
 /// </summary>
 /// <param name="extension">The extension interface.</param>
 /// <param name="control">The base ProdUI control.</param>
 /// <param name="index">The index of the item to deselect.</param>
 internal static void RemoveFromSelectionBridge(this IMultipleSelectionList extension, BaseProdControl control, int index)
 {
     try
     {
         UiaRemoveFromSelection(control, index);
     }
     catch (ArgumentNullException err)
     {
         throw new ProdOperationException(err);
     }
     catch (ElementNotAvailableException err)
     {
         throw new ProdOperationException(err);
     }
     catch (InvalidOperationException)
     {
         NativeRemoveFromSelection(control, index);
     }
 }
 /// <summary>
 /// Gets the selected item count.
 /// </summary>
 /// <param name="extension">The extension interface.</param>
 /// <param name="control">The base ProdUI control.</param>
 /// <returns>
 /// The count of selected items
 /// </returns>
 internal static int GetSelectedItemCountBridge(this IMultipleSelectionList extension, BaseProdControl control)
 {
     try
     {
         return(UiaGetSelectedItemCount(control));
     }
     catch (ArgumentNullException err)
     {
         throw new ProdOperationException(err);
     }
     catch (ElementNotAvailableException err)
     {
         throw new ProdOperationException(err);
     }
     catch (InvalidOperationException)
     {
         return(NativeGetSelectedItemCount(control));
     }
 }
 internal static bool CanSelectMultipleBridge(this IMultipleSelectionList extension, BaseProdControl control)
 {
     return(UiaCanSelectMultiple(control));
 }