internal static TaskbarWindow GetTaskbarWindow(IntPtr userWindowHandle, TaskbarProxyWindowType taskbarProxyWindowType)
        {
            if (userWindowHandle == IntPtr.Zero)
            {
                throw new ArgumentException(LocalizedMessages.CommonFileDialogInvalidHandle, nameof(userWindowHandle));
            }

            TaskbarWindow toReturn = _taskbarWindowList.FirstOrDefault(window => window.UserWindowHandle == userWindowHandle);

            // If its not in the list, return null so it can be added.
            if (toReturn != null)
            {
                if (taskbarProxyWindowType == TaskbarProxyWindowType.ThumbnailToolbar)
                {
                    toReturn.EnableThumbnailToolbars = true;
                }

                else if (taskbarProxyWindowType == TaskbarProxyWindowType.TabbedThumbnail)
                {
                    toReturn.EnableTabbedThumbnails = true;
                }
            }

            return(toReturn);
        }
        internal TaskbarWindow GetTaskbarWindow(IntPtr userWindowHandle, TaskbarProxyWindowType taskbarProxyWindowType)
        {
            if (userWindowHandle == IntPtr.Zero)
            {
                throw new ArgumentException("userWindowHandle");
            }

            TaskbarWindow toReturn = null;

            foreach (TaskbarWindow window in taskbarWindowList)
            {
                if (window.UserWindowHandle == userWindowHandle)
                {
                    toReturn = window;
                    break;
                }
            }

            // It's not in our list. Create a new TaskbarWindow, set the correct properties,
            // return the window to the caller.
            if (toReturn == null)
            {
                return(null);
            }

            if (taskbarProxyWindowType == TaskbarProxyWindowType.ThumbnailToolbar)
            {
                toReturn.EnableThumbnailToolbars = true;
            }
            else
            {
                toReturn.EnableTabbedThumbnails = true;
            }

            return(toReturn);
        }
        internal TaskbarWindow GetTaskbarWindow(IntPtr userWindowHandle, TaskbarProxyWindowType taskbarProxyWindowType)
        {
            if (userWindowHandle == IntPtr.Zero)
                throw new ArgumentException("userWindowHandle");

            TaskbarWindow toReturn = null;

            foreach (TaskbarWindow window in taskbarWindowList)
            {
                if (window.UserWindowHandle == userWindowHandle)
                {
                    toReturn = window;
                    break;
                }
            }

            // It's not in our list. Create a new TaskbarWindow, set the correct properties,
            // return the window to the caller.
            if (toReturn == null)
                return null;

            if (taskbarProxyWindowType == TaskbarProxyWindowType.ThumbnailToolbar)
                toReturn.EnableThumbnailToolbars = true;
            else
                toReturn.EnableTabbedThumbnails = true;

            return toReturn;
        }
        internal TaskbarWindow GetTaskbarWindow(System.Windows.UIElement windowsControl, TaskbarProxyWindowType taskbarProxyWindowType)
        {
            if (windowsControl == null)
                throw new ArgumentNullException("userWindowHandle");

            TaskbarWindow toReturn = null;

            foreach (TaskbarWindow window in taskbarWindowList)
            {
                if ((window.TabbedThumbnail != null && window.TabbedThumbnail.WindowsControl == windowsControl)
                    || (window.ThumbnailToolbarProxyWindow != null && window.ThumbnailToolbarProxyWindow.WindowsControl == windowsControl))
                {
                    toReturn = window;
                    break;
                }
            }

            // It's not in our list. Create a new TaskbarWindow, set the correct properties,
            // return the window to the caller.
            if (toReturn == null)
                return null;

            if (taskbarProxyWindowType == TaskbarProxyWindowType.ThumbnailToolbar)
                toReturn.EnableThumbnailToolbars = true;
            else
                toReturn.EnableTabbedThumbnails = true;

            return toReturn;
        }
        internal static TaskbarWindow GetTaskbarWindow(System.Windows.UIElement windowsControl, TaskbarProxyWindowType taskbarProxyWindowType)
        {
            if (windowsControl == null)
            {
                throw new ArgumentNullException("windowsControl");
            }

            TaskbarWindow toReturn = _taskbarWindowList.FirstOrDefault(window =>
            {
                return((window.TabbedThumbnail != null && window.TabbedThumbnail.WindowsControl == windowsControl) ||
                       (window.ThumbnailToolbarProxyWindow != null &&
                        window.ThumbnailToolbarProxyWindow.WindowsControl == windowsControl));
            });

            if (toReturn != null)
            {
                if (taskbarProxyWindowType == TaskbarProxyWindowType.ThumbnailToolbar)
                {
                    toReturn.EnableThumbnailToolbars = true;
                }
                else if (taskbarProxyWindowType == TaskbarProxyWindowType.TabbedThumbnail)
                {
                    toReturn.EnableTabbedThumbnails = true;
                }
            }

            return(toReturn);
        }
        internal static TaskbarWindow GetTaskbarWindow(IntPtr userWindowHandle, TaskbarProxyWindowType taskbarProxyWindowType)
        {
            if (userWindowHandle == IntPtr.Zero)
            {
                throw new ArgumentException(LocalizedMessages.CommonFileDialogInvalidHandle, "userWindowHandle");
            }

            TaskbarWindow toReturn = _taskbarWindowList.FirstOrDefault(window => window.UserWindowHandle == userWindowHandle);

            // If its not in the list, return null so it can be added.            
            if (toReturn != null)
            {
                if (taskbarProxyWindowType == TaskbarProxyWindowType.ThumbnailToolbar)
                {
                    toReturn.EnableThumbnailToolbars = true;
                }
                else if (taskbarProxyWindowType == TaskbarProxyWindowType.TabbedThumbnail)
                {
                    toReturn.EnableTabbedThumbnails = true;
                }
            }

            return toReturn;
        }
        internal static TaskbarWindow GetTaskbarWindow(System.Windows.UIElement windowsControl, TaskbarProxyWindowType taskbarProxyWindowType)
        {
            if (windowsControl == null) { throw new ArgumentNullException("windowsControl"); }

            TaskbarWindow toReturn = _taskbarWindowList.FirstOrDefault(window =>
            {
                return (window.TabbedThumbnail != null && window.TabbedThumbnail.WindowsControl == windowsControl) ||
                    (window.ThumbnailToolbarProxyWindow != null &&
                     window.ThumbnailToolbarProxyWindow.WindowsControl == windowsControl);
            });

            if (toReturn != null)
            {
                if (taskbarProxyWindowType == TaskbarProxyWindowType.ThumbnailToolbar)
                {
                    toReturn.EnableThumbnailToolbars = true;
                }
                else if (taskbarProxyWindowType == TaskbarProxyWindowType.TabbedThumbnail)
                {
                    toReturn.EnableTabbedThumbnails = true;
                }
            }

            return toReturn;
        }
        internal static TaskbarWindow GetTaskbarWindow(System.Windows.UIElement windowsControl, TaskbarProxyWindowType taskbarProxyWindowType)
        {
            ThrowIfNull(windowsControl, nameof(windowsControl));

            TaskbarWindow toReturn = _taskbarWindowList.FirstOrDefault(window => (window.TabbedThumbnail != null && window.TabbedThumbnail.WindowsControl == windowsControl) ||
                    (window.ThumbnailToolbarProxyWindow != null &&
                     window.ThumbnailToolbarProxyWindow.WindowsControl == windowsControl));

            if (toReturn != null)

                if (taskbarProxyWindowType == TaskbarProxyWindowType.ThumbnailToolbar)

                    toReturn.EnableThumbnailToolbars = true;

                else if (taskbarProxyWindowType == TaskbarProxyWindowType.TabbedThumbnail)

                    toReturn.EnableTabbedThumbnails = true;

            return toReturn;
        }
        internal TaskbarWindow GetTaskbarWindow(System.Windows.UIElement windowsControl, TaskbarProxyWindowType taskbarProxyWindowType)
        {
            if (windowsControl == null)
            {
                throw new ArgumentNullException("userWindowHandle");
            }

            TaskbarWindow toReturn = null;

            foreach (TaskbarWindow window in taskbarWindowList)
            {
                if ((window.TabbedThumbnail != null && window.TabbedThumbnail.WindowsControl == windowsControl) ||
                    (window.ThumbnailToolbarProxyWindow != null && window.ThumbnailToolbarProxyWindow.WindowsControl == windowsControl))
                {
                    toReturn = window;
                    break;
                }
            }

            // It's not in our list. Create a new TaskbarWindow, set the correct properties,
            // return the window to the caller.
            if (toReturn == null)
            {
                return(null);
            }

            if (taskbarProxyWindowType == TaskbarProxyWindowType.ThumbnailToolbar)
            {
                toReturn.EnableThumbnailToolbars = true;
            }
            else
            {
                toReturn.EnableTabbedThumbnails = true;
            }

            return(toReturn);
        }