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); } }