<?xml version="1.0"?>
<doc>
    <assembly>
        <name>PaintDotNet.Base</name>
    </assembly>
    <members>
        <member name="T:PaintDotNet.Clipboard.ClipboardNativeFormats">
            <summary>
            Contains constants for common, standard clipboard formats.
            </summary>
            <remarks>
            See <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="F:PaintDotNet.Clipboard.ClipboardNativeFormats.Bitmap">
            <summary>
            A handle to a bitmap (<c>HBITMAP</c>). <c>CF_BITMAP</c>
            </summary>
            <remarks>
            See <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="F:PaintDotNet.Clipboard.ClipboardNativeFormats.Dib">
            <summary>
            A memory object containing a <c>BITMAPINFO</c> structure followed by the bitmap bits. <c>CF_DIB</c>
            </summary>
            <remarks>
            See <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="F:PaintDotNet.Clipboard.ClipboardNativeFormats.DibV5">
            <summary>
            A memory object containing a <c>BITMAPV5HEADER</c> structure followed by the bitmap color space information and the bitmap bits. <c>CF_DIBV5</c>
            </summary>
            <remarks>
            See <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="F:PaintDotNet.Clipboard.ClipboardNativeFormats.Emf">
            <summary>
            A handle to an enhanced metafile (<c>HENHMETAFILE</c>). <c>CF_ENHMETAFILE</c>
            </summary>
            <remarks>
            See <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="F:PaintDotNet.Clipboard.ClipboardNativeFormats.FileDropList">
            <summary>
            A handle to type <c>HDROP</c> that identifies a list of files. An application can retrieve information about the files by passing the handle to the DragQueryFile function. <c>CF_HDROP</c>
            </summary>
            <remarks>
            See <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="F:PaintDotNet.Clipboard.ClipboardNativeFormats.OemText">
            <summary>
            Text format containing characters in the OEM character set. Each line ends with a carriage return/linefeed (CR-LF) combination. A null character signals the end of the data. <c>CF_OEMTEXT</c>
            </summary>
            <remarks>
            See <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="F:PaintDotNet.Clipboard.ClipboardNativeFormats.Text">
            <summary>
            Text format. Each line ends with a carriage return/linefeed (CR-LF) combination. A null character signals the end of the data. Use this format for ANSI text. <c>CF_TEXT</c>
            </summary>
            <remarks>
            See <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="F:PaintDotNet.Clipboard.ClipboardNativeFormats.UnicodeText">
            <summary>
            Unicode text format. Each line ends with a carriage return/linefeed (CR-LF) combination. A null character signals the end of the data. <c>CF_UNICODETEXT</c>
            </summary>
            <remarks>
            See <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="M:PaintDotNet.Clipboard.IClipboardReader.IsDataMaybeAvailable">
            <summary>
            Gets a flag indicating whether data might be available on the clipboard, or if it definitely isn't.
            </summary>
            <returns>
            true if data might be available, or false if it definitely isn't
            </returns>
        </member>
        <member name="M:PaintDotNet.Clipboard.IClipboardReader.MaybeGetData">
            <summary>
            Attempts to get data from the clipboard.
            </summary>
            <returns>
            The data if it can be retrieved. Otherwise, either null is returned or an exception is thrown.
            </returns>
        </member>
        <member name="T:PaintDotNet.Clipboard.IClipboardTransaction">
            <summary>
            Provides methods for reading and writing clipboard data.
            </summary>
        </member>
        <member name="P:PaintDotNet.Clipboard.IClipboardTransaction.Clipboard">
            <summary>
            Gets a reference to the <see cref="T:PaintDotNet.Clipboard.IClipboard"/> object that created this transaction.
            </summary>
        </member>
        <member name="M:PaintDotNet.Clipboard.IClipboardTransaction.Empty">
            <summary>
            Empties the clipboard. This is generally the first method called after opening a transaction when
            copying data to the clipboard
            </summary>
        </member>
        <member name="M:PaintDotNet.Clipboard.IClipboardTransaction.RegisterNativeFormat(System.String)">
            <summary>
            Registers a format with the clipboard.
            </summary>
            <returns>
            A native format ID value. See <see cref="T:PaintDotNet.Clipboard.ClipboardNativeFormats"/> for the built-in native format IDs, and
            <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </returns>
            <remarks>
            This corresponds to <a href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registerclipboardformatw">RegisterClipboardFormatW</a>.
            </remarks>
        </member>
        <member name="M:PaintDotNet.Clipboard.IClipboardTransaction.GetNativeDataFormats">
            <summary>
            Gets the list of native data formats.
            </summary>
            <remarks>
            See <see cref="T:PaintDotNet.Clipboard.ClipboardNativeFormats"/> for the built-in native format IDs, and
            <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="M:PaintDotNet.Clipboard.IClipboardTransaction.TryGetNativeFormatName(System.UInt32)">
            <summary>
            Gets the registered name for the native data format.
            </summary>
            <remarks>
            This corresponds to <a href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getclipboardformatnamew">GetClipboardFormatNameW</a>.<br/>
            <br/>
            See <see cref="T:PaintDotNet.Clipboard.ClipboardNativeFormats"/> for the built-in native format IDs, and
            <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="M:PaintDotNet.Clipboard.IClipboardTransaction.IsNativeDataPresent(System.UInt32)">
            <summary>
            Checks whether a given native data format ID is registered.
            </summary>
        </member>
        <member name="M:PaintDotNet.Clipboard.IClipboardTransaction.TryGetNativeDataHandle(System.UInt32)">
            <summary>
            Gets a handle to the data on the clipboard that is associated with the given native data format ID.
            </summary>
            <remarks>This is usually only necessary when pulling something like an <c>HBITMAP</c> from the clipboard.</remarks>
        </member>
        <member name="M:PaintDotNet.Clipboard.IClipboardTransaction.TryGetNativeData(System.UInt32,PaintDotNet.Clipboard.ClipboardDataCallback)">
            <summary>
            Provides a mechanism for reading native data from the clipboard.
            </summary>
            <remarks>
            See <see cref="T:PaintDotNet.Clipboard.ClipboardNativeFormats"/> for the built-in native format IDs, and
            <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="M:PaintDotNet.Clipboard.IClipboardTransaction.AddNativeData(System.UInt32,System.IntPtr,PaintDotNet.Clipboard.ClipboardDataCallback)">
            <summary>
            Provides a mechanism for writing native data to the clipboard.
            </summary>
            <remarks>
            See <see cref="T:PaintDotNet.Clipboard.ClipboardNativeFormats"/> for the built-in native format IDs, and
            <a href="https://learn.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats">Standard
            Clipboard Formats</a> for more info.
            </remarks>
        </member>
        <member name="M:PaintDotNet.Collections.ConcurrentQueueExtensions.EnqueueRange``2(System.Collections.Concurrent.ConcurrentQueue{``0},``1)">
            <summary>
            Enqueues a list of items to the queue.
            </summary>
            <returns>The number of items that were enqueued.</returns>
            <remarks>
            The items will be enqueued in-order, but they may be interspersed with items being
            enqueued from other threads.
            </remarks>
        </member>
        <member name="T:PaintDotNet.Collections.ISegmentedCollection`1">
            <summary>
            Denotes a collection whose data is allocated in segments.
            </summary>
            <remarks>
            Segments sizes are always a power of 2. This makes computing offsets very
            efficient, as they can be implemented using shifts and logical masks instead 
            of division and modulus.
            </remarks>
        </member>
        <member name="P:PaintDotNet.Collections.ISegmentedCollection`1.SegmentLengthLog2">
            <summary>
            The log2 of the segment length.
            </summary>
        </member>
        <member name="P:PaintDotNet.Collections.ISegmentedCollection`1.Capacity">
            <summary>
            Gets the capacity of the collection. This will always be a multiple of SegmentLength.
            </summary>
        </member>
        <member name="M:PaintDotNet.Collections.ISegmentedCollection`1.EnsureCapacity(System.Int32)">
            <summary>
            Ensures that enough capacity is allocated to hold the requested number of elements.
            </summary>
            <remarks>
            The capacity value will be rounded up to a segment length boundary.
            </remarks>
        </member>
        <member name="M:PaintDotNet.Collections.ISegmentedCollection`1.TrimExcess">
            <summary>
            Trims any extra allocated memory that is not currently needed.
            </summary>
            <remarks>
            If Capacity is much larger than Count, this can reduce memory usage.
            Usually segments are not released immediately, in case the size of
            the collection is fluctuating across segment length boundaries.
            </remarks>
        </member>
        <member name="T:PaintDotNet.Collections.RefCountingSet`1">
            <summary>
            Similar to Set&lt;T&gt;, but with the added ability to increment/decrement an items reference count.
            </summary>
        </member>
        <member name="M:PaintDotNet.Collections.RefCountingSet`1.Add(`0)">
            <summary>
            Adds the item to the set, or increments its reference count if it is already present.
            </summary>
            <param name="item"></param>
            <returns>
            true if the item was added to the set, or false if the item was already 
            in the set and therefore its reference count was incremented.
            </returns>
        </member>
        <member name="M:PaintDotNet.Collections.RefCountingSet`1.Release(`0)">
            <summary>
            Decrements an item's reference count, and removes it from the set if it reaches 0.
            </summary>
            <param name="item"></param>
            <returns>
            true if the item was in the set and removed. false if item was not in the set, 
            or if its reference count is not yet zero.
            </returns>
        </member>
        <member name="M:PaintDotNet.Collections.SegmentedList`1.GetSegmentEndListIndex(System.Int32)">
            <summary>
            Returns an exclusive endpoint index for the requested segment index,
            clamped to the count of this list.
            </summary>
        </member>
        <member name="M:PaintDotNet.Collections.SegmentedList`1.EnsureCapacity(System.Int32)">
            <summary>
            Ensures that adding items up to the requested capacity will not require memory allocations.
            </summary>
        </member>
        <member name="M:PaintDotNet.Collections.SegmentedList`1.SetRange(System.Int32,`0[],System.Int32,System.Int32)">
            <summary>
            Starting at dstIndex, writes items into the list. The list will be expanded if necessary.
            </summary>
        </member>
        <member name="T:PaintDotNet.Collections.SortedKeyValueList`3">
            <summary>
            Maintains a sorted list of key-value pairs. There are no restrictions on key or value uniqueness.
            </summary>
        </member>
        <member name="T:PaintDotNet.Collections.SortedList`1">
            <summary>
            Maintains a sorted list of items. A given item may be in the collection more than once.
            </summary>
        </member>
        <member name="T:PaintDotNet.Collections.WorkStealingQueue`1">
            <summary>A work-stealing queue.</summary>
            <typeparam name="T">Specifies the type of data stored in the queue.</typeparam>
        </member>
        <member name="M:PaintDotNet.ComparableUtil.CompareTo``1(``0,System.Object)">
            <summary>
            This is a utility method you can call from your implementation of IComparable.CompareTo(object) when you
            have already implemented IComparable&lt;TThis&gt;.Equals(TThis other).
            </summary>
        </member>
        <member name="M:PaintDotNet.Concurrency.IAsyncSource.SetResult(PaintDotNet.Functional.Result)">
            <summary>
            Sets the result of this async, which is then delivered to any registered handlers.
            </summary>
            <returns>true if the result was accepted. false if the result has already been set.</returns>
        </member>
        <member name="M:PaintDotNet.Concurrency.IAsyncSource`1.SetResult(PaintDotNet.Functional.Result{`0})">
            <summary>
            Sets the result of this async, which is then delivered to any registered handlers.
            </summary>
            <returns>true if the result was accepted. false if the result has already been set.</returns>
        </member>
        <member name="M:PaintDotNet.Concurrency.IAsyncWorkDeque.Enqueue(PaintDotNet.Collections.QueueSide,System.Action)">
            <summary>
            Queues a work item to the front or end of the queue.
            </summary>
        </member>
        <member name="M:PaintDotNet.Concurrency.IAsyncWorkQueue.BeginTry(System.Action)">
            <summary>
            Queues a work item to the end of the work queue.
            </summary>
        </member>
        <member name="T:PaintDotNet.Diagnostics.FinalizerBomb">
            <summary>
            Instances of this class must be disposed, otherwise they will throw an exception
            when they are finalized. Useful for implementing "scope" structs. 
            </summary>
        </member>
        <member name="M:PaintDotNet.Drawing.GdipBitmapUtil.CreateAlias(System.Drawing.Bitmap)">
            <summary>
            Creates an alias for the given bitmap. This helps to avoid "already in use" types of errors. The input
            and output bitmaps share the same memory. Changes in one will be reflected in the other, and vice versa.
            </summary>
        </member>
        <member name="M:PaintDotNet.Drawing.RectangleExtensions.PixelsIntersectWith(System.Drawing.Rectangle,System.Drawing.Rectangle)">
            <summary>
            Determines if the two rectangles intersect, and if that intersection has a positive
            pixel coverage area.
            </summary>
            <param name="rect1"></param>
            <param name="rect2"></param>
            <returns></returns>
        </member>
        <member name="M:PaintDotNet.Drawing.RectangleFExtensions.RoundBound(System.Drawing.RectangleF)">
            <summary>
            Converts a RectangleF to RectangleF by rounding down the Location and rounding
            up the Size.
            </summary>
        </member>
        <member name="M:PaintDotNet.Dynamic.DynamicInvokeUtil.TryGetOrWrap(System.Object)">
            <summary>
            Returns an object that implements IDynamicInvoke which can be used for dynamic method invocation on the given target.
            </summary>
            <param name="target">The object to return or wrap.</param>
            <returns>
            If the target implements IDynamicInvoke, then it is returned directly. Otherwise, a wrapper is returned:
            If the target has a private method, OnInvokeDynamicMethod(string name, object[] args), then the wrapper will delegate to that method.
            Otherwise, null will be returned. This latter mechanism is provided so that classes compiled for an older version of this assembly,
            which lacks IDynamicInvoke, may still essentially implement IDynamicInvoke.
            </returns>
        </member>
        <member name="M:PaintDotNet.Dynamic.IDynamicInvoke.InvokeDynamicMethod(System.String,System.Object[])">
            <summary>
            Invokes a method with the given name and arguments.
            </summary>
            <param name="name">The name of the method to invoke.</param>
            <param name="args">The arguments to pass to the method. If there are no arguments, this should be null or 0-length.</param>
            <returns>The return value of the method. If the method's return type is void, then this will be null.</returns>
            <remarks>If elements of the args array correspond to ref or out parameters, then they may have been modified upon return.</remarks>
            <exception cref="T:System.Reflection.TargetInvocationException">The invoked method threw an exception.</exception>
            <exception cref="T:System.MissingMethodException">A method with the given name doesn't exist.</exception>
        </member>
        <member name="T:PaintDotNet.IO.GuardedStream">
            <summary>
            This class exists so that we can record exceptions thrown during any call into the source Stream.
            This is needed because if you use Bitmap.Save() on Win7, GDI+ uses WIC but it doesn't pay attention
            to things like IOExceptions and you otherwise cannot detect the error state.
            </summary>
        </member>
        <member name="F:PaintDotNet.IO.IOEventArgs.ioOperationType">
            <summary>
            Whether we are reporting a Read or Write operation.
            </summary>
        </member>
        <member name="F:PaintDotNet.IO.IOEventArgs.position">
            <summary>
            The offset within the file that the operation is to begin, or has finished, at.
            </summary>
        </member>
        <member name="F:PaintDotNet.IO.IOEventArgs.count">
            <summary>
            The number of bytes that were read or written.
            </summary>
        </member>
        <member name="T:PaintDotNet.IO.SiphonStream">
             <summary>
             This was written as a workaround for a bug in SharpZipLib that prevents it
             from working right with huge Write() commands. So we split the incoming
             requests into smaller requests, like 4KB each or so.
            
             However, this didn't work around the bug. But now I use this class so that
             I can keep tabs on a serialization or deserialization operation and have a
             dialog box with a progress bar.
             </summary>
        </member>
        <member name="M:PaintDotNet.IO.SiphonStream.Abort(System.Exception)">
            <summary>
            Causes the next call to Read() or Write() to throw an IOException instead. The
            exception passed to this method will be used as the InnerException.
            </summary>
            <param name="newThrowMe"></param>
        </member>
        <member name="T:PaintDotNet.Serialization.SerializationFallbackBinder">
            <summary>
            This is an implementation of SerializationBinder that tries to find a match
            for a type even if a direct match doesn't exist. This gets around versioning
            mismatches, and allows you to move data types between assemblies.
            </summary>
        </member>
        <member name="P:PaintDotNet.SizingEventArgs.ScreenWindowRectangle">
            <summary>
            Gets or sets the screen coordinates of the window, including the non-client region.
            </summary>
        </member>
        <member name="T:PaintDotNet.Threading.IDispatcher">
            <summary>
            An interface for a thread-affinitized queue of work.
            </summary>
        </member>
        <member name="T:PaintDotNet.Threading.IDispatcherObject">
            <summary>
            Represents an object that is associated with a dispatcher, and that
            does its work on the thread that the dispatcher is affinitized to.
            All calls into this object must be on the dispatcher's thread.
            </summary>
        </member>
        <member name="M:PaintDotNet.Threading.PdnSynchronizationContext.PumpInputQueueAsync(System.IntPtr)">
            <summary>
            Pumps the input queue for the specific HWND. This is done after the current
            callstack unwinds, and will be performed before any other callback pumping.
            </summary>
        </member>
        <member name="T:PaintDotNet.Threading.ThreadAffinitizedObjectBase">
            <summary>
            Helper base class for IThreadAffinitizedObject imlementations. At instantiation,
            the current thread is recognized into being the RequiredManagedThreadID for this
            object.
            </summary>
        </member>
        <member name="T:PaintDotNet.Threading.ThreadDispatcher">
            <summary>
            One thread for queueing work items into. The work items will always be executed in the
            order they are queued, and there will never be more than 1 of them executing at any
            given time.
            </summary>
        </member>
        <member name="M:PaintDotNet.VersionUtil.GetVersionNumberString(System.Version,System.Int32)">
            <summary>
            Returns a string for just the version number, i.e. "3.01"
            </summary>
            <remarks>2 and 4 are special cases. If you specify 4, then the version is returned as-is. If you specify 2, then
            it is actually "prettied" up to 3 fields, e.g. 3.51 -> 3.5.1</remarks>
        </member>
    </members>
</doc>
