internal void Update()
        {
            if (!IsLoaded || !IsVisible)
            {
                return;
            }

            if (thumbnail == IntPtr.Zero && taskview.Handle != IntPtr.Zero && window.Handle != IntPtr.Zero)
            {
                Thumbnail.DwmRegisterThumbnail(taskview.Handle, window.Handle, out thumbnail);
            }

            if (thumbnail != IntPtr.Zero)
            {
                Thumbnail.DwmQueryThumbnailSourceSize(thumbnail, out var size);

                var destination = CalculatePhysicalDestination(size);
                var properties  = new Thumbnail.Properties
                {
                    Destination = destination,
                    Flags       = Thumbnail.DWM_TNP_RECTDESTINATION | Thumbnail.DWM_TNP_VISIBLE,
                    Visible     = true
                };

                Thumbnail.DwmUpdateThumbnailProperties(thumbnail, ref properties);
            }
        }