<?xml version="1.0"?>
<doc>
    <assembly>
        <name>YourPhoneAppProxy</name>
    </assembly>
    <members>
        <member name="T:YourPhoneAppProxy.App">
            <summary>
            App
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.App.CleanUpBeforeShutdownAsync(YourPhoneAppProxy.Core.ExitReason,System.Boolean)">
            <summary>
            Used to shutdown app and call Current.Shutdown at the end to avoid any time limits when closing the app
            </summary>
            <param name="exitReason">Exit reason</param>
            <param name="callShutdown">If should call Application.Shutdown after cleanup. Default value is true.</param>
            <returns>Task</returns>
        </member>
        <member name="M:YourPhoneAppProxy.App.Application_DispatcherUnhandledException(System.Object,System.Windows.Threading.DispatcherUnhandledExceptionEventArgs)">
            <summary>
            Called by the UI Thread and takes precedence over CurrentDomain_UnhandledException
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.App.CurrentDomain_UnhandledException(System.Object,System.UnhandledExceptionEventArgs)">
            <summary>
            For background threads unhandled exceptions
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.App.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.App.Main">
            <summary>
            Application Entry Point.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.AddPreviewImage(System.String,System.Boolean,System.Runtime.InteropServices.ComTypes.IDataObject,YourPhoneAppProxy.Telemetry.ITelemetryFactory)">
            <summary>
            Adding an image preview image to drag drop, depending on isMultiple and file extension
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.AddPreviewImageFromResource(System.Runtime.InteropServices.ComTypes.IDataObject,YourPhoneAppProxy.Telemetry.ITelemetryFactory)">
            <summary>
            Adding an image preview when dealing with multiple images
            </summary>
            <param name="dataObject">dataObject</param>
            <param name="telemetryFactory">telemetryFactory</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.AddPreviewImageFromExtension(System.Runtime.InteropServices.ComTypes.IDataObject,System.String,YourPhoneAppProxy.Telemetry.ITelemetryFactory)">
            <summary>
            Add an image preview form extension (when dealing with a single file)
            </summary>
            <param name="dataObject">dataObject</param>
            <param name="extension">extension including dot ex: ".jpg"</param>
            <param name="telemetryFactory">telemetryFactory</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.SetImageToDragDropSourceHelper(System.Drawing.Bitmap,System.Runtime.InteropServices.ComTypes.IDataObject,YourPhoneAppProxy.Telemetry.ITelemetryFactory)">
            <summary>
            Set the actual shadow into the dataObject
            </summary>
            <param name="bmp">bitmap</param>
            <param name="dataObject">dataObject</param>
            <param name="telemetryFactory">telemetryFactory</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.SetDropDescription(System.Runtime.InteropServices.ComTypes.IDataObject,YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.DropImageType,System.String,System.String)">
            <summary>
            Sets the drop description for the drag image manager.
            </summary>
            <param name="dataObject">The DataObject to set.</param>
            <param name="type">The type of the drop image.</param>
            <param name="format">The format string for the description.</param>
            <param name="insert">The parameter for the drop description.</param>
            <remarks>
            When setting the drop description, the text can be set in two part,
            which will be rendered slightly differently to distinguish the description
            from the subject. For example, the format can be set as "Move to %1" and
            the insert as "Temp". When rendered, the "%1" in format will be replaced
            with "Temp", but "Temp" will be rendered slightly different from "Move to ".
            </remarks>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.SetDropDescription(System.Runtime.InteropServices.ComTypes.IDataObject,YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.DropDescription)">
            <summary>
            Sets the drop description for the drag image manager.
            </summary>
            <param name="dataObject">The DataObject to set.</param>
            <param name="dropDescription">The drop description.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.GetDropDescription(System.Runtime.InteropServices.ComTypes.IDataObject)">
            <summary>
            Gets the DropDescription format data.
            </summary>
            <param name="dataObject">The DataObject.</param>
            <returns>The DropDescription, if set.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.FillFormatETC(System.String,System.Runtime.InteropServices.ComTypes.TYMED,System.Runtime.InteropServices.ComTypes.FORMATETC@)">
            <summary>
            Fills a FORMATETC structure.
            </summary>
            <param name="format">The format name.</param>
            <param name="tymed">The accepted TYMED.</param>
            <param name="formatETC">The structure to fill.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.GetIconIndex(System.String,YourPhoneAppProxy.Telemetry.ITelemetryFactory)">
            <summary>
            Get icon index from extension name
            </summary>
            <param name="extension">extension with dot ex: ".jpg"</param>
            <param name="telemetryFactory">telemetryFactory</param>
            <returns>Icon index</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.GetJumboIcon(System.Int32,YourPhoneAppProxy.Telemetry.ITelemetryFactory)">
            <summary>
            Get an icon formIImage
            </summary>
            <param name="iImage">IImage</param>
            <param name="telemetryFactory">telemetryFactory</param>
            <returns>256*256 icon</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.AllowDropDescription(System.Boolean)">
            <summary>
            Showing the drop description or not, (not yet supported)
            </summary>
            <param name="allow">bool</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.GetBooleanFromData(System.Object)">
            <summary>
            Boolean from a stream
            </summary>
            <param name="data">stream in case</param>
            <returns>bool value</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.IsShowingLayered(System.Runtime.InteropServices.ComTypes.IDataObject,System.Runtime.InteropServices.ComTypes.FORMATETC@)">
            <summary>
            If the image is showing layered
            When invalidating the drag image
            </summary>
            <param name="dataObject">dataObject</param>
            <param name="formatec">formatec</param>
            <returns>showingLayered</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.InvalidateDragImage(System.Runtime.InteropServices.ComTypes.IDataObject)">
            <summary>
            Invalidate the image medium
            </summary>
            <param name="dataObject">dataObject</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.CopyMedium(System.Runtime.InteropServices.ComTypes.STGMEDIUM@)">
            <summary>
            Creates a copy of the STGMEDIUM structure.
            </summary>
            <param name="medium">The data to copy.</param>
            <returns>The copied data.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.GetIntPtrFromMedium(System.Runtime.InteropServices.ComTypes.STGMEDIUM@)">
            <summary>
            Get the pointer from medium
            </summary>
            <param name="medium">medium</param>
            <returns>IntPtr</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.GetExtensionFromFileName(System.Collections.Generic.List{System.String})">
            <summary>
            Gets the extension name from a path
            </summary>
            <param name="fileNames">list of file names</param>
            <returns>".multiple" if dealing with multiple files, else the extension</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.DataObjectUtils.Succeeded(System.Int32)">
            <summary>
            Returns true iff the HRESULT is a success code.
            </summary>
            <param name="hr">HRESULT to check.</param>
            <returns>True if a success code.</returns>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.DragDropManager.DragCancel">
            <summary>
            Drag-drop operation canceled
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject">
            <summary>
            Class implementing drag/drop and clipboard support for virtual files.
            Also offers an alternate interface to the IDataObject interface.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.OleAdviseNotSupported">
            <summary>
            Error Ole Advise Not Supported
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.InvalidTymed">
            <summary>
            Invalid tymed
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.InvalidFormatetc">
            <summary>
            Invalid FORMATETC structure
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.InvalidAspects">
            <summary>
            Invalid aspect(s)
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DragUsedDefaultCursors">
            <summary>
            Drag Use the default cursor
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DragCancel">
            <summary>
            Drag-drop operation canceled
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DragDropSuccess">
            <summary>
            Successful drop took place
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IsAsynchronous">
            <summary>
            Gets or sets a value indicating whether the data object can be used asynchronously.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.cfFileContents">
            <summary>
            Identifier for CFSTR_FILECONTENTS.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.cfFileDescriptor">
            <summary>
            Identifier for CFSTR_FILEDESCRIPTORW.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.cfPasteSucceeded">
            <summary>
            Identifier for CFSTR_PASTESUCCEEDED.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.cfPerformedDropEffect">
            <summary>
            Identifier for CFSTR_PERFORMEDDROPEFFECT.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.cfPreferredDropEffect">
            <summary>
            Identifier for CFSTR_PREFERREDDROPEFFECT.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.dataObjects">
            <summary>
            In-order list of registered data objects.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.inOperation">
            <summary>
            Tracks whether an asynchronous operation is ongoing.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.startAction">
            <summary>
            Stores the user-specified start action.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.endAction">
            <summary>
            Stores the user-specified end action.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.debugPrinterHelper">
            <summary>
            Console debug print helper
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject"/> class.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.#ctor(System.Action{YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject},System.Action{YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject},YourPhoneAppProxy.Core.DragDrop.DebugPrinterHelper)">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject"/> class.
            </summary>
            <param name="startAction">Optional action to run at the start of the data transfer.</param>
            <param name="endAction">Optional action to run at the end of the data transfer.</param>
            <param name="debugPrinterHelper">Helper.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.System#Runtime#InteropServices#ComTypes#IDataObject#DAdvise(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.ADVF,System.Runtime.InteropServices.ComTypes.IAdviseSink,System.Int32@)">
            <summary>
            Creates a connection between a data object and an advisory sink.
            </summary>
            <param name="pFormatetc">A FORMATETC structure that defines the format, target device, aspect, and medium that will be used for future notifications.</param>
            <param name="advf">One of the ADVF values that specifies a group of flags for controlling the advisory connection.</param>
            <param name="adviseSink">A pointer to the IAdviseSink interface on the advisory sink that will receive the change notification.</param>
            <param name="connection">When this method returns, contains a pointer to a DWORD token that identifies this connection.</param>
            <returns>HRESULT success code.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.System#Runtime#InteropServices#ComTypes#IDataObject#DUnadvise(System.Int32)">
            <summary>
            Destroys a notification connection that had been previously established.
            </summary>
            <param name="connection">A DWORD token that specifies the connection to remove.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.System#Runtime#InteropServices#ComTypes#IDataObject#EnumDAdvise(System.Runtime.InteropServices.ComTypes.IEnumSTATDATA@)">
            <summary>
            Creates an object that can be used to enumerate the current advisory connections.
            </summary>
            <param name="enumAdvise">When this method returns, contains an IEnumSTATDATA that receives the interface pointer to the new enumerator object.</param>
            <returns>HRESULT success code.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.System#Runtime#InteropServices#ComTypes#IDataObject#EnumFormatEtc(System.Runtime.InteropServices.ComTypes.DATADIR)">
            <summary>
            Creates an object for enumerating the FORMATETC structures for a data object.
            </summary>
            <param name="direction">One of the DATADIR values that specifies the direction of the data.</param>
            <returns>IEnumFORMATETC interface.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.System#Runtime#InteropServices#ComTypes#IDataObject#GetCanonicalFormatEtc(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.FORMATETC@)">
            <summary>
            Provides a standard FORMATETC structure that is logically equivalent to a more complex structure.
            </summary>
            <param name="formatIn">A pointer to a FORMATETC structure that defines the format, medium, and target device that the caller would like to use to retrieve data in a subsequent call such as GetData.</param>
            <param name="formatOut">When this method returns, contains a pointer to a FORMATETC structure that contains the most general information possible for a specific rendering, making it canonically equivalent to formatetIn.</param>
            <returns>HRESULT success code.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.System#Runtime#InteropServices#ComTypes#IDataObject#GetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@)">
            <summary>
            Obtains data from a source data object.
            </summary>
            <param name="format">A pointer to a FORMATETC structure that defines the format, medium, and target device to use when passing the data.</param>
            <param name="medium">When this method returns, contains a pointer to the STGMEDIUM structure that indicates the storage medium containing the returned data through its tymed member, and the responsibility for releasing the medium through the value of its pUnkForRelease member.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.System#Runtime#InteropServices#ComTypes#IDataObject#GetDataHere(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@)">
            <summary>
            Obtains data from a source data object.
            </summary>
            <param name="format">A pointer to a FORMATETC structure that defines the format, medium, and target device to use when passing the data.</param>
            <param name="medium">A STGMEDIUM that defines the storage medium containing the data being transferred.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.System#Runtime#InteropServices#ComTypes#IDataObject#QueryGetData(System.Runtime.InteropServices.ComTypes.FORMATETC@)">
            <summary>
            Determines whether the data object is capable of rendering the data described in the FORMATETC structure.
            </summary>
            <param name="format">A pointer to a FORMATETC structure that defines the format, medium, and target device to use for the query.</param>
            <returns>HRESULT success code.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.System#Runtime#InteropServices#ComTypes#IDataObject#SetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@,System.Boolean)">
            <summary>
            Transfers data to the object that implements this method.
            </summary>
            <param name="formatIn">A FORMATETC structure that defines the format used by the data object when interpreting the data contained in the storage medium.</param>
            <param name="medium">A STGMEDIUM structure that defines the storage medium in which the data is being passed.</param>
            <param name="release">true to specify that the data object called, which implements SetData, owns the storage medium after the call returns.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.SetData(System.Int16,System.Collections.Generic.IEnumerable{System.Byte})">
            <summary>
            Provides data for the specified data format (HGLOBAL).
            </summary>
            <param name="dataFormat">Data format.</param>
            <param name="data">Sequence of data.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.SetData(System.Int16,System.Int32,System.Action{YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.StreamResult})">
            <summary>
            Provides data for the specified data format and index (ISTREAM).
            </summary>
            <param name="dataFormat">Data format.</param>
            <param name="index">Index of data.</param>
            <param name="streamData">Action generating the data.</param>
            <remarks>
            Uses Stream instead of IEnumerable(T) because Stream is more likely
            to be natural for the expected scenarios.
            </remarks>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.SetData(System.Int16,System.Boolean,System.Collections.Generic.KeyValuePair{System.Runtime.InteropServices.ComTypes.FORMATETC,System.Runtime.InteropServices.ComTypes.STGMEDIUM})">
            <summary>
            SetData for objects that don't require delayed rendering
            </summary>
            <param name="dataFormat">data format</param>
            <param name="release">should we release medium</param>
            <param name="pair">The pair.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.SetData(System.Collections.Generic.IEnumerable{YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.FileDescriptor})">
            <summary>
            Provides data for the specified data format (FILEGROUPDESCRIPTOR/FILEDESCRIPTOR)
            </summary>
            <param name="fileDescriptors">Collection of virtual files.</param>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.PasteSucceeded">
            <summary>
            Gets or sets the CFSTR_PASTESUCCEEDED value for the object.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.PerformedDropEffect">
            <summary>
            Gets or sets the CFSTR_PERFORMEDDROPEFFECT value for the object.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.PreferredDropEffect">
            <summary>
            Gets or sets the CFSTR_PREFERREDDROPEFFECT value for the object.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.GetDropEffect(System.Int16)">
            <summary>
            Gets the DragDropEffects value (if any) previously set on the object.
            </summary>
            <param name="format">Clipboard format.</param>
            <returns>DragDropEffects value or null.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.YourPhoneAppProxy#Core#Interop#DragDrop#NativeInterfaces#IAsyncOperation#SetAsyncMode(System.Int32)">
            <summary>
            Called by a drop source to specify whether the data object supports asynchronous data extraction.
            </summary>
            <param name="fDoOpAsync">A Boolean value that is set to VARIANT_TRUE to indicate that an asynchronous operation is supported, or VARIANT_FALSE otherwise.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.YourPhoneAppProxy#Core#Interop#DragDrop#NativeInterfaces#IAsyncOperation#GetAsyncMode(System.Int32@)">
            <summary>
            Called by a drop target to determine whether the data object supports asynchronous data extraction.
            </summary>
            <param name="pfIsOpAsync">A Boolean value that is set to VARIANT_TRUE to indicate that an asynchronous operation is supported, or VARIANT_FALSE otherwise.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.YourPhoneAppProxy#Core#Interop#DragDrop#NativeInterfaces#IAsyncOperation#StartOperation(System.Runtime.InteropServices.ComTypes.IBindCtx)">
            <summary>
            Called by a drop target to indicate that asynchronous data extraction is starting.
            </summary>
            <param name="pbcReserved">Reserved. Set this value to NULL.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.YourPhoneAppProxy#Core#Interop#DragDrop#NativeInterfaces#IAsyncOperation#InOperation(System.Int32@)">
            <summary>
            Called by the drop source to determine whether the target is extracting data asynchronously.
            </summary>
            <param name="pfInAsyncOp">Set to VARIANT_TRUE if data extraction is being handled asynchronously, or VARIANT_FALSE otherwise.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.YourPhoneAppProxy#Core#Interop#DragDrop#NativeInterfaces#IAsyncOperation#EndOperation(System.Int32,System.Runtime.InteropServices.ComTypes.IBindCtx,System.UInt32)">
            <summary>
            Notifies the data object that that asynchronous data extraction has ended.
            </summary>
            <param name="hResult">An HRESULT value that indicates the outcome of the data extraction. Set to S_OK if successful, or a COM error code otherwise.</param>
            <param name="pbcReserved">Reserved. Set to NULL.</param>
            <param name="dwEffects">A DROPEFFECT value that indicates the result of an optimized move. This should be the same value that would be passed to the data object as a CFSTR_PERFORMEDDROPEFFECT format with a normal data extraction operation.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.Succeeded(System.Int32)">
            <summary>
            Returns true iff the HRESULT is a success code.
            </summary>
            <param name="hr">HRESULT to check.</param>
            <returns>True iff a success code.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.StructureBytes(System.Object)">
            <summary>
            Returns the in-memory representation of an interop structure.
            </summary>
            <param name="source">Structure to return.</param>
            <returns>In-memory representation of structure.</returns>
        </member>
        <member name="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.FileDescriptor">
            <summary>
            Class representing a virtual file for use by drag/drop or the clipboard.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.FileDescriptor.Name">
            <summary>
            Gets or sets the name of the file.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.FileDescriptor.Length">
            <summary>
            Gets or sets the (optional) length of the file.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.FileDescriptor.ChangeTimeUtc">
            <summary>
            Gets or sets the (optional) change time of the file.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.FileDescriptor.StreamContents">
            <summary>
            Gets or sets an Action that returns the contents of the file.
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.StreamResult">
            <summary>
            Class representing the result of writting the Stream
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DataObject">
            <summary>
            Class representing the result of a SetData call.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DataObject.FORMATETC">
            <summary>
            FORMATETC structure for the data.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DataObject.GetData">
            <summary>
            Func returning the data as an IntPtr and an HRESULT success code.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DataObject.STGMedium">
            <summary>
            Explecit Medium, when ignoring delayed rendering
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DataObject.ReleaseMedium">
            <summary>
            Should we release medium
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.Tuple`2">
            <summary>
            Represents a 2-tuple, or pair.
            </summary>
            <remarks>
            Minimal implementation of the .NET 4 Tuple class; remove if running on .NET 4.
            </remarks>
            <typeparam name="T1">The type of the tuple's first component.</typeparam>
            <typeparam name="T2">The type of the tuple's second component.</typeparam>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.Tuple`2.Item1">
            <summary>
            Gets the value of the current Tuple(T1, T2) object's first component.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.Tuple`2.Item2">
            <summary>
            Gets the value of the current Tuple(T1, T2) object's second component.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.Tuple`2.#ctor(`0,`1)">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.Tuple`2"/> class.
            Initializes a new instance of the Tuple(T1, T2) class.
            </summary>
            <param name="item1">The value of the tuple's first component.</param>
            <param name="item2">The value of the tuple's second component.</param>
        </member>
        <member name="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper">
            <summary>
            Simple class that exposes a write-only IStream as a Stream.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.iStream">
            <summary>
            IStream instance being wrapped.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.#ctor(System.Runtime.InteropServices.ComTypes.IStream)">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper"/> class.
            </summary>
            <param name="iStream">IStream instance to wrap.</param>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.CanRead">
            <summary>
            Gets a value indicating whether the current stream supports reading.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.CanSeek">
            <summary>
            Gets a value indicating whether the current stream supports seeking.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.CanWrite">
            <summary>
            Gets a value indicating whether the current stream supports writing.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.Flush">
            <summary>
            Clears all buffers for this stream and causes any buffered data to be written to the underlying device.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.Length">
            <summary>
            Gets the length in bytes of the stream.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.Position">
            <summary>
            Gets or sets the position within the current stream.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
            </summary>
            <param name="buffer">An array of bytes. When this method returns, the buffer contains the specified byte array with the values between offset and (offset + count - 1) replaced by the bytes read from the current source.</param>
            <param name="offset">The zero-based byte offset in buffer at which to begin storing the data read from the current stream.</param>
            <param name="count">The maximum number of bytes to be read from the current stream.</param>
            <returns>The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            Sets the position within the current stream.
            </summary>
            <param name="offset">A byte offset relative to the origin parameter.</param>
            <param name="origin">A value of type SeekOrigin indicating the reference point used to obtain the new position.</param>
            <returns>The new position within the current stream.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.SetLength(System.Int64)">
            <summary>
            Sets the length of the current stream.
            </summary>
            <param name="value">The desired length of the current stream in bytes.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.IStreamWrapper.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
            </summary>
            <param name="buffer">An array of bytes. This method copies count bytes from buffer to the current stream.</param>
            <param name="offset">The zero-based byte offset in buffer at which to begin copying bytes to the current stream.</param>
            <param name="count">The number of bytes to be written to the current stream.</param>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DoDragDrop(System.Windows.DependencyObject,System.Runtime.InteropServices.ComTypes.IDataObject,System.Windows.DragDropEffects,YourPhoneAppProxy.Telemetry.ITelemetryFactory,YourPhoneAppProxy.Core.DragDrop.DebugPrinterHelper)">
            <summary>
            Initiates a drag-and-drop operation.
            </summary>
            <param name="dragSource">A reference to the dependency object that is the source of the data being dragged.</param>
            <param name="dataObject">A data object that contains the data being dragged.</param>
            <param name="allowedEffects">One of the DragDropEffects values that specifies permitted effects of the drag-and-drop operation.</param>
            <param name="telemetryFactory">telemetryFactory</param>
            <param name="debugPrinterHelper">debugPrinterHelper</param>
            <returns>One of the DragDropEffects values that specifies the final effect that was performed during the drag-and-drop operation.</returns>
            <remarks>
            Call this method instead of System.Windows.DragDrop.DoDragDrop because this method handles IDataObject better.
            </remarks>
        </member>
        <member name="T:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DropSource">
            <summary>
            Contains the methods for generating visual feedback to the end user and for canceling or completing the drag-and-drop operation.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DropSource.QueryContinueDrag(System.Int32,System.UInt32)">
            <summary>
            Determines whether a drag-and-drop operation should continue.
            </summary>
            <param name="fEscapePressed">Indicates whether the Esc key has been pressed since the previous call to QueryContinueDrag or to DoDragDrop if this is the first call to QueryContinueDrag. A TRUE value indicates the end user has pressed the escape key; a FALSE value indicates it has not been pressed.</param>
            <param name="grfKeyState">The current state of the keyboard modifier keys on the keyboard. Possible values can be a combination of any of the flags MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON, and MK_RBUTTON.</param>
            <returns>This method returns S_OK/DRAGDROP_S_DROP/DRAGDROP_S_CANCEL on success.</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.DragDrop.VirtualFileDataObject.DropSource.GiveFeedback(System.UInt32)">
            <summary>
            Gives visual feedback to an end user during a drag-and-drop operation.
            </summary>
            <param name="dwEffect">The DROPEFFECT value returned by the most recent call to IDropTarget::DragEnter, IDropTarget::DragOver, or IDropTarget::DragLeave. </param>
            <returns>This method returns S_OK on success.</returns>
        </member>
        <member name="P:YourPhoneAppProxy.Core.Input.InputHelper.IsMouseDown">
            <summary>
            Indicates if the mouse is being pressed during drag and drop. This is checked when dragging over some windows that request data on drag over.
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Input.InputHelper.ExtendedKeySet">
            <summary>
            Gets a set of keys that trigger the isExtended flag
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.Input.InputHelper.TryGetPointerEventArgs(YourPhoneAppProxy.Core.Input.IWindowProperties,System.UIntPtr,System.UInt32,YourPhoneAppProxy.Core.Input.PointerEventArgs@)">
            <summary>
            Try to get a PointerEventArgs
            </summary>
            <param name="windowProperties">Current window properties</param>
            <param name="type">wParam from WndProc</param>
            <param name="msg">WindowMessages</param>
            <param name="pointerEventArgs">out pointerEventArgs</param>
            <returns>success/failure</returns>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Input.KeyboardStateManager.noAltGrKeyboardSet">
            <summary>
            Known Keyboards that do not have the AltGr key
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.Input.KeyboardStateManager.IsAltGrOnCurrentKeyboard">
            <inheritdoc cref="T:YourPhoneAppProxy.Core.Input.IKeyboardStateManager"/>
        </member>
        <member name="M:YourPhoneAppProxy.Core.Input.PointerInputService.GetFreeFingerId">
            <summary>
            Gets the first free index in the map
            </summary>
            <returns>int</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.Input.PointerInputService.TryGetFingerId(System.UInt32,System.Int32@)">
            <summary>
            Tries to retrieve the fingerId associated with the Pointer Id
            </summary>
            <param name="windowsFingerId">Pointer Id</param>
            <param name="fingerId">out fingerId result</param>
            <returns>success / failure</returns>
        </member>
        <member name="M:YourPhoneAppProxy.Core.Input.PointerInputService.TryRemoveFinger(System.UInt32,System.Int32@)">
            <summary>
            Tries to remove the fingerId from the finger map
            </summary>
            <param name="windowsFingerId">PointerId</param>
            <param name="fingerId">out fingerId removed</param>
            <returns>success / failure</returns>
        </member>
        <member name="T:YourPhoneAppProxy.Core.Interop.DragDrop.NativeInterfaces.IAsyncOperation">
            <summary>
            Definition of the IAsyncOperation COM interface.
            </summary>
            <remarks>
            Pseudo-public because VirtualFileDataObject implements it.
            </remarks>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.Icon">
            <summary>get icon</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.DisplayName">
            <summary>get display name</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.TypeName">
            <summary>get type name</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.Attributes">
            <summary>get attributes</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.IconLocation">
            <summary>get icon location</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.ExeType">
            <summary>return exe type</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.SysIconIndex">
            <summary>get system icon index</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.LinkOverlay">
            <summary>put a link overlay on icon</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.Selected">
            <summary>show icon in selected state</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.Attr_Specified">
            <summary>get only specified attributes</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.LargeIcon">
            <summary>get large icon</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.SmallIcon">
            <summary>get small icon</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.OpenIcon">
            <summary>get open icon</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.ShellIconSize">
            <summary>get shell size icon</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.PIDL">
            <summary>pszPath is a pidl</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.UseFileAttributes">
            <summary>use passed dwFileAttribute</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.AddOverlays">
            <summary>apply the appropriate overlays</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.Shgfi.OverlayIndex">
            <summary>Get the index of the overlay in the upper 8 bits of the iIcon</summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.IconInfo.FIcon">
            <summary>
            Specifies whether this structure defines an icon or a cursor.
            A value of TRUE specifies an icon; FALSE specifies a cursor
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.IconInfo.XHotspot">
            <summary>
            The x-coordinate of a cursor's hot spot
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.IconInfo.YHotspot">
            <summary>
            The y-coordinate of a cursor's hot spot
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.IconInfo.HbmMask">
            <summary>
            The icon bitmask bitmap
            </summary>
        </member>
        <member name="F:YourPhoneAppProxy.Core.Interop.DragDrop.NativeStructs.IconInfo.HbmColor">
            <summary>
            A handle to the icon color bitmap.
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.Interop.SpiUtils.WindowArranging">
            <summary>
            Window arrangement reduces the number of mouse, pen, or touch interactions
            needed to move and size top-level windows by simplifying the default
            behavior of a window when it is dragged or sized
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.Interop.SpiUtils.SnapSizing">
            <summary>
            Allow a window to be vertically maximized when it is sized to the top
            or bottom of the monitor
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.Interop.SpiUtils.DockMoving">
            <summary>
            Allow a window to be docked when it is moved to the top, left, or right
            docking targets on a monitor or monitor array
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Core.Interop.SpiUtils.DragFromMaximize">
            <summary>
            Allow a maximized window to be restored when its caption bar is dragged
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.ViewHelpers.AppProxyContainerAutomationPeer.#ctor(System.Windows.FrameworkElement,System.Windows.FrameworkElement)">
            <summary>
            Initializes a new instance of the <see cref="T:YourPhoneAppProxy.Core.ViewHelpers.AppProxyContainerAutomationPeer"/> class.
            Creates an AutomationPeer with the option of having the parent of the bounding rectangle be different than the AutomationPeer owner.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.ViewHelpers.AppProxyContainerAutomationPeer.OnAccessibilityEventRectangleReceived(System.Windows.Rect,System.Double,System.Double)">
            <summary>
            Creates a bounding rect on the parent given to this AutomationPeer, given the bounding Rect and
            measurements of the previous parent of the Rect.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.ViewHelpers.AppProxyContainerAutomationPeer.GetEquivRectOnNewParent(System.Windows.Rect,System.Double,System.Double)">
            <summary>
            Converts a Rect representing the bounding focus rectangle on the old parent, to the
            equivalent representation relative to the boundingRectParent of this AutomationPeer
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.ViewHelpers.AppProxyContainerAutomationPeer.ParentRectToScreenRect(System.Windows.Rect)">
            <summary>
            Converts a Rect that represents the bounding focus rectangle relative to boundingRectParent, to
            the equivalent Rect relative to the whole screen.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Core.Accessibility.ViewHelpers.NarratorCapableElementAutomationPeer.RaiseNarratorNotificationEvent(Windows.Win32.UI.Accessibility.NotificationKind,Windows.Win32.UI.Accessibility.NotificationProcessing,System.String,System.String)">
            <summary>
            Raises a notification event to trigger Windows Narrator. Throws Win32Exception if the win32 event fails with an HResult.
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.AppProxyContainer.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.AppProxyWindow.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Navigationbar.NavigationbarButtonsView">
            <summary>
            NavigationbarButtonsView.xaml
            </summary>
            <summary>
            NavigationbarButtonsView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Navigationbar.NavigationbarButtonsView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.ProgressRing.ProgressRingView">
            <summary>
            ProgressRingView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.ProgressRing.ProgressRingView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.ProgressRing.TimedProgressRingWithButtonView">
            <summary>
            TimedProgressRingWithButtonView
            </summary>
        </member>
        <member name="P:YourPhoneAppProxy.Views.ProgressRing.TimedProgressRingWithButtonView.TimerSeconds">
            <summary><c>TimerSeconds</c> represents second interval before the
            spinner gets swapped with an action button. If set to zero (default value),
            spinner will not appear and the button will show immediately</summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.ProgressRing.TimedProgressRingWithButtonView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Takeover.AppProxyTakeoverContainer">
            <summary>
            Interaction logic for AppProxyTakeoverContainer.xaml
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Takeover.AppProxyTakeoverContainer.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Takeover.TakeoverErrorView">
            <summary>
            Interaction logic for TakeoverErrorView.xaml
            </summary>
            <summary>
            TakeoverErrorView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Takeover.TakeoverErrorView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Takeover.TakeoverFeatureSetupView">
            <summary>
            Interaction logic for TakeoverFeatureSetupView.xaml
            </summary>
            <summary>
            TakeoverFeatureSetupView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Takeover.TakeoverFeatureSetupView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Takeover.TakeoverNoButtonView">
            <summary>
            Interaction logic for TakeoverNoButtonView.xaml
            </summary>
            <summary>
            TakeoverNoButtonView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Takeover.TakeoverNoButtonView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Takeover.TakeoverOneButtonView">
            <summary>
            Interaction logic for TakeoverOneButtonView.xaml
            </summary>
            <summary>
            TakeoverOneButtonView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Takeover.TakeoverOneButtonView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Takeover.TakeoverOneButtonWithCheckBoxView">
            <summary>
            Interaction logic for TakeoverOneButtonWithCheckBoxView.xaml
            </summary>
            <summary>
            TakeoverOneButtonWithCheckBoxView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Takeover.TakeoverOneButtonWithCheckBoxView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Takeover.TakeoverSpinnerView">
            <summary>
            Interaction logic for TakeoverSpinnerView.xaml
            </summary>
            <summary>
            TakeoverSpinnerView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Takeover.TakeoverSpinnerView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Takeover.TakeoverTwoButtonView">
            <summary>
            Interaction logic for TakeoverTwoButtonView.xaml
            </summary>
            <summary>
            TakeoverTwoButtonView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Takeover.TakeoverTwoButtonView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Takeover.TakeoverTwoButtonWithCheckBoxView">
            <summary>
            Interaction logic for TakeoverTwoButtonWithCheckBoxView.xaml
            </summary>
            <summary>
            TakeoverTwoButtonWithCheckBoxView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Takeover.TakeoverTwoButtonWithCheckBoxView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.TeachingTip.TeachingTip">
            <summary>
            Interaction logic for TeachingTip.xaml
            </summary>
            <summary>
            TeachingTip
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.TeachingTip.TeachingTip.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Titlebar.TitlebarButtonsView">
            <summary>
            Interaction logic for TitlebarButtonsView.xaml
            </summary>
            <summary>
            TitlebarButtonsView
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Titlebar.TitlebarButtonsView.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:YourPhoneAppProxy.Views.Volume.VolumePopup">
            <summary>
            Interaction logic for VolumePopup.xaml
            </summary>
            <summary>
            VolumePopup
            </summary>
        </member>
        <member name="M:YourPhoneAppProxy.Views.Volume.VolumePopup.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:Windows.Win32.PInvoke">
            <content>
            Contains extern methods from "COMCTL32.dll".
            </content>
            <content>
            Contains extern methods from "GDI32.dll".
            </content>
            <content>
            Contains extern methods from "KERNEL32.dll".
            </content>
            <content>
            Contains extern methods from "OLE32.dll".
            </content>
            <content>
            Contains extern methods from "OLEAUT32.dll".
            </content>
            <content>
            Contains extern methods from "UIAutomationCore.dll".
            </content>
            <content>
            Contains extern methods from "USER32.dll".
            </content>
        </member>
        <member name="M:Windows.Win32.PInvoke.ImageList_Destroy(Windows.Win32.UI.Controls.HIMAGELIST)">
            <summary>Destroys an image list.</summary>
            <param name="himl">
            <para>Type: <b>HIMAGELIST</b> A handle to the image list to destroy.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_destroy#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">BOOL</a></b> Returns nonzero if successful, or zero otherwise.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_destroy">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <!-- Badly formed XML comment ignored for member "F:Windows.Win32.PInvoke.WM_LBUTTONDOWN" -->
        <member name="F:Windows.Win32.PInvoke.WM_LBUTTONUP">
            <summary>Posted when the user releases the left mouse button while the cursor is in the client area of a window.</summary>
            <returns>If an application processes this message, it should return zero.</returns>
            <remarks>
            <para>Use the following code to obtain the horizontal and vertical position:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/inputdev/wm-lbuttonup#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_WINDOWPOSCHANGING">
            <summary>Sent to a window whose size, position, or place in the Z order is about to change as a result of a call to the SetWindowPos function or another window-management function.</summary>
            <returns>
            <para>Type: **LRESULT** If an application processes this message, it should return zero.</para>
            </returns>
            <remarks>
            <para>For a window with the [**WS\_OVERLAPPED**](window-styles.md) or **WS\_THICKFRAME** style, the [**DefWindowProc**](/windows/desktop/api/winuser/nf-winuser-defwindowproca) function sends the [**WM\_GETMINMAXINFO**](wm-getminmaxinfo.md) message to the window. This is done to validate the new size and position of the window and to enforce the [CS\_BYTEALIGNCLIENT](about-window-classes.md) and CS\_BYTEALIGNWINDOW client styles. By not passing the **WM\_WINDOWPOSCHANGING** message to the **DefWindowProc** function, an application can override these defaults. While this message is being processed, modifying any of the values in [**WINDOWPOS**](/windows/win32/api/winuser/ns-winuser-windowpos) affects the window's new size, position, or place in the Z order. An application can prevent changes to the window by setting or clearing the appropriate bits in the **flags** member of **WINDOWPOS**.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/winmsg/wm-windowposchanging#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_GETMINMAXINFO">
            <summary>Sent to a window when the size or position of the window is about to change. An application can use this message to override the window's default maximized size and position, or its default minimum or maximum tracking size.</summary>
            <returns>
            <para>Type: **LRESULT** If an application processes this message, it should return zero.</para>
            </returns>
            <remarks>The maximum tracking size is the largest window size that can be produced by using the borders to size the window. The minimum tracking size is the smallest window size that can be produced by using the borders to size the window.</remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_EXITSIZEMOVE">
            <summary>Sent one time to a window, after it has exited the moving or sizing modal loop.</summary>
            <returns>
            <para>Type: **LRESULT** An application should return zero if it processes this message.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/winmsg/wm-exitsizemove">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_POINTERUPDATE">
            <summary>Posted to provide an update on a pointer that made contact over the client area of a window or on a hovering uncaptured pointer over the client area of a window.</summary>
            <returns>
            <para>If an application processes this message, it should return zero. If the application does not process this message, it should call [**DefWindowProc**](/windows/win32/api/winuser/nf-winuser-defwindowproca).</para>
            </returns>
            <remarks>
            <para>Each pointer has a unique pointer identifier during its lifetime. The lifetime of a pointer begins when it is first detected. A [**WM_POINTERENTER**](wm-pointerenter.md) message is generated if a hovering pointer is detected. A [**WM_POINTERDOWN**](wm-pointerdown.md) message followed by a **WM_POINTERENTER** message is generated if a non-hovering pointer is detected. During its lifetime, a pointer may generate a series of **WM_POINTERUPDATE** messages while it is hovering or in contact. The lifetime of a pointer ends when it is no longer detected. This generates a [**WM_POINTERLEAVE**](wm-pointerleave.md) message. When a pointer is aborted, [**POINTER_FLAG_CANCELED**](pointer-flags-contants.md) is set. A [**WM_POINTERLEAVE**](wm-pointerleave.md) message may also be generated when a non-captured pointer moves outside the bounds of a window. To obtain the horizontal and vertical position of a pointer, use the following:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/inputmsg/wm-pointerupdate#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_POINTERENTER">
            <summary>Sent to a window when a new pointer enters detection range over the window (hover) or when an existing pointer moves within the boundaries of the window.</summary>
            <returns>
            <para>If an application processes this message, it should return zero. If the application does not process this message, it should call [**DefWindowProc**](/windows/win32/api/winuser/nf-winuser-defwindowproca).</para>
            </returns>
            <remarks>
            <para>The **WM_POINTERENTER** notification can be used by a window to provide feedback to the user while the pointer is over its surface or to otherwise react to the presence of a pointer over its surface. This notification is only sent to the window that is receiving input for the pointer. The following table lists some of the situations in which this notification is sent.</para>
            <para>| Action                                                   | Flags Set                                                                                                                                         | Notifications Sent To                                 | |----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------| | A new pointer enters detection range (hover).            | [**IS_POINTER_NEW_WPARAM**](/windows/win32/api/winuser/nf-winuser-is_pointer_new_wparam)<br/> [**IS_POINTER_INRANGE_WPARAM**](/windows/win32/api/winuser/nf-winuser-is_pointer_new_wparam)<br/> | Window over which the pointer enters detection range. | | A hovering pointer crosses within the window boundaries. | [**IS_POINTER_INRANGE_WPARAM**](/windows/win32/api/winuser/nf-winuser-is_pointer_inrange_wparam)<br/>                                                                      | Window within which the pointer has crossed.          |</para>
            <para>> ![Important] > When a window loses capture of a pointer and it receives the [**WM_POINTERCAPTURECHANGED**](wm-pointercapturechanged.md) notification, it typically will not receive any further notifications. For this reason, it is important that you not make any assumptions based on evenly paired [**WM_POINTERDOWN**](wm-pointerdown.md)/[**WM_POINTERUP**](wm-pointerup.md) or **WM_POINTERENTER**/[**WM_POINTERLEAVE**](wm-pointerleave.md) notifications.</para>
            <para>When inputs come from the mouse, as a result of mouse and pointer message integration, **WM_POINTERENTER** is not sent.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/inputmsg/wm-pointerenter#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_POINTERLEAVE">
            <summary>Sent to a window when a pointer leaves detection range over the window (hover) or when a pointer moves outside the boundaries of the window.</summary>
            <returns>
            <para>If an application processes this message, it should return zero. If the application does not process this message, it should call [**DefWindowProc**](/windows/win32/api/winuser/nf-winuser-defwindowproca).</para>
            </returns>
            <remarks>
            <para>The **WM_POINTERLEAVE** notification can be used by a window to change mode or stop any feedback to the user while the pointer is over the window surface. This notification is only sent to the window that is receiving input for the pointer. The following table lists some of the situations in which this notification is sent.</para>
            <para>| Action                                        | Flags Set                                                         | Notifications Sent To                                | |-----------------------------------------------|-------------------------------------------------------------------|------------------------------------------------------| | A hovering pointer crosses window boundaries. | [**IS_POINTER_INRANGE_WPARAM**](/windows/win32/api/winuser/nf-winuser-is_pointer_inrange_wparam) | Window outside of whose boundary the pointer moved.  | | A pointer goes out of detection range.        | N/A                                                               | Window for which the pointer leaves detection range. |</para>
            <para>> ![Important] > When a window loses capture of a pointer and it receives the [**WM_POINTERCAPTURECHANGED**](wm-pointercapturechanged.md) notification, it typically will not receive any further notifications. For this reason, it is important that you not make any assumptions based on evenly paired [**WM_POINTERDOWN**](wm-pointerdown.md)/[**WM_POINTERUP**](wm-pointerup.md) or [**WM_POINTERENTER**](wm-pointerenter.md)/**WM_POINTERLEAVE** notifications.</para>
            <para>If contact is maintained with the input digitizer and the pointer moves outside the window, **WM_POINTERLEAVE** is not generated. **WM_POINTERLEAVE** is generated only when a hovering pointer crosses window boundaries or contact is terminated. **WM_POINTERLEAVE** is posted to the posted message queue if the input is originated from a mouse device.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/inputmsg/wm-pointerleave#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_POINTERDOWN">
            <summary>Posted when a pointer makes contact over the client area of a window.</summary>
            <returns>
            <para>If an application processes this message, it should return zero. If the application does not process this message, it should call [**DefWindowProc**](/windows/win32/api/winuser/nf-winuser-defwindowproca).</para>
            </returns>
            <remarks>
            <para>> ![Important] > When a window loses capture of a pointer and it receives the [**WM_POINTERCAPTURECHANGED**](wm-pointercapturechanged.md) notification, it typically will not receive any further notifications. For this reason, it is important that you not make any assumptions based on evenly paired **WM_POINTERDOWN**/[**WM_POINTERUP**](wm-pointerup.md) or [**WM_POINTERENTER**](wm-pointerenter.md)/[**WM_POINTERLEAVE**](wm-pointerleave.md) notifications.</para>
            <para>Each pointer has a unique pointer identifier during its lifetime. The lifetime of a pointer begins when it is first detected. A [**WM_POINTERENTER**](wm-pointerenter.md) message is generated if a hovering pointer is detected. A **WM_POINTERDOWN** message followed by a **WM_POINTERENTER** message is generated if a non-hovering pointer is detected. During its lifetime, a pointer may generate a series of [**WM_POINTERUPDATE**](wm-pointerupdate.md) messages while it is hovering or in contact. The lifetime of a pointer ends when it is no longer detected. This generates a [**WM_POINTERLEAVE**](wm-pointerleave.md) message. When a pointer is aborted, [**POINTER_FLAG_CANCELED**](pointer-flags-contants.md) is set. A [**WM_POINTERLEAVE**](wm-pointerleave.md) message may also be generated when a non-captured pointer moves outside the bounds of a window. To obtain the horizontal and vertical position of a pointer, use the following:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/inputmsg/wm-pointerdown#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_POINTERUP">
            <summary>Posted when a pointer that made contact over the client area of a window breaks contact.</summary>
            <returns>
            <para>If an application processes this message, it should return zero. If the application does not process this message, it should call [**DefWindowProc**](/windows/win32/api/winuser/nf-winuser-defwindowproca).</para>
            </returns>
            <remarks>
            <para>> ![Important] > When a window loses capture of a pointer and it receives the [**WM_POINTERCAPTURECHANGED**](wm-pointercapturechanged.md) notification, it typically will not receive any further notifications. For this reason, it is important that you not make any assumptions based on evenly paired [**WM_POINTERDOWN**](wm-pointerdown.md)/**WM_POINTERUP** or [**WM_POINTERENTER**](wm-pointerenter.md)/[**WM_POINTERLEAVE**](wm-pointerleave.md) notifications.</para>
            <para>Each pointer has a unique pointer identifier during its lifetime. The lifetime of a pointer begins when it is first detected. A [**WM_POINTERENTER**](wm-pointerenter.md) message is generated if a hovering pointer is detected. A [**WM_POINTERDOWN**](wm-pointerdown.md) message followed by a **WM_POINTERENTER** message is generated if a non-hovering pointer is detected. During its lifetime, a pointer may generate a series of [**WM_POINTERUPDATE**](wm-pointerupdate.md) messages while it is hovering or in contact. The lifetime of a pointer ends when it is no longer detected. This generates a [**WM_POINTERLEAVE**](wm-pointerleave.md) message. When a pointer is aborted, [**POINTER_FLAG_CANCELED**](pointer-flags-contants.md) is set. A [**WM_POINTERLEAVE**](wm-pointerleave.md) message may also be generated when a non-captured pointer moves outside the bounds of a window. To obtain the horizontal and vertical position of a pointer, use the following: Use the following code to obtain the horizontal and vertical position:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/inputmsg/wm-pointerup#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_POINTERWHEEL">
            <summary>Posted to the window with foreground keyboard focus when a scroll wheel is rotated.</summary>
            <returns>
            <para>If the application processes this message, it should return zero. If the application does not process this message, it should call [**DefWindowProc**](/windows/win32/api/winuser/nf-winuser-defwindowproca).</para>
            </returns>
            <remarks>
            <para>To retrieve the wheel scroll units, use the **inputData** filed of the [**POINTER_INFO**](/windows/win32/api/winuser/ns-winuser-pointer_info) structure returned by calling [**GetPointerInfo**](/windows/win32/api/winuser/ns-winuser-pointer_info) function. This field contains a signed value and is expressed in a multiple of **WHEEL_DELTA**. A positive value indicates a rotation forward and a negative value indicates a rotation backward. Note that the wheel inputs may be delivered even if the mouse cursor is located outside of application s window. The wheel messages are delivered in a way very similar to the keyboard inputs. The focus window of the foregournd message queue receives the wheel messages.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/inputmsg/wm-pointerwheel#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_POINTERHWHEEL">
            <summary>Posted to the window with foreground keyboard focus when a horizontal scroll wheel is rotated.</summary>
            <returns>
            <para>If the application processes this message, it should return zero. If the application does not process this message, it should call [**DefWindowProc**](/windows/win32/api/winuser/nf-winuser-defwindowproca).</para>
            </returns>
            <remarks>
            <para>To retrieve the wheel scroll units, use the **inputData** filed of the [**POINTER_INFO**](/windows/win32/api/winuser/ns-winuser-pointer_info) structure returned by calling [**GetPointerInfo**](/windows/win32/api/winuser/ns-winuser-pointer_info) function. This field contains a signed value and is expressed in a multiple of **WHEEL_DELTA**. A positive value indicates a rotation forward and a negative value indicates a rotation backward. Note that the wheel inputs may be delivered even if the mouse cursor is located outside of application s window. The wheel messages are delivered in a way very similar to the keyboard inputs. The focus window of the foregournd message queue receives the wheel messages.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/inputmsg/wm-pointerhwheel#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_SETFOCUS">
            <summary>Sent to a window after it has gained the keyboard focus.</summary>
            <returns>An application should return zero if it processes this message.</returns>
            <remarks>To display a caret, an application should call the appropriate caret functions when it receives the **WM\_SETFOCUS** message.</remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_KILLFOCUS">
            <summary>Sent to a window immediately before it loses the keyboard focus.</summary>
            <returns>An application should return zero if it processes this message.</returns>
            <remarks>
            <para>If an application is displaying a caret, the caret should be destroyed at this point. While processing this message, do not make any function calls that display or activate a window. This causes the thread to yield control and can cause the application to stop responding to messages. For more information, see [Message Deadlocks](/windows/desktop/winmsg/about-messages-and-message-queues).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/inputdev/wm-killfocus#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_NCCREATE">
            <summary>Sent prior to the WM\_CREATE message when a window is first created.</summary>
            <returns>
            <para>Type: **LRESULT** If an application processes this message, it should return **TRUE** to continue creation of the window. If the application returns **FALSE**, the [**CreateWindow**](/windows/win32/api/winuser/nf-winuser-createwindowa) or [**CreateWindowEx**](/windows/win32/api/winuser/nf-winuser-createwindowexa) function will return a **NULL** handle.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/winmsg/wm-nccreate">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.WM_NCDESTROY">
            <summary>Notifies a window that its nonclient area is being destroyed. The DestroyWindow function sends the WM\_NCDESTROY message to the window following the WM\_DESTROY message.</summary>
            <returns>
            <para>Type: **LRESULT** If an application processes this message, it should return zero.</para>
            </returns>
            <remarks>This message frees any memory internally allocated for the window.</remarks>
        </member>
        <member name="F:Windows.Win32.PInvoke.IDC_ARROW">
            <summary>Standard arrow cursor.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-geticoninfo">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DeleteObject(Windows.Win32.Graphics.Gdi.HGDIOBJ)">
            <summary>The DeleteObject function deletes a logical pen, brush, font, bitmap, region, or palette, freeing all system resources associated with the object. After the object is deleted, the specified handle is no longer valid.</summary>
            <param name="ho">A handle to a logical pen, brush, font, bitmap, region, or palette.</param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the specified handle is not valid or is currently selected into a DC, the return value is zero.</para>
            </returns>
            <remarks>
            <para>Do not delete a drawing object (pen or brush) while it is still selected into a DC. When a pattern brush is deleted, the bitmap associated with the brush is not deleted. The bitmap must be deleted independently.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wingdi/nf-wingdi-deleteobject#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.CloseHandle(Windows.Win32.Foundation.HANDLE)">
            <summary>Closes an open object handle.</summary>
            <param name="hObject">A valid handle to an open object.</param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. If the application is running under a debugger,  the function will throw an exception if it receives either a  handle value that is not valid  or a pseudo-handle value. This can happen if you close a handle twice, or if you  call <b>CloseHandle</b> on a handle returned by the <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-findfirstfilea">FindFirstFile</a> function instead of calling the <a href="https://docs.microsoft.com/windows/desktop/api/fileapi/nf-fileapi-findclose">FindClose</a> function.</para>
            </returns>
            <remarks>
            <para>The <b>CloseHandle</b> function closes handles to the following objects: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/handleapi/nf-handleapi-closehandle#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.FreeLibrary(Windows.Win32.Foundation.HMODULE)">
            <summary>Frees the loaded dynamic-link library (DLL) module and, if necessary, decrements its reference count.</summary>
            <param name="hLibModule">
            <para>A handle to the loaded library module. The <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibrarya">LoadLibrary</a>, <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibraryexa">LoadLibraryEx</a>, <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandlea">GetModuleHandle</a>, or <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandleexa">GetModuleHandleEx</a> function returns this handle.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-freelibrary#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call the <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> function.</para>
            </returns>
            <remarks>
            <para>The system maintains a per-process reference count for each loaded module. A  module that was loaded at process initialization due to load-time dynamic linking has a reference count of one. The reference count for a module is incremented each time the  module is loaded by a call to <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibrarya">LoadLibrary</a>. The reference count is also incremented by a call to <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibraryexa">LoadLibraryEx</a> unless the  module  is being loaded for the first time and is being loaded as   a data or image file. The reference count is decremented each time the <b>FreeLibrary</b> or <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-freelibraryandexitthread">FreeLibraryAndExitThread</a> function is called for the module. When a  module's reference count reaches zero or the process terminates, the system unloads the module from the address space of the  process. Before unloading a library module, the system enables the module to detach from the process by calling the module's <a href="https://docs.microsoft.com/windows/desktop/Dlls/dllmain">DllMain</a> function, if it has one, with the DLL_PROCESS_DETACH value. Doing so gives the library module an opportunity to clean up resources allocated on behalf of the current process. After the entry-point function returns, the library module is removed from the address space of the current process. It is not safe to call <b>FreeLibrary</b> from <a href="https://docs.microsoft.com/windows/desktop/Dlls/dllmain">DllMain</a>. For more information, see the Remarks section in <a href="https://docs.microsoft.com/windows/desktop/Dlls/dllmain">DllMain</a>. Calling <b>FreeLibrary</b> does not affect other processes that are using the same module. Use caution when calling <b>FreeLibrary</b> with a handle returned by <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandlea">GetModuleHandle</a>. The <b>GetModuleHandle</b> function does not increment a module's reference count, so passing this handle to <b>FreeLibrary</b> can cause a module to be unloaded prematurely. A thread that must unload the DLL in which it is executing and then terminate itself should call <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-freelibraryandexitthread">FreeLibraryAndExitThread</a> instead of calling <b>FreeLibrary</b> and <b>ExitThread</b> separately. Otherwise, a race condition can occur. For details, see the Remarks section of <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-freelibraryandexitthread">FreeLibraryAndExitThread</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-freelibrary#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetModuleHandle(System.String)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetModuleHandle(Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetModuleHandle(Windows.Win32.Foundation.PCWSTR)">
            <summary>Retrieves a module handle for the specified module. The module must have been loaded by the calling process. (Unicode)</summary>
            <param name="lpModuleName">
            <para>The name of the loaded module (either a .dll or .exe file). If the file name extension is omitted, the default library extension .dll is appended. The file name string can include a trailing point character (.) to indicate that the module name has no extension. The string does not have to specify a path. When specifying a path, be sure to use backslashes (\\), not forward slashes (/). The name is compared (case independently) to the names of modules currently mapped into the address space of the calling process.</para>
            <para>If this parameter is NULL, <b>GetModuleHandle</b> returns a handle to the file used to create the calling process (.exe file). The <b>GetModuleHandle</b> function does not retrieve handles for modules that were loaded using the <b>LOAD_LIBRARY_AS_DATAFILE</b> flag. For more information, see <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibraryexa">LoadLibraryEx</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulehandlew#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is a handle to the specified module. If the function fails, the return value is NULL. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The returned handle is not global or inheritable. It cannot be duplicated or used by another process. If <i>lpModuleName</i> does not include a path and there is more than one loaded module with the same base name and extension, you cannot predict which module handle will be returned. To work around this problem, you could specify a path, use <a href="https://docs.microsoft.com/windows/desktop/Msi/side-by-side-assemblies">side-by-side assemblies</a>, or use <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandleexa">GetModuleHandleEx</a> to specify a memory location rather than a DLL name. The <b>GetModuleHandle</b> function returns a handle to a mapped module without incrementing its reference count. However, if this handle is passed to the <a href="https://docs.microsoft.com/windows/desktop/api/libloaderapi/nf-libloaderapi-freelibrary">FreeLibrary</a> function, the reference count of the mapped module will be decremented. Therefore, do not pass a handle returned by <b>GetModuleHandle</b> to the <b>FreeLibrary</b> function. Doing so can cause a DLL module to be unmapped prematurely. This function must be used carefully in a multithreaded application. There is no guarantee that the module handle remains valid between the time this function returns the handle and the time it is used. For example, suppose that a thread retrieves a module handle, but before it uses the handle, a second thread frees the module. If the system loads another module, it could reuse the module handle that was recently freed. Therefore, the first thread would have a handle to a different module  than the one intended.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulehandlew#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.CoCreateInstance``1(System.Guid@,Windows.Win32.System.Com.IUnknown*,Windows.Win32.System.Com.CLSCTX,``0*@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.CoCreateInstance(System.Guid*,Windows.Win32.System.Com.IUnknown*,Windows.Win32.System.Com.CLSCTX,System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.CoCreateInstance(System.Guid@,Windows.Win32.System.Com.IUnknown*,Windows.Win32.System.Com.CLSCTX,System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.CoCreateInstance(System.Guid*,Windows.Win32.System.Com.IUnknown*,Windows.Win32.System.Com.CLSCTX,System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.CoCreateInstance(System.Guid*,Windows.Win32.System.Com.IUnknown*,Windows.Win32.System.Com.CLSCTX,System.Guid*,System.Void**)">
            <summary>Creates a single uninitialized object of the class associated with a specified CLSID.</summary>
            <param name="rclsid">The CLSID associated with the data and code that will be used to create the object.</param>
            <param name="pUnkOuter">If <b>NULL</b>, indicates that the object is not being created as part of an aggregate. If non-<b>NULL</b>, pointer to the aggregate object's <a href="https://docs.microsoft.com/windows/desktop/api/unknwn/nn-unknwn-iunknown">IUnknown</a> interface (the controlling <b>IUnknown</b>).</param>
            <param name="dwClsContext">Context in which the code that manages the newly created object will run. The values are taken from the enumeration <a href="https://docs.microsoft.com/windows/desktop/api/wtypesbase/ne-wtypesbase-clsctx">CLSCTX</a>.</param>
            <param name="riid">A reference to the identifier of the interface to be used to communicate with the object.</param>
            <param name="ppv">Address of pointer variable that receives the interface pointer requested in <i>riid</i>. Upon successful return, *<i>ppv</i> contains the requested interface pointer. Upon failure, *<i>ppv</i> contains <b>NULL</b>.</param>
            <returns>
            <para>This function can return the following values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The <b>CoCreateInstance</b> function provides a convenient shortcut by connecting to the class object associated with the specified CLSID, creating a default-initialized instance, and releasing the class object. As such, it encapsulates the following functionality:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/combaseapi/nf-combaseapi-cocreateinstance#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SysFreeString(Windows.Win32.Foundation.BSTR)">
            <summary>Deallocates a string allocated previously by SysAllocString, SysAllocStringByteLen, SysReAllocString, SysAllocStringLen, or SysReAllocStringLen.</summary>
            <param name="bstrString">The previously allocated string. If this parameter is <b>NULL</b>, the function simply returns.</param>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oleauto/nf-oleauto-sysfreestring">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.UiaClientsAreListening">
            <summary>Gets a value that indicates whether any client application is subscribed to Microsoft UI Automation events.</summary>
            <returns>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">BOOL</a></b> <b>TRUE</b> if a client has subscribed to events; otherwise <b>FALSE</b>.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcoreapi/nf-uiautomationcoreapi-uiaclientsarelistening">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.UiaRaiseNotificationEvent(Windows.Win32.UI.Accessibility.IRawElementProviderSimple*,Windows.Win32.UI.Accessibility.NotificationKind,Windows.Win32.UI.Accessibility.NotificationProcessing,System.Runtime.InteropServices.SafeHandle,System.Runtime.InteropServices.SafeHandle)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.UiaRaiseNotificationEvent(Windows.Win32.UI.Accessibility.IRawElementProviderSimple*,Windows.Win32.UI.Accessibility.NotificationKind,Windows.Win32.UI.Accessibility.NotificationProcessing,Windows.Win32.Foundation.BSTR,Windows.Win32.Foundation.BSTR)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.UiaRaiseNotificationEvent(Windows.Win32.UI.Accessibility.IRawElementProviderSimple*,Windows.Win32.UI.Accessibility.NotificationKind,Windows.Win32.UI.Accessibility.NotificationProcessing,Windows.Win32.Foundation.BSTR,Windows.Win32.Foundation.BSTR)">
            <summary>Called by providers to initiate a notification event.</summary>
            <param name="provider">The provider node where the notification event occurred.</param>
            <param name="notificationKind">The type of notification, as a [NotificationKind enumeration](../uiautomationcore/ne-uiautomationcore-notificationkind.md) value.</param>
            <param name="notificationProcessing">The preferred way to process a notification, as a [NotificationProcessing enumeration](../uiautomationcore/ne-uiautomationcore-notificationprocessing.md) value.</param>
            <param name="displayString">A string to display in the notification message.</param>
            <param name="activityId">A unique non-localized string to identify an action or group of actions. Use this to pass additional information to the event handler.</param>
            <returns>If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.</returns>
            <remarks>If your window uses the [`WS_POPUP`](/windows/win32/winmsg/window-styles) style, it must also implement the [Window Control Pattern](/windows/win32/winauto/uiauto-implementingwindow) and handle the [WM_GETOBJECT](/windows/win32/winauto/wm-getobject) message (see [How to Expose a Server-Side UI Automation Provider](/windows/win32/winauto/uiauto-howto-expose-serverside-uiautomation-provider) for more details).</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetKeyState(System.Int32)">
            <summary>Retrieves the status of the specified virtual key. The status specifies whether the key is up, down, or toggled (on, off�alternating each time the key is pressed).</summary>
            <param name="nVirtKey">
            <para>Type: <b>int</b> A virtual key. If the desired virtual key is a letter or digit (A through Z, a through z, or 0 through 9), <i>nVirtKey</i> must be set to the ASCII value of that character. For other keys, it must be a virtual-key code. If a non-English keyboard layout is used, virtual keys with values in the range ASCII A through Z and 0 through 9 are used to specify most of the character keys. For example, for the German keyboard layout, the virtual key of value ASCII O (0x4F) refers to the "o" key, whereas VK_OEM_1 refers to the "o with umlaut" key.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getkeystate#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>SHORT</b> The return value specifies the status of the specified virtual key, as follows: </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The key status returned from this function changes as a thread reads key messages from its message queue. The status does not reflect the interrupt-level state associated with the hardware. Use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getasynckeystate">GetAsyncKeyState</a> function to retrieve that information. An application calls <b>GetKeyState</b> in response to a keyboard-input message. This function retrieves the state of the key when the input message was generated. To retrieve state information for all the virtual keys, use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getkeyboardstate">GetKeyboardState</a> function. An application can use the <a href="https://docs.microsoft.com/windows/desktop/inputdev/virtual-key-codes">virtual key code</a> constants <b>VK_SHIFT</b>, <b>VK_CONTROL</b>, and <b>VK_MENU</b> as values for the <i>nVirtKey</i> parameter. This gives the status of the SHIFT, CTRL, or ALT keys without distinguishing between left and right. An application can also use the following virtual-key code constants as values for <i>nVirtKey</i> to distinguish between the left and right instances of those keys: <b>VK_LSHIFT</b> <b>VK_RSHIFT</b> <b>VK_LCONTROL</b> <b>VK_RCONTROL</b> <b>VK_LMENU</b> <b>VK_RMENU</b> These left- and right-distinguishing constants are available to an application only through the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getkeyboardstate">GetKeyboardState</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setkeyboardstate">SetKeyboardState</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getasynckeystate">GetAsyncKeyState</a>, <b>GetKeyState</b>, and <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-mapvirtualkeya">MapVirtualKey</a> functions.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getkeystate#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetPointerType(System.UInt32,Windows.Win32.UI.WindowsAndMessaging.POINTER_INPUT_TYPE@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetPointerType(System.UInt32,Windows.Win32.UI.WindowsAndMessaging.POINTER_INPUT_TYPE*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetPointerType(System.UInt32,Windows.Win32.UI.WindowsAndMessaging.POINTER_INPUT_TYPE*)">
            <summary>Retrieves the pointer type for a specified pointer.</summary>
            <param name="pointerId">An identifier of the pointer for which to retrieve pointer type.</param>
            <param name="pointerType">An address of a <a href="https://docs.microsoft.com/windows/win32/api/winuser/ne-winuser-tagpointer_input_type">POINTER_INPUT_TYPE</a> type to receive a pointer input type.</param>
            <returns>
            <para>If the function succeeds, the return value is non-zero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>An application can use the <b>GetPointerType</b> function to determine the pointer type if it wishes to react differently to pointers of different types. <div class="alert"><b>Note</b>  This function will never return with the generic <a href="https://docs.microsoft.com/windows/win32/api/winuser/ne-winuser-tagpointer_input_type">PT_POINTER </a> type.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getpointertype#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetPointerInfo(System.UInt32,Windows.Win32.UI.Input.Pointer.POINTER_INFO@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetPointerInfo(System.UInt32,Windows.Win32.UI.Input.Pointer.POINTER_INFO*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetPointerInfo(System.UInt32,Windows.Win32.UI.Input.Pointer.POINTER_INFO*)">
            <summary>Gets the information for the specified pointer associated with the current message.</summary>
            <param name="pointerId">The pointer identifier.</param>
            <param name="pointerInfo">Address of a  <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-pointer_info">POINTER_INFO</a> structure that receives the pointer information.</param>
            <returns>
            <para>If the function succeeds, the return value is non-zero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para><b>GetPointerInfo</b> retrieves information for a single pointer associated with a pointer message. Use <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerframeinfo">GetPointerFrameInfo</a> to retrieve frame information associated with a message  for a set of pointers. The information returned by <b>GetPointerInfo</b> is associated with the most recent pointer message retrieved by the calling thread. When the next message is retrieved by the calling thread, the information associated with the previous message may no longer be available. If the application does not process pointer input messages as fast as they are generated, some messages may be coalesced into a <a href="https://docs.microsoft.com/windows/win32/inputmsg/wm-pointerupdate">WM_POINTERUPDATE</a> message. Use <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerinfohistory">GetPointerInfoHistory</a> to retrieve the message history from the most recent <b>WM_POINTERUPDATE</b> message. If the information associated with the message is no longer available, this function fails with the last error set to <b>ERROR_NO_DATA</b>. If the calling thread does not own the window to which the pointer message has been delivered, this function fails with the last error set to <b>ERROR_ACCESS_DENIED</b>. Note that this may be the window to which the input was originally delivered or it may be a window to which the message was forwarded.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getpointerinfo#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetPointerTouchInfo(System.UInt32,Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetPointerTouchInfo(System.UInt32,Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetPointerTouchInfo(System.UInt32,Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO*)">
            <summary>Gets the touch-based information for the specified pointer (of type PT_TOUCH) associated with the current message.</summary>
            <param name="pointerId">An identifier of the pointer for which to retrieve information.</param>
            <param name="touchInfo">Address of a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-pointer_touch_info">POINTER_TOUCH_INFO</a> structure to receive the touch-specific pointer information.</param>
            <returns>
            <para>If the function succeeds, the return value is non-zero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para><b>GetPointerTouchInfo</b> retrieves information for a single pointer (of type <a href="https://docs.microsoft.com/windows/win32/api/winuser/ne-winuser-tagpointer_input_type">PT_TOUCH</a>) associated with a pointer message. Use <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerframetouchinfo">GetPointerFrameTouchInfo</a> to retrieve frame information associated with a message  for a set of pointers. The information returned by <b>GetPointerTouchInfo</b> is associated with the most recent pointer message retrieved by the calling thread. When the next message is retrieved by the calling thread, the information associated with the previous message may no longer be available. If the application does not process pointer input messages as fast as they are generated, some messages may be coalesced into a <a href="https://docs.microsoft.com/windows/win32/inputmsg/wm-pointerupdate">WM_POINTERUPDATE</a> message. Use <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointertouchinfohistory">GetPointerTouchInfoHistory</a> to retrieve the message history from the most recent <b>WM_POINTERUPDATE</b> message. If the information associated with the message is no longer available, this function fails with the last error set to <b>ERROR_NO_DATA</b>. If the calling thread does not own the window to which the pointer message has been delivered, this function fails with the last error set to <b>ERROR_ACCESS_DENIED</b>. Note that this may be the window to which the input was originally delivered or it may be a window to which the message was forwarded. If the specified pointer is not of type <a href="https://docs.microsoft.com/windows/win32/api/winuser/ne-winuser-tagpointer_input_type">PT_TOUCH</a>, this function fails with the last error set to <b>ERROR_DATATYPE_MISMATCH</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getpointertouchinfo#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetPointerPenInfo(System.UInt32,Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetPointerPenInfo(System.UInt32,Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetPointerPenInfo(System.UInt32,Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO*)">
            <summary>Gets the pen-based information for the specified pointer (of type PT_PEN) associated with the current message.</summary>
            <param name="pointerId">An identifier of the pointer for which to retrieve information.</param>
            <param name="penInfo">Address of a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-pointer_pen_info">POINTER_PEN_INFO</a> structure to receive the pen-specific pointer information.</param>
            <returns>
            <para>If the function succeeds, the return value is non-zero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para><b>GetPointerPenInfo</b> retrieves information for a single pointer (of type <a href="https://docs.microsoft.com/windows/win32/api/winuser/ne-winuser-tagpointer_input_type">PT_PEN</a>) associated with a pointer message. Use <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerframepeninfo">GetPointerFramePenInfo</a> to retrieve frame information associated with a message  for a set of pointers. The information returned by <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerinfo">GetPointerInfo</a> is associated with the most recent pointer message retrieved by the calling thread. When the next message is retrieved by the calling thread, the information associated with the previous message may no longer be available. If the application does not process pointer input messages as fast as they are generated, some messages may be coalesced into a <a href="https://docs.microsoft.com/windows/win32/inputmsg/wm-pointerupdate">WM_POINTERUPDATE</a> message. Use <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerpeninfohistory">GetPointerPenInfoHistory</a> to retrieve the message history from the most recent <b>WM_POINTERUPDATE</b> message. If the information associated with the message is no longer available, this function fails with the last error set to <b>ERROR_NO_DATA</b>. If the calling thread does not own the window to which the pointer message has been delivered, this function fails with the last error set to <b>ERROR_ACCESS_DENIED</b>. Note that this may be the window to which the input was originally delivered or it may be a window to which the message was forwarded. If the specified pointer is not of type <a href="https://docs.microsoft.com/windows/win32/api/winuser/ne-winuser-tagpointer_input_type">PT_PEN</a>, this function fails with the last error set to <b>ERROR_DATATYPE_MISMATCH</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getpointerpeninfo#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Windows.Win32.PInvoke.MapVirtualKey(System.UInt32,Windows.Win32.UI.Input.KeyboardAndMouse.MAP_VIRTUAL_KEY_TYPE)" -->
        <member name="M:Windows.Win32.PInvoke.GetCursorPos(System.Drawing.Point@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetCursorPos(System.Drawing.Point*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetCursorPos(System.Drawing.Point*)">
            <summary>Retrieves the position of the mouse cursor, in screen coordinates.</summary>
            <param name="lpPoint">
            <para>Type: <b>LPPOINT</b> A pointer to a <a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a> structure that receives the screen coordinates of the cursor.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getcursorpos#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> Returns nonzero if successful or zero otherwise. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The cursor position is always specified in screen coordinates and is not affected by the mapping mode of the window that contains the cursor. The calling process must have <b>WINSTA_READATTRIBUTES</b> access to the window station. The input desktop must be the current desktop when you call <b>GetCursorPos</b>. Call <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-openinputdesktop">OpenInputDesktop</a> to determine whether the current desktop is the input desktop. If it is not, call <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setthreaddesktop">SetThreadDesktop</a> with the <b>HDESK</b> returned by <b>OpenInputDesktop</b> to switch to that desktop.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getcursorpos#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SetCursorPos(System.Int32,System.Int32)">
            <summary>Moves the cursor to the specified screen coordinates.</summary>
            <param name="X">
            <para>Type: <b>int</b> The new x-coordinate of the cursor, in screen coordinates.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setcursorpos#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="Y">
            <para>Type: <b>int</b> The new y-coordinate of the cursor, in screen coordinates.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setcursorpos#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> Returns nonzero if successful or zero otherwise. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The cursor is a shared resource. A window should move the cursor only when the cursor is in the window's client area. The calling process must have <b>WINSTA_WRITEATTRIBUTES</b> access to the window station. The input desktop must be the current desktop when you call <b>SetCursorPos</b>. Call <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-openinputdesktop">OpenInputDesktop</a> to determine whether the current desktop is the input desktop. If it is not, call <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setthreaddesktop">SetThreadDesktop</a> with the <b>HDESK</b> returned by <b>OpenInputDesktop</b> to switch to that desktop.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setcursorpos#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.EnableMouseInPointer(Windows.Win32.Foundation.BOOL)">
            <summary>Enables the mouse to act as a pointer input device and send WM_POINTER messages.</summary>
            <param name="fEnable"><b>TRUE</b> to turn on mouse input support in <a href="https://docs.microsoft.com/windows/win32/inputmsg/messages">WM_POINTER</a>.</param>
            <returns>
            <para>If the function succeeds, the return value is non-zero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>This function can be called only once in the context of a process lifetime.  Prior to the first call, Windows Store apps run with mouse-in-pointer enabled, as do any desktop applications that consume mshtml.dll.  All other desktop applications run with mouse-in-pointer disabled. On the first call in the process lifetime, the state is changed as specified and the call succeeds. On subsequent calls, the state will not change.  If the current state is not equal to the specified state, the call fails. Call <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-ismouseinpointerenabled">IsMouseInPointerEnabled</a> to verify the mouse-in-pointer state.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-enablemouseinpointer#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SetFocus(Windows.Win32.Foundation.HWND)">
            <summary>Sets the keyboard focus to the specified window. The window must be attached to the calling thread's message queue.</summary>
            <param name="hWnd">
            <para>Type: **HWND** A handle to the window that will receive the keyboard input. If this parameter is NULL, keystrokes are ignored.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setfocus#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: **HWND** If the function succeeds, the return value is the handle to the window that previously had the keyboard focus. If the *hWnd* parameter is invalid or the window is not attached to the calling thread's message queue, the return value is NULL. To get extended error information, call [GetLastError function](../errhandlingapi/nf-errhandlingapi-getlasterror.md). Extended error ERROR_INVALID_PARAMETER (0x57) means that window is in disabled state.</para>
            </returns>
            <remarks>
            <para>This function sends a [WM_KILLFOCUS](/windows/desktop/inputdev/wm-killfocus) message to the window that loses the keyboard focus and a [WM_SETFOCUS](/windows/desktop/inputdev/wm-setfocus) message to the window that receives the keyboard focus. It also activates either the window that receives the focus or the parent of the window that receives the focus. If a window is active but does not have the focus, any key pressed produces the [WM_SYSCHAR](/windows/desktop/menurc/wm-syschar), [WM_SYSKEYDOWN](/windows/desktop/inputdev/wm-syskeydown), or [WM_SYSKEYUP](/windows/desktop/inputdev/wm-syskeyup) message. If the VK_MENU key is also pressed, bit 30 of the *lParam* parameter of the message is set. Otherwise, the messages produced do not have this bit set. By using the [AttachThreadInput function](nf-winuser-attachthreadinput.md), a thread can attach its input processing to another thread. This allows a thread to call SetFocus to set the keyboard focus to a window attached to another thread's message queue.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setfocus#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DestroyMenu(Windows.Win32.UI.WindowsAndMessaging.HMENU)">
            <summary>Destroys the specified menu and frees any memory that the menu occupies.</summary>
            <param name="hMenu">
            <para>Type: <b>HMENU</b> A handle to the menu to be destroyed.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroymenu#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>Before closing, an application must use the <b>DestroyMenu</b> function to destroy a menu not assigned to a window. A menu that is assigned to a window is automatically destroyed when the application closes. <b>DestroyMenu</b> is recursive, that is, it will destroy the menu and all its submenus.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroymenu#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.CreateWindowEx(Windows.Win32.UI.WindowsAndMessaging.WINDOW_EX_STYLE,System.String,System.String,Windows.Win32.UI.WindowsAndMessaging.WINDOW_STYLE,System.Int32,System.Int32,System.Int32,System.Int32,Windows.Win32.Foundation.HWND,System.Runtime.InteropServices.SafeHandle,System.Runtime.InteropServices.SafeHandle,System.Void*)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.CreateWindowEx(Windows.Win32.UI.WindowsAndMessaging.WINDOW_EX_STYLE,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.UI.WindowsAndMessaging.WINDOW_STYLE,System.Int32,System.Int32,System.Int32,System.Int32,Windows.Win32.Foundation.HWND,Windows.Win32.UI.WindowsAndMessaging.HMENU,Windows.Win32.Foundation.HINSTANCE,System.Void*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.CreateWindowEx(Windows.Win32.UI.WindowsAndMessaging.WINDOW_EX_STYLE,Windows.Win32.Foundation.PCWSTR,Windows.Win32.Foundation.PCWSTR,Windows.Win32.UI.WindowsAndMessaging.WINDOW_STYLE,System.Int32,System.Int32,System.Int32,System.Int32,Windows.Win32.Foundation.HWND,Windows.Win32.UI.WindowsAndMessaging.HMENU,Windows.Win32.Foundation.HINSTANCE,System.Void*)">
            <summary>Creates an overlapped, pop-up, or child window with an extended window style; otherwise, this function is identical to the CreateWindow function. (Unicode)</summary>
            <param name="dwExStyle">
            <para>Type: <b>DWORD</b> The extended window style of the window being created. For a list of possible values, see  <a href="https://docs.microsoft.com/windows/desktop/winmsg/extended-window-styles">Extended Window Styles</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpClassName">
            <para>Type: <b>LPCTSTR</b> A <b>null</b>-terminated string or a class atom created by a previous call to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a> function. The atom must be in the low-order word of <i>lpClassName</i>; the high-order word must be zero. If <i>lpClassName</i> is a string, it specifies the window class name. The class name can be any name registered with <b>RegisterClass</b> or <b>RegisterClassEx</b>, provided that the module that registers the class is also the module that creates the window. The class name can also be any of the predefined <a href="https://docs.microsoft.com/windows/desktop/winmsg/about-window-classes">system class</a> names.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpWindowName">
            <para>Type: <b>LPCTSTR</b> The window name. If the window style specifies a title bar, the window title pointed to by <i>lpWindowName</i> is displayed in the title bar. When using <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowa">CreateWindow</a> to create controls, such as buttons, check boxes, and static controls, use <i>lpWindowName</i> to specify the text of the control. When creating a static control with the <b>SS_ICON</b> style, use <i>lpWindowName</i> to specify the icon name or identifier. To specify an identifier, use the syntax "#<i>num</i>".</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="dwStyle">
            <para>Type: <b>DWORD</b> The style of the window being created. This parameter can be a combination of the <a href="https://docs.microsoft.com/windows/desktop/winmsg/window-styles">window style values</a>, plus the control styles indicated in the Remarks section.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="X">
            <para>Type: <b>int</b> The initial horizontal position of the window. For an overlapped or pop-up window, the <i>x</i> parameter is the initial x-coordinate of the window's upper-left corner, in screen coordinates. For a child window, <i>x</i> is the x-coordinate of the upper-left corner of the window relative to the upper-left corner of the parent window's client area. If <i>x</i> is set to <b>CW_USEDEFAULT</b>, the system selects the default position for the window's upper-left corner and ignores the <i>y</i> parameter. <b>CW_USEDEFAULT</b> is valid only for overlapped windows; if it is specified for a pop-up or child window, the <i>x</i> and <i>y</i> parameters are set to zero.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="Y">
            <para>Type: <b>int</b> The initial vertical position of the window. For an overlapped or pop-up window, the <i>y</i> parameter is the initial y-coordinate of the window's upper-left corner, in screen coordinates. For a child window, <i>y</i> is the initial y-coordinate of the upper-left corner of the child window relative to the upper-left corner of the parent window's client area. For a list box <i>y</i> is the initial y-coordinate of the upper-left corner of the list box's client area relative to the upper-left corner of the parent window's client area.</para>
            <para>If an overlapped window is created with the <b>WS_VISIBLE</b> style bit set and the <i>x</i> parameter is set to <b>CW_USEDEFAULT</b>, then the <i>y</i> parameter determines how the window is shown. If the <i>y</i> parameter is <b>CW_USEDEFAULT</b>, then the window manager calls <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-showwindow">ShowWindow</a> with the <b>SW_SHOW</b> flag after the window has been created. If the <i>y</i> parameter is some other value, then the window manager calls <b>ShowWindow</b> with that value as the <i>nCmdShow</i> parameter.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="nWidth">
            <para>Type: <b>int</b> The width, in device units, of the window. For overlapped windows, <i>nWidth</i> is the window's width, in screen coordinates, or <b>CW_USEDEFAULT</b>. If <i>nWidth</i> is <b>CW_USEDEFAULT</b>, the system selects a default width and height for the window; the default width extends from the initial x-coordinates to the right edge of the screen; the default height extends from the initial y-coordinate to the top of the icon area. <b>CW_USEDEFAULT</b> is valid only for overlapped windows; if <b>CW_USEDEFAULT</b> is specified for a pop-up or child window, the <i>nWidth</i> and <i>nHeight</i> parameter are set to zero.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="nHeight">
            <para>Type: <b>int</b> The height, in device units, of the window. For overlapped windows, <i>nHeight</i> is the window's height, in screen coordinates. If the <i>nWidth</i> parameter is set to <b>CW_USEDEFAULT</b>, the system ignores <i>nHeight</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hWndParent">
            <para>Type: <b>HWND</b> A handle to the parent or owner window of the window being created. To create a child window or an owned window, supply a valid window handle. This parameter is optional for pop-up windows. To create a <a href="https://docs.microsoft.com/windows/desktop/winmsg/window-features">message-only window</a>, supply <b>HWND_MESSAGE</b> or a handle to an existing message-only window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hMenu">
            <para>Type: <b>HMENU</b> A handle to a menu, or specifies a child-window identifier, depending on the window style. For an overlapped or pop-up window, <i>hMenu</i> identifies the menu to be used with the window; it can be <b>NULL</b> if the class menu is to be used. For a child window, <i>hMenu</i> specifies the child-window identifier, an integer value used by a dialog box control to notify its parent about events. The application determines the child-window identifier; it must be unique for all child windows with the same parent window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hInstance">
            <para>Type: <b>HINSTANCE</b> A handle to the instance of the module to be associated with the window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpParam">
            <para>Type: <b>LPVOID</b> Pointer to a value to be passed to the window through the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-createstructa">CREATESTRUCT</a> structure (<b>lpCreateParams</b> member) pointed to by the <i>lParam</i> param of the <b>WM_CREATE</b> message.  This message is sent to the created window by this function before it returns. If an application calls <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowa">CreateWindow</a> to create a MDI client window, <i>lpParam</i> should point to a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-clientcreatestruct">CLIENTCREATESTRUCT</a> structure. If an MDI client window calls <b>CreateWindow</b> to create an MDI child window, <i>lpParam</i> should point to a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-mdicreatestructa">MDICREATESTRUCT</a> structure. <i>lpParam</i> may be <b>NULL</b> if no additional data is needed.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>HWND</b> If the function succeeds, the return value is a handle to the new window. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. This function typically fails for one of the following reasons: </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The <b>CreateWindowEx</b> function sends <a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-nccreate">WM_NCCREATE</a>, <a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-nccalcsize">WM_NCCALCSIZE</a>, and <a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-create">WM_CREATE</a> messages to the window being created. If the created window is a child window, its default position is at the bottom of the Z-order. If the created window is a top-level window, its default position is at the top of the Z-order (but beneath all topmost windows unless the created window is itself topmost). For information on controlling whether the Taskbar displays a button for the created window, see <a href="https://docs.microsoft.com/windows/desktop/shell/taskbar">Managing Taskbar Buttons</a>. For information on removing a window, see the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-destroywindow">DestroyWindow</a> function. The following predefined control classes can be specified in the <i>lpClassName</i> parameter. Note the corresponding control styles you can use in the <i>dwStyle</i> parameter. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-createwindowexw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DefWindowProc(Windows.Win32.Foundation.HWND,System.UInt32,Windows.Win32.Foundation.WPARAM,Windows.Win32.Foundation.LPARAM)">
            <summary>Calls the default window procedure to provide default processing for any window messages that an application does not process. (Unicode)</summary>
            <param name="hWnd">
            <para>Type: <b>HWND</b> A handle to the window procedure that received the message.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-defwindowprocw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="Msg">
            <para>Type: <b>UINT</b> The message.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-defwindowprocw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="wParam">
            <para>Type: <b>WPARAM</b> Additional message information. The content of this parameter depends on the value of the <i>Msg</i> parameter.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-defwindowprocw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lParam">
            <para>Type: <b>LPARAM</b> Additional message information. The content of this parameter depends on the value of the <i>Msg</i> parameter.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-defwindowprocw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>LRESULT</b> The return value is the result of the message processing and depends on the message.</para>
            </returns>
            <remarks>
            <para>> [!NOTE] > The winuser.h header defines DefWindowProc as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-defwindowprocw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DestroyWindow(Windows.Win32.Foundation.HWND)">
            <summary>Destroys the specified window.</summary>
            <param name="hWnd">
            <para>Type: <b>HWND</b> A handle to the window to be destroyed.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroywindow#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>A thread cannot use <b>DestroyWindow</b> to destroy a window created by a different thread. If the window being destroyed is a child window that does not have the <b>WS_EX_NOPARENTNOTIFY</b> style, a <a href="https://docs.microsoft.com/windows/win32/inputmsg/wm-parentnotify">WM_PARENTNOTIFY</a> message is sent to the parent.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroywindow#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.UnhookWindowsHookEx(Windows.Win32.UI.WindowsAndMessaging.HHOOK)">
            <summary>Removes a hook procedure installed in a hook chain by the SetWindowsHookEx function.</summary>
            <param name="hhk">
            <para>Type: <b>HHOOK</b> A handle to the hook to be removed. This parameter is a hook handle obtained by a previous call to <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setwindowshookexa">SetWindowsHookEx</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-unhookwindowshookex#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>The hook procedure can be in the state of being called by another thread even after <b>UnhookWindowsHookEx</b> returns. If the hook procedure is not being called concurrently, the hook procedure is removed immediately before <b>UnhookWindowsHookEx</b> returns.</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SetWindowsHookEx(Windows.Win32.UI.WindowsAndMessaging.WINDOWS_HOOK_ID,,System.Runtime.InteropServices.SafeHandle,System.UInt32)">
            <inheritdoc cref="!:SetWindowsHookEx(winmdroot.UI.WindowsAndMessaging.WINDOWS_HOOK_ID, delegate *unmanaged[Stdcall]&lt;int,global::Windows.Win32.Foundation.WPARAM,global::Windows.Win32.Foundation.LPARAM,global::Windows.Win32.Foundation.LRESULT&gt;, winmdroot.Foundation.HINSTANCE, uint)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.SetWindowsHookEx(Windows.Win32.UI.WindowsAndMessaging.WINDOWS_HOOK_ID,,Windows.Win32.Foundation.HINSTANCE,System.UInt32)">
            <summary>Installs an application-defined hook procedure into a hook chain. (Unicode)</summary>
            <param name="idHook">Type: <b>int</b></param>
            <param name="lpfn">
            <para>Type: <b>HOOKPROC</b> A pointer to the hook procedure. If the <i>dwThreadId</i> parameter is zero or specifies the identifier of a thread created by a different process, the <i>lpfn</i> parameter must point to a hook procedure in a DLL. Otherwise, <i>lpfn</i> can point to a hook procedure in the code associated with the current process.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowshookexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hmod">
            <para>Type: <b>HINSTANCE</b> A handle to the DLL containing the hook procedure pointed to by the <i>lpfn</i> parameter. The <i>hMod</i> parameter must be set to <b>NULL</b> if the <i>dwThreadId</i> parameter specifies a thread created by the current process and if the hook procedure is within the code associated with the current process.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowshookexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="dwThreadId">
            <para>Type: <b>DWORD</b> The identifier of the thread with which the hook procedure is to be associated. For desktop apps, if this parameter is zero, the hook procedure is associated with all existing threads running in the same desktop as the calling thread. For Windows Store apps, see the Remarks section.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowshookexw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>HHOOK</b> If the function succeeds, the return value is the handle to the hook procedure. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para><b>SetWindowsHookEx</b> can be used to inject a DLL into another process. A 32-bit DLL cannot be injected into a 64-bit process, and a 64-bit DLL cannot be injected into a 32-bit process. If an application requires the use of hooks in other processes, it is required that a 32-bit application call <b>SetWindowsHookEx</b> to inject a 32-bit DLL into 32-bit processes, and a 64-bit application call <b>SetWindowsHookEx</b> to inject a 64-bit DLL into 64-bit processes. The 32-bit and 64-bit DLLs must have different names.</para>
            <para>Because hooks run in the context of an application, they must match the "bitness" of the application. If a 32-bit application installs a global hook on 64-bit Windows, the 32-bit hook is injected into each 32-bit process (the usual security boundaries apply). In a 64-bit process, the threads are still marked as "hooked." However, because a 32-bit application must run the hook code, the system executes the hook in the hooking app's context; specifically, on the thread that called <b>SetWindowsHookEx</b>. This means that the hooking application must continue to pump messages or it might block the normal functioning of the 64-bit processes.</para>
            <para>If a 64-bit application installs a global hook on 64-bit Windows, the 64-bit hook is injected into each 64-bit process, while all 32-bit processes use a callback to the hooking application.</para>
            <para>To hook all applications on the desktop of a 64-bit Windows installation, install a 32-bit global hook and a 64-bit global hook, each from appropriate processes, and be sure to keep pumping messages in the hooking application to avoid blocking normal functioning. If you already have a 32-bit global hooking application and it doesn't need to run in each application's context, you may not need to create a 64-bit version.</para>
            <para>An error may occur if the <i>hMod</i> parameter is <b>NULL</b> and the <i>dwThreadId</i> parameter is zero or specifies the identifier of a thread created by another process. Calling the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-callnexthookex">CallNextHookEx</a> function to chain to the next hook procedure is optional, but it is highly recommended; otherwise, other applications that have installed hooks will not receive hook notifications and may behave incorrectly as a result. You should call <b>CallNextHookEx</b> unless you absolutely need to prevent the notification from being seen by other applications. Before terminating, an application must call the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-unhookwindowshookex">UnhookWindowsHookEx</a> function to free system resources associated with the hook. The scope of a hook depends on the hook type. Some hooks can be set only with global scope; others can also be set for only a specific thread, as shown in the following table. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowshookexw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.CallNextHookEx(System.Runtime.InteropServices.SafeHandle,System.Int32,Windows.Win32.Foundation.WPARAM,Windows.Win32.Foundation.LPARAM)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.CallNextHookEx(Windows.Win32.UI.WindowsAndMessaging.HHOOK,System.Int32,Windows.Win32.Foundation.WPARAM,Windows.Win32.Foundation.LPARAM)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.CallNextHookEx(Windows.Win32.UI.WindowsAndMessaging.HHOOK,System.Int32,Windows.Win32.Foundation.WPARAM,Windows.Win32.Foundation.LPARAM)">
            <summary>Passes the hook information to the next hook procedure in the current hook chain. A hook procedure can call this function either before or after processing the hook information.</summary>
            <param name="hhk">
            <para>Type: <b>HHOOK</b> This parameter is ignored.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-callnexthookex#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="nCode">
            <para>Type: <b>int</b> The hook code passed to the current hook procedure. The next hook procedure uses this code to determine how to process the hook information.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-callnexthookex#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="wParam">
            <para>Type: <b>WPARAM</b> The <i>wParam</i> value passed to the current hook procedure. The meaning of this parameter depends on the type of hook associated with the current hook chain.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-callnexthookex#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lParam">
            <para>Type: <b>LPARAM</b> The <i>lParam</i> value passed to the current hook procedure. The meaning of this parameter depends on the type of hook associated with the current hook chain.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-callnexthookex#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>LRESULT</b> This value is returned by the next hook procedure in the chain. The current hook procedure must also return this value. The meaning of the return value depends on the hook type. For more information, see the descriptions of the individual hook procedures.</para>
            </returns>
            <remarks>
            <para>Hook procedures are installed in chains for particular hook types. <b>CallNextHookEx</b> calls the next hook in the chain. Calling <b>CallNextHookEx</b> is optional, but it is highly recommended; otherwise, other applications that have installed hooks will not receive hook notifications and may behave incorrectly as a result. You should call <b>CallNextHookEx</b> unless you absolutely need to prevent the notification from being seen by other applications.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-callnexthookex#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetSystemMetricsForDpi(Windows.Win32.UI.WindowsAndMessaging.SYSTEM_METRICS_INDEX,System.UInt32)">
            <summary>Retrieves the specified system metric or system configuration setting taking into account a provided DPI.</summary>
            <param name="nIndex">The system metric or configuration setting to be retrieved. See <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getsystemmetrics">GetSystemMetrics</a> for the possible values.</param>
            <param name="dpi">The DPI to use for scaling the metric.</param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>This function returns the same result as <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getsystemmetrics">GetSystemMetrics</a> but scales it according to an arbitrary DPI you provide if appropriate.</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.RedrawWindow(Windows.Win32.Foundation.HWND,System.Nullable{Windows.Win32.Foundation.RECT},System.Runtime.InteropServices.SafeHandle,Windows.Win32.Graphics.Gdi.REDRAW_WINDOW_FLAGS)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.RedrawWindow(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.RECT*,Windows.Win32.Graphics.Gdi.HRGN,Windows.Win32.Graphics.Gdi.REDRAW_WINDOW_FLAGS)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.RedrawWindow(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.RECT*,Windows.Win32.Graphics.Gdi.HRGN,Windows.Win32.Graphics.Gdi.REDRAW_WINDOW_FLAGS)">
            <summary>The RedrawWindow function updates the specified rectangle or region in a window's client area.</summary>
            <param name="hWnd">A handle to the window to be redrawn. If this parameter is <b>NULL</b>, the desktop window is updated.</param>
            <param name="lprcUpdate">A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure containing the coordinates, in device units, of the update rectangle. This parameter is ignored if the <i>hrgnUpdate</i> parameter identifies a region.</param>
            <param name="hrgnUpdate">A handle to the update region. If both the <i>hrgnUpdate</i> and <i>lprcUpdate</i> parameters are <b>NULL</b>, the entire client area is added to the update region.</param>
            <param name="flags">
            <para>One or more redraw flags. This parameter can be used to invalidate or validate a window, control repainting, and control which windows are affected by <b>RedrawWindow</b>. The following flags are used to invalidate the window. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-redrawwindow#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero.</para>
            </returns>
            <remarks>When <b>RedrawWindow</b> is used to invalidate part of the desktop window, the desktop window does not receive a <a href="https://docs.microsoft.com/windows/desktop/gdi/wm-paint">WM_PAINT</a> message. To repaint the desktop, an application uses the RDW_ERASE flag to generate a <a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-erasebkgnd">WM_ERASEBKGND</a> message.</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.MonitorFromWindow(Windows.Win32.Foundation.HWND,Windows.Win32.Graphics.Gdi.MONITOR_FROM_FLAGS)">
            <summary>The MonitorFromWindow function retrieves a handle to the display monitor that has the largest area of intersection with the bounding rectangle of a specified window.</summary>
            <param name="hwnd">A handle to the window of interest.</param>
            <param name="dwFlags">Determines the function's return value if the window does not intersect any display monitor.</param>
            <returns>
            <para>If the window intersects one or more display monitor rectangles, the return value is an <b>HMONITOR</b> handle to the display monitor that has the largest area of intersection with the window. If the window does not intersect a display monitor, the return value depends on the value of <i>dwFlags</i>.</para>
            </returns>
            <remarks>If the window is currently minimized, <b>MonitorFromWindow</b> uses the rectangle of the window before it was minimized.</remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.EnumDisplayMonitors(Windows.Win32.Graphics.Gdi.HDC,System.Nullable{Windows.Win32.Foundation.RECT},,Windows.Win32.Foundation.LPARAM)">
            <inheritdoc cref="!:EnumDisplayMonitors(winmdroot.Graphics.Gdi.HDC, winmdroot.Foundation.RECT*, delegate *unmanaged[Stdcall]&lt;global::Windows.Win32.Graphics.Gdi.HMONITOR,global::Windows.Win32.Graphics.Gdi.HDC,global::Windows.Win32.Foundation.RECT*,global::Windows.Win32.Foundation.LPARAM,global::Windows.Win32.Foundation.BOOL&gt;, winmdroot.Foundation.LPARAM)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.EnumDisplayMonitors(Windows.Win32.Graphics.Gdi.HDC,Windows.Win32.Foundation.RECT*,,Windows.Win32.Foundation.LPARAM)">
            <summary>The EnumDisplayMonitors function enumerates display monitors (including invisible pseudo-monitors associated with the mirroring drivers) that intersect a region formed by the intersection of a specified clipping rectangle and the visible region of a device context. EnumDisplayMonitors calls an application-defined MonitorEnumProc callback function once for each monitor that is enumerated. Note that GetSystemMetrics (SM_CMONITORS) counts only the display monitors.</summary>
            <param name="hdc">
            <para>A handle to a display device context that defines the visible region of interest. If this parameter is <b>NULL</b>, the <i>hdcMonitor</i> parameter passed to the callback function will be <b>NULL</b>, and the visible region of interest is the virtual screen that encompasses all the displays on the desktop.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-enumdisplaymonitors#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lprcClip">
            <para>A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure that specifies a clipping rectangle. The region of interest is the intersection of the clipping rectangle with the visible region specified by <i>hdc</i>. If <i>hdc</i> is non-<b>NULL</b>, the coordinates of the clipping rectangle are relative to the origin of the <i>hdc</i>. If <i>hdc</i> is <b>NULL</b>, the coordinates are virtual-screen coordinates. This parameter can be <b>NULL</b> if you don't want to clip the region specified by <i>hdc</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-enumdisplaymonitors#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpfnEnum">A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nc-winuser-monitorenumproc">MonitorEnumProc</a> application-defined callback function.</param>
            <param name="dwData">Application-defined data that <b>EnumDisplayMonitors</b> passes directly to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nc-winuser-monitorenumproc">MonitorEnumProc</a> function.</param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero.</para>
            </returns>
            <remarks>
            <para>There are two reasons to call the <b>EnumDisplayMonitors</b> function: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-enumdisplaymonitors#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetMonitorInfo(Windows.Win32.Graphics.Gdi.HMONITOR,Windows.Win32.Graphics.Gdi.MONITORINFO@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetMonitorInfo(Windows.Win32.Graphics.Gdi.HMONITOR,Windows.Win32.Graphics.Gdi.MONITORINFO*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetMonitorInfo(Windows.Win32.Graphics.Gdi.HMONITOR,Windows.Win32.Graphics.Gdi.MONITORINFO*)">
            <summary>The GetMonitorInfo function retrieves information about a display monitor. (Unicode)</summary>
            <param name="hMonitor">A handle to the display monitor of interest.</param>
            <param name="lpmi">
            <para>A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-monitorinfo">MONITORINFO</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-monitorinfoexa">MONITORINFOEX</a> structure that receives information about the specified display monitor. You must set the <b>cbSize</b> member of the structure to sizeof(MONITORINFO) or sizeof(MONITORINFOEX) before calling the <b>GetMonitorInfo</b> function. Doing so lets the function determine the type of structure you are passing to it. The <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-monitorinfoexa">MONITORINFOEX</a> structure is a superset of the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-monitorinfo">MONITORINFO</a> structure. It has one additional member: a string that contains a name for the display monitor. Most applications have no use for a display monitor name, and so can save some bytes by using a <b>MONITORINFO</b> structure.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getmonitorinfow#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>If the function succeeds, the return value is nonzero. If the function fails, the return value is zero.</para>
            </returns>
            <remarks>
            <para>> [!NOTE] > The winuser.h header defines GetMonitorInfo as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getmonitorinfow#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SystemParametersInfo(Windows.Win32.UI.WindowsAndMessaging.SYSTEM_PARAMETERS_INFO_ACTION,System.UInt32,System.Void*,Windows.Win32.UI.WindowsAndMessaging.SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS)">
            <summary>Retrieves or sets the value of one of the system-wide parameters. (Unicode)</summary>
            <param name="uiAction">
            <para>Type: <b>UINT</b> The system-wide parameter to be retrieved or set. The possible values are organized in the following tables of related parameters: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-systemparametersinfow#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="uiParam">
            <para>Type: <b>UINT</b> A parameter whose usage and format depends on the system parameter being queried or set. For more information about system-wide parameters, see the <i>uiAction</i> parameter. If not otherwise indicated, you must specify zero for this parameter.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-systemparametersinfow#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pvParam">
            <para>Type: <b>PVOID</b> A parameter whose usage and format depends on the system parameter being queried or set. For more information about system-wide parameters, see the <i>uiAction</i> parameter. If not otherwise indicated, you must specify <b>NULL</b> for this parameter. For information on the <b>PVOID</b> datatype, see <a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">Windows Data Types</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-systemparametersinfow#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="fWinIni">
            <para>Type: <b>UINT</b> If a system parameter is being set, specifies whether the user profile is to be updated, and if so, whether the <a href="https://docs.microsoft.com/windows/desktop/winmsg/wm-settingchange">WM_SETTINGCHANGE</a> message is to be broadcast to all top-level windows to notify them of the change.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-systemparametersinfow#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>This function is intended for use with applications that allow the user to customize the environment. A keyboard layout name should be derived from the hexadecimal value of the language identifier corresponding to the layout. For example, U.S. English has a language identifier of 0x0409, so the primary U.S. English layout is named "00000409". Variants of U.S. English layout, such as the Dvorak layout, are named "00010409", "00020409" and so on. For a list of the primary language identifiers and sublanguage identifiers that make up a language identifier, see the <b>MAKELANGID</b> macro. There is a difference between the High Contrast color scheme and the High Contrast Mode. The High Contrast color scheme changes the system colors to colors that have obvious contrast; you switch to this color scheme by using the Display Options in the control panel. The High Contrast Mode, which uses <b>SPI_GETHIGHCONTRAST</b> and <b>SPI_SETHIGHCONTRAST</b>, advises applications to modify their appearance for visually-impaired users. It involves such things as audible warning to users and customized color scheme (using the Accessibility Options in the control panel). For more information, see <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-highcontrasta">HIGHCONTRAST</a>. For more information on general accessibility features, see <a href="https://docs.microsoft.com/windows/desktop/accessibility">Accessibility</a>. During the time that the primary button is held down to activate the Mouse ClickLock feature, the user can move the mouse. After the primary button is locked down, releasing the primary button does not result in a <b>WM_LBUTTONUP</b> message. Thus, it will appear to an application that the primary button is still down. Any subsequent button message releases the primary button, sending a <b>WM_LBUTTONUP</b> message to the application, thus the button can be unlocked programmatically or through the user clicking any button. This API is not DPI aware, and should not be used if the calling thread is per-monitor DPI aware. For the DPI-aware version of this API, see <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-systemparametersinfofordpi">SystemParametersInfoForDPI</a>. For more information on DPI awareness, see <a href="https://docs.microsoft.com/windows/desktop/hidpi/high-dpi-desktop-application-development-on-windows">the Windows High DPI documentation.</a></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-systemparametersinfow#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DestroyIcon(Windows.Win32.UI.WindowsAndMessaging.HICON)">
            <summary>Destroys an icon and frees any memory the icon occupied.</summary>
            <param name="hIcon">
            <para>Type: <b>HICON</b> A handle to the icon to be destroyed. The icon must not be in use.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroyicon#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>It is only necessary to call <b>DestroyIcon</b> for icons and cursors created with the following functions: <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createiconfromresourceex">CreateIconFromResourceEx</a> (if called without the <b>LR_SHARED</b> flag), <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createiconindirect">CreateIconIndirect</a>, and <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-copyicon">CopyIcon</a>. Do not use this function to destroy a shared icon. A shared icon is valid as long as the module from which it was loaded remains in memory. The following functions obtain a shared icon. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroyicon#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.DestroyCursor(Windows.Win32.UI.WindowsAndMessaging.HCURSOR)">
            <summary>Destroys a cursor and frees any memory the cursor occupied. Do not use this function to destroy a shared cursor.</summary>
            <param name="hCursor">
            <para>Type: <b>HCURSOR</b> A handle to the cursor to be destroyed. The cursor must not be in use.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroycursor#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The <b>DestroyCursor</b> function destroys a nonshared cursor. Do not use this function to destroy a shared cursor. A shared cursor is valid as long as the module from which it was loaded remains in memory. The following functions obtain a shared cursor: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-destroycursor#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.RegisterClassEx(Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.RegisterClassEx(Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.RegisterClassEx(Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW*)">
            <summary>Registers a window class for subsequent use in calls to the CreateWindow or CreateWindowEx function. (RegisterClassExW)</summary>
            <returns>
            <para>Type: <b>ATOM</b> If the function succeeds, the return value is a class atom that uniquely identifies the class being registered. This atom can only be used by the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowa">CreateWindow</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowexa">CreateWindowEx</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getclassinfoa">GetClassInfo</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getclassinfoexa">GetClassInfoEx</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-findwindowa">FindWindow</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-findwindowexa">FindWindowEx</a>, and <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-unregisterclassa">UnregisterClass</a> functions and the <b>IActiveIMMap::FilterClientWindows</b> method. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>If you register the window class by using <b>RegisterClassExA</b>, the application tells the system that the windows of the created class expect messages with text or character parameters to use the ANSI character set; if you register it by using <b>RegisterClassExW</b>, the application requests that the system pass text parameters of messages as Unicode. The <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-iswindowunicode">IsWindowUnicode</a> function enables applications to query the nature of each window. For more information on ANSI and Unicode functions, see <a href="https://docs.microsoft.com/windows/desktop/Intl/conventions-for-function-prototypes">Conventions for Function Prototypes</a>. All window classes that an application registers are unregistered when it terminates. No window classes registered by a DLL are unregistered when the DLL is unloaded. A DLL must explicitly unregister its classes when it is unloaded.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-registerclassexw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.MonitorFromRect(Windows.Win32.Foundation.RECT@,Windows.Win32.Graphics.Gdi.MONITOR_FROM_FLAGS)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.MonitorFromRect(Windows.Win32.Foundation.RECT*,Windows.Win32.Graphics.Gdi.MONITOR_FROM_FLAGS)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.MonitorFromRect(Windows.Win32.Foundation.RECT*,Windows.Win32.Graphics.Gdi.MONITOR_FROM_FLAGS)">
            <summary>The MonitorFromRect function retrieves a handle to the display monitor that has the largest area of intersection with a specified rectangle.</summary>
            <param name="lprc">A pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure that specifies the rectangle of interest in virtual-screen coordinates.</param>
            <param name="dwFlags">Determines the function's return value if the rectangle does not intersect any display monitor.</param>
            <returns>
            <para>If the rectangle intersects one or more display monitor rectangles, the return value is an <b>HMONITOR</b> handle to the display monitor that has the largest area of intersection with the rectangle. If the rectangle does not intersect a display monitor, the return value depends on the value of <i>dwFlags</i>.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-monitorfromrect">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetWindowLong(Windows.Win32.Foundation.HWND,Windows.Win32.UI.WindowsAndMessaging.WINDOW_LONG_PTR_INDEX)">
            <summary>Retrieves information about the specified window. (GetWindowLongW)</summary>
            <param name="hWnd">
            <para>Type: <b>HWND</b> A handle to the window and, indirectly, the class to which the window belongs.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getwindowlongw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="nIndex">Type: <b>int</b></param>
            <returns>
            <para>Type: <b>LONG</b> If the function succeeds, the return value is the requested value. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. If <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setwindowlonga">SetWindowLong</a> has not been called previously, <b>GetWindowLong</b> returns zero for values in the extra window or class memory.</para>
            </returns>
            <remarks>
            <para>Reserve extra window memory by specifying a nonzero value in the <b>cbWndExtra</b> member of the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-wndclassexa">WNDCLASSEX</a> structure used with the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a> function.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getwindowlongw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SetWindowLong(Windows.Win32.Foundation.HWND,Windows.Win32.UI.WindowsAndMessaging.WINDOW_LONG_PTR_INDEX,System.Int32)">
            <summary>Changes an attribute of the specified window. The function also sets the 32-bit (long) value at the specified offset into the extra window memory. (Unicode)</summary>
            <param name="hWnd">
            <para>Type: <b>HWND</b> A handle to the window and, indirectly, the class to which the window belongs.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowlongw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="nIndex">Type: <b>int</b></param>
            <param name="dwNewLong">
            <para>Type: <b>LONG</b> The replacement value.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowlongw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>LONG</b> If the function succeeds, the return value is the previous value of the specified 32-bit integer. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>. If the previous value of the specified 32-bit integer is zero, and the function succeeds, the return value is zero, but the function does not clear the last error information. This makes it difficult to determine success or failure. To deal with this, you should clear the last error information by calling <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-setlasterror">SetLastError</a> with 0 before calling <b>SetWindowLong</b>. Then, function failure will be indicated by a return value of zero and a <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a> result that is nonzero.</para>
            </returns>
            <remarks>
            <para>Certain window data is cached, so changes you make using <b>SetWindowLong</b> will not take effect until you call the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setwindowpos">SetWindowPos</a> function. Specifically, if you change any of the frame styles, you must call <b>SetWindowPos</b> with the <b>SWP_FRAMECHANGED</b> flag for the cache to be updated properly. If you use <b>SetWindowLong</b> with the <b>GWL_WNDPROC</b> index to replace the window procedure, the window procedure must conform to the guidelines specified in the description of the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/legacy/ms633573(v=vs.85)">WindowProc</a> callback function. If you use <b>SetWindowLong</b> with the <b>DWL_MSGRESULT</b> index to set the return value for a message processed by a dialog procedure, you should return <b>TRUE</b> directly afterward. Otherwise, if you call any function that results in your dialog procedure receiving a window message, the nested window message could overwrite the return value you set using <b>DWL_MSGRESULT</b>. Calling <b>SetWindowLong</b> with the <b>GWL_WNDPROC</b> index creates a subclass of the window class used to create the window. An application can subclass a system class, but should not subclass a window class created by another process. The <b>SetWindowLong</b> function creates the window subclass by changing the window procedure associated with a particular window class, causing the system to call the new window procedure instead of the previous one. An application must pass any messages not processed by the new window procedure to the previous window procedure by calling <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-callwindowproca">CallWindowProc</a>. This allows the application to create a chain of window procedures. Reserve extra window memory by specifying a nonzero value in the <b>cbWndExtra</b> member of the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-wndclassexa">WNDCLASSEX</a> structure used with the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a> function. You must not call <b>SetWindowLong</b> with the <b>GWL_HWNDPARENT</b> index to change the parent of a child window. Instead, use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setparent">SetParent</a> function. If the window has a class style of <b>CS_CLASSDC</b> or <b>CS_OWNDC</b>, do not set the extended window styles <b>WS_EX_COMPOSITED</b> or <b>WS_EX_LAYERED</b>. Calling <b>SetWindowLong</b> to set the style on a progressbar will reset its position.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowlongw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.SetWindowPos(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.HWND,System.Int32,System.Int32,System.Int32,System.Int32,Windows.Win32.UI.WindowsAndMessaging.SET_WINDOW_POS_FLAGS)">
            <summary>Changes the size, position, and Z order of a child, pop-up, or top-level window. These windows are ordered according to their appearance on the screen. The topmost window receives the highest rank and is the first window in the Z order.</summary>
            <param name="hWnd">
            <para>Type: <b>HWND</b> A handle to the window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowpos#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="hWndInsertAfter">Type: <b>HWND</b></param>
            <param name="X">
            <para>Type: <b>int</b> The new position of the left side of the window, in client coordinates.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowpos#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="Y">
            <para>Type: <b>int</b> The new position of the top of the window, in client coordinates.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowpos#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="cx">
            <para>Type: <b>int</b> The new width of the window, in pixels.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowpos#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="cy">
            <para>Type: <b>int</b> The new height of the window, in pixels.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowpos#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="uFlags">Type: <b>UINT</b></param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>As part of the Vista re-architecture, all services were moved off the interactive desktop into Session 0. hwnd and window manager operations are only effective inside a session and cross-session attempts to manipulate the hwnd will fail. For more information, see <a href="https://docs.microsoft.com/previous-versions/aa480152(v=msdn.10)">The Windows Vista Developer Story: Application Compatibility Cookbook</a>. If you have changed certain window data using <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setwindowlonga">SetWindowLong</a>, you must call <b>SetWindowPos</b> for the changes to take effect. Use the following combination for <i>uFlags</i>: <c>SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED</c>. A window can be made a topmost window either by setting the <i>hWndInsertAfter</i> parameter to <b>HWND_TOPMOST</b> and ensuring that the <b>SWP_NOZORDER</b> flag is not set, or by setting a window's position in the Z order so that it is above any existing topmost windows. When a non-topmost window is made topmost, its owned windows are also made topmost. Its owners, however, are not changed. If neither the <b>SWP_NOACTIVATE</b> nor <b>SWP_NOZORDER</b> flag is specified (that is, when the application requests that a window be simultaneously activated and its position in the Z order changed), the value specified in <i>hWndInsertAfter</i> is used only in the following circumstances. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowpos#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.LoadCursor(System.Runtime.InteropServices.SafeHandle,System.String)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.LoadCursor(Windows.Win32.Foundation.HINSTANCE,Windows.Win32.Foundation.PCWSTR)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.LoadCursor(Windows.Win32.Foundation.HINSTANCE,Windows.Win32.Foundation.PCWSTR)">
            <summary>Loads the specified cursor resource from the executable (.EXE) file associated with an application instance. (Unicode)</summary>
            <param name="hInstance">
            <para>Type: <b>HINSTANCE</b> A handle to an instance of the module whose executable file contains the cursor to be loaded.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-loadcursorw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpCursorName">
            <para>Type: <b>LPCTSTR</b> The name of the cursor resource to be loaded. Alternatively, this parameter can consist of the resource identifier in the low-order word and zero in the high-order word. The <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-makeintresourcea">MAKEINTRESOURCE</a> macro can also be used to create this value. To use one of the predefined cursors, the application must set the <i>hInstance</i> parameter to <b>NULL</b> and the <i>lpCursorName</i> parameter to one the following values. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-loadcursorw#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>HCURSOR</b> If the function succeeds, the return value is the handle to the newly loaded cursor. If the function fails, the return value is <b>NULL</b>. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>The <b>LoadCursor</b> function loads the cursor resource only if it has not been loaded; otherwise, it retrieves the handle to the existing resource. This function returns a valid cursor handle only if the <i>lpCursorName</i> parameter is a pointer to a cursor resource. If <i>lpCursorName</i> is a pointer to any type of resource other than a cursor (such as an icon), the return value is not <b>NULL</b>, even though it is not a valid cursor handle. The <b>LoadCursor</b> function searches the cursor resource most appropriate for the cursor for the current display device. The cursor resource can be a color or monochrome bitmap. <h3><a id="DPI_Virtualization"></a><a id="dpi_virtualization"></a><a id="DPI_VIRTUALIZATION"></a>DPI Virtualization</h3> This API does not participate in DPI virtualization. The output returned is not affected by the DPI of the calling thread.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-loadcursorw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.keybd_event(System.Byte,System.Byte,Windows.Win32.UI.Input.KeyboardAndMouse.KEYBD_EVENT_FLAGS,System.UIntPtr)">
            <summary>Synthesizes a keystroke.</summary>
            <param name="bVk">
            <para>Type: <b>BYTE</b> A virtual-key code. The code must be a value in the range 1 to 254. For a complete list, see <a href="https://docs.microsoft.com/windows/desktop/inputdev/virtual-key-codes">Virtual Key Codes</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-keybd_event#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="bScan">
            <para>Type: <b>BYTE</b> A hardware scan code for the key.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-keybd_event#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="dwFlags">Type: <b>DWORD</b></param>
            <param name="dwExtraInfo">
            <para>Type: <b>ULONG_PTR</b> An additional value associated with the key stroke.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-keybd_event#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <remarks>
            <para>An application can simulate a press of the PRINTSCRN key in order to obtain a screen snapshot and save it to the clipboard. To do this, call <b>keybd_event</b> with the <i>bVk</i> parameter set to <b>VK_SNAPSHOT</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-keybd_event#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetWindowRect(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.RECT@)">
            <inheritdoc cref="M:Windows.Win32.PInvoke.GetWindowRect(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.RECT*)"/>
        </member>
        <member name="M:Windows.Win32.PInvoke.GetWindowRect(Windows.Win32.Foundation.HWND,Windows.Win32.Foundation.RECT*)">
            <summary>Retrieves the dimensions of the bounding rectangle of the specified window. The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.</summary>
            <param name="hWnd">
            <para>Type: <b>HWND</b> A handle to the window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getwindowrect#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="lpRect">
            <para>Type: <b>LPRECT</b> A pointer to a  <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure that receives the screen coordinates of the upper-left and lower-right corners of the window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getwindowrect#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b>BOOL</b> If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call <a href="https://docs.microsoft.com/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror">GetLastError</a>.</para>
            </returns>
            <remarks>
            <para>In conformance with conventions for the <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure, the bottom-right coordinates of the returned rectangle are exclusive. In other words, the pixel at (<b>right</b>, <b>bottom</b>) lies immediately outside the rectangle. GetWindowRect is virtualized for DPI. In Windows Vista and later, the Window Rect now includes the area occupied by the drop shadow. Calling GetWindowRect will have different behavior depending on whether the window has ever been shown or not.  If the window has not been shown before, GetWindowRect will not include the area of the drop shadow. To get the window bounds excluding the drop shadow, use <a href="https://docs.microsoft.com/windows/win32/api/dwmapi/nf-dwmapi-dwmgetwindowattribute">DwmGetWindowAttribute</a>, specifying <b>DWMWA_EXTENDED_FRAME_BOUNDS</b>.  Note that unlike the Window Rect, the DWM Extended Frame Bounds are not adjusted for DPI.  Getting the extended frame bounds can only be done after the window has been shown at least once.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-getwindowrect#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="T:Windows.Win32.System.Com.BINDPTR">
            <summary>Describes a pointer.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-bindptr">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.BINDPTR.lpfuncdesc">
            <summary>Pointer to a function.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.BINDPTR.lpvardesc">
            <summary>Pointer to a variable, constant, or data member.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.BINDPTR.lptcomp">
            <summary>The <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> that binds the pointer.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.CALLCONV">
            <summary>Identifies the calling convention used by a member function described in the METHODDATA structure.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-callconv">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_FASTCALL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_CDECL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_MSCPASCAL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_PASCAL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_MACPASCAL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_STDCALL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_FPFASTCALL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_SYSCALL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_MPWCDECL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_MPWPASCAL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CALLCONV.CC_MAX">
            <summary></summary>
        </member>
        <member name="T:Windows.Win32.System.Com.CLSCTX">
            <summary>Values that are used in activation calls to indicate the execution contexts in which an object is to be run.</summary>
            <remarks>
            <para>Values from the <b>CLSCTX</b> enumeration are used in activation calls (<a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cocreateinstance">CoCreateInstance</a>, <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cocreateinstanceex">CoCreateInstanceEx</a>, <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cogetclassobject">CoGetClassObject</a>, and so on) to indicate the preferred execution contexts (in-process, local, or remote) in which an object is to be run. They are also used in calls to <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-coregisterclassobject">CoRegisterClassObject</a> to indicate the set of execution contexts in which a class object is to be made available for requests to construct instances (<b>IClassFactory::CreateInstance</b>). To indicate that more than one context is acceptable, you can combine multiple values with Boolean ORs. The contexts are tried in the order in which they are listed.</para>
            <para>Given a set of <b>CLSCTX</b> flags, the execution context to be used depends on the availability of registered class codes and other parameters according to the following algorithm.</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wtypesbase/ne-wtypesbase-clsctx#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_INPROC_SERVER">
            <summary>The code that creates and manages objects of this class is a DLL that runs in the same process as the caller of the function specifying the class context.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_INPROC_HANDLER">
            <summary>The code that manages objects of this class is an in-process handler. This is a DLL that runs in the client process and implements client-side structures of this class when instances of the class are accessed remotely.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_LOCAL_SERVER">
            <summary>The EXE code that creates and manages objects of this class runs on same machine but is loaded in a separate process space.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_INPROC_SERVER16">
            <summary>Obsolete.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_REMOTE_SERVER">
            <summary>A remote context. The <a href="https://docs.microsoft.com/windows/desktop/com/localserver32">LocalServer32</a> or <a href="https://docs.microsoft.com/windows/desktop/com/localservice">LocalService</a> code that creates and manages objects of this class is run on a different computer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_INPROC_HANDLER16">
            <summary>Obsolete.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_RESERVED1">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_RESERVED2">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_RESERVED3">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_RESERVED4">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_NO_CODE_DOWNLOAD">
            <summary>Disables the downloading of code from the directory service or the Internet. This flag cannot be set at the same time as CLSCTX_ENABLE_CODE_DOWNLOAD.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_RESERVED5">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_NO_CUSTOM_MARSHAL">
            <summary>Specify if you want the activation to fail if it uses custom marshalling.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_ENABLE_CODE_DOWNLOAD">
            <summary>Enables the downloading of code from the directory service or the Internet. This flag cannot be set at the same time as CLSCTX_NO_CODE_DOWNLOAD.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_NO_FAILURE_LOG">
            <summary>
            <para>The CLSCTX_NO_FAILURE_LOG can be used to override the logging of failures in <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cocreateinstanceex">CoCreateInstanceEx</a>. If the ActivationFailureLoggingLevel is created, the following values can determine the status of event logging: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wtypesbase/ne-wtypesbase-clsctx#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_DISABLE_AAA">
            <summary>
            <para>Disables activate-as-activator (AAA) activations for this activation only. This flag overrides the setting of the EOAC_DISABLE_AAA flag from the EOLE_AUTHENTICATION_CAPABILITIES enumeration. This flag cannot be set at the same time as CLSCTX_ENABLE_AAA. Any activation where a server process would be launched under the caller's identity is known as an activate-as-activator (AAA) activation. Disabling AAA activations allows an application that runs under a privileged account (such as LocalSystem) to help prevent its identity from being used to launch untrusted components. Library applications that use activation calls should always set this flag during those calls. This helps prevent the library application from being used in an escalation-of-privilege security attack. This is the only way to disable AAA activations in a library application because the EOAC_DISABLE_AAA flag from the EOLE_AUTHENTICATION_CAPABILITIES enumeration is applied only to the server process and not to the library application. <b>Windows 2000:  </b>This flag is not supported.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wtypesbase/ne-wtypesbase-clsctx#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_ENABLE_AAA">
            <summary>
            <para>Enables activate-as-activator (AAA) activations for this activation only. This flag overrides the setting of the EOAC_DISABLE_AAA flag from the EOLE_AUTHENTICATION_CAPABILITIES enumeration. This flag cannot be set at the same time as CLSCTX_DISABLE_AAA. Any activation where a server process would be launched under the caller's identity is known as an activate-as-activator (AAA) activation. Enabling this flag allows an application to transfer its identity to an activated component. <b>Windows 2000:  </b>This flag is not supported.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wtypesbase/ne-wtypesbase-clsctx#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_FROM_DEFAULT_CONTEXT">
            <summary>Begin this activation from the default context of the current apartment.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_ACTIVATE_X86_SERVER">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_ACTIVATE_32_BIT_SERVER">
            <summary>Activate or connect to a 32-bit version of the server; fail if one is not registered.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_ACTIVATE_64_BIT_SERVER">
            <summary>Activate or connect to a 64 bit version of the server; fail if one is not registered.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_ENABLE_CLOAKING">
            <summary>
            <para>When this flag is specified, COM uses the impersonation token of the thread, if one is present, for the activation request made by the thread. When this flag is not specified or if the thread does not have an impersonation token, COM uses the process token of the thread's process for the activation request made by the thread.</para>
            <para><b>Windows Vista or later:  </b>This flag is supported.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wtypesbase/ne-wtypesbase-clsctx#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_APPCONTAINER">
            <summary>
            <para>Indicates activation is for an app container.</para>
            <para><div class="alert"><b>Note</b>  This flag is reserved for internal use and is not intended to be used directly from your code.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wtypesbase/ne-wtypesbase-clsctx#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_ACTIVATE_AAA_AS_IU">
            <summary>
            <para>Specify this flag for Interactive User activation behavior for As-Activator servers. A strongly named Medium IL Windows Store app can use this flag to launch an "As Activator" COM server without a strong name. Also, you can use this flag to bind to a running instance of the COM server that's launched by a desktop application. The client must be Medium IL, it must be strongly named, which means that it has a SysAppID in the client token, it can't be in session 0,  and it must have the same user as the session ID's user in the client token. If  the server is out-of-process and "As Activator", it launches the server with the token of the client token's session user. This token won't be strongly named. If the server is out-of-process and RunAs "Interactive User", this flag has no effect. If the server is out-of-process and is any other RunAs type, the activation fails. This flag has no effect for in-process servers. Off-machine activations fail when they use this flag.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wtypesbase/ne-wtypesbase-clsctx#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_RESERVED6">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_ACTIVATE_ARM32_SERVER">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Com.CLSCTX.CLSCTX_PS_DLL">
            <summary>
            <para>Used for loading Proxy/Stub DLLs.</para>
            <para><div class="alert"><b>Note</b>  This flag is reserved for internal use and is not intended to be used directly from your code.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wtypesbase/ne-wtypesbase-clsctx#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.System.Com.CY">
            <summary>The CY structure is useful for calculations involving money, or for any fixed-point calculation where accuracy is particularly important.</summary>
            <remarks></remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.CY.int64">
            <summary></summary>
        </member>
        <member name="T:Windows.Win32.System.Com.DESCKIND">
            <summary>Identifies the type description being bound to.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-desckind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_NONE">
            <summary>No match was found.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_FUNCDESC">
            <summary>A <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ns-oaidl-funcdesc">FUNCDESC</a> was returned.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_VARDESC">
            <summary>A <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ns-oaidl-vardesc">VARDESC</a> was returned.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_TYPECOMP">
            <summary>A TYPECOMP was returned.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_IMPLICITAPPOBJ">
            <summary>An IMPLICITAPPOBJ was returned.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DESCKIND.DESCKIND_MAX">
            <summary>The end of the enum.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.DISPPARAMS">
            <summary>Contains the arguments passed to a method or property.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-dispparams">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.DISPPARAMS.rgvarg">
            <summary>
            <para>An array of arguments. **Note**: these arguments appear in reverse order</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-dispparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DISPPARAMS.rgdispidNamedArgs">
            <summary>The dispatch IDs of the named arguments.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DISPPARAMS.cArgs">
            <summary>The number of arguments.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.DISPPARAMS.cNamedArgs">
            <summary>The number of named arguments.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.ELEMDESC">
            <summary>The ELEMDESC structure contains the type description and process-transfer information for a variable, a function, or a function parameter. (ELEMDESC)</summary>
            <remarks></remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.ELEMDESC.tdesc">
            <summary>The type of the element.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.EXCEPINFO">
            <summary>Describes an exception that occurred during IDispatch::Invoke.</summary>
            <remarks>
            <para>Use the <b>pfnDeferredFillIn</b> field to enable an object to defer filling in the <b>bstrDescription</b>, <b>bstrHelpFile</b>, and <b>dwHelpContext</b> fields until they are needed. This field might be used, for example, if loading the string for the error is a time-consuming operation. To use deferred fill-in, the object puts a function pointer in this slot and does not fill any of the other fields except <b>wCode</b>, which is required. To get additional information, the caller passes the <b>EXCEPINFO</b> structure back to the <b>pexcepinfo</b> callback function, which fills in the additional information. When the ActiveX object and the ActiveX client are in different processes, the ActiveX object calls <b>pfnDeferredFillIn</b> before returning to the controller.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-excepinfo#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.wCode">
            <summary>The error code. Error codes should be greater than 1000. Either this field or the scode field must be filled in; the other must be set to 0.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.wReserved">
            <summary>Reserved. Should be 0.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.bstrSource">
            <summary>The name of the exception source. Typically, this is an application name. This field should be filled in by the implementer of <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a>.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.bstrDescription">
            <summary>The exception description to display. If no description is available, use null.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.bstrHelpFile">
            <summary>The fully qualified help file path. If no Help is available, use null.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.dwHelpContext">
            <summary>The help context ID.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.pvReserved">
            <summary>Reserved. Must be null.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.pfnDeferredFillIn">
            <summary>Provides deferred fill-in. If deferred fill-in is not desired, this field should be set to null.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.EXCEPINFO.scode">
            <summary>A return value that describes the error. Either this field or wCode (but not both) must be filled in; the other must be set to 0. (16-bit Windows versions only.)</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.FUNCDESC">
            <summary>Describes a function. (FUNCDESC)</summary>
            <remarks>
            <para>The <b>cParams</b> field specifies the total number of required and optional parameters.</para>
            <para>The <b>cParamsOpt</b> field specifies the form of optional parameters accepted by the function, as follows: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-funcdesc#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.memid">
            <summary>The function member ID.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.lprgscode">
            <summary>The status code.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.lprgelemdescParam">
            <summary>Description of the element.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.funckind">
            <summary>Indicates the type of function (virtual, static, or dispatch-only).</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.invkind">
            <summary>The invocation type. Indicates whether this is a property function, and if so, which type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.callconv">
            <summary>The calling convention.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.cParams">
            <summary>The total number of parameters.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.cParamsOpt">
            <summary>The number of optional parameters.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.oVft">
            <summary>For FUNC_VIRTUAL, specifies the offset in the VTBL.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.cScodes">
            <summary>The number of possible return values.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.elemdescFunc">
            <summary>The function return type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCDESC.wFuncFlags">
            <summary>The function flags. See <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ne-oaidl-funcflags">FUNCFLAGS</a>.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.FUNCFLAGS">
            <summary>Specifies function flags.</summary>
            <remarks>
            <para>FUNCFLAG_FHIDDEN means that the property should never be shown in object browsers, property browsers, and so on. This function is useful for removing items from an object model. Code can bind to the member, but the user will never know that the member exists. FUNCFLAG_FNONBROWSABLE means that the property should not be displayed in a properties browser. It is used in circumstances in which an error would occur if the property were shown in a properties browser. FUNCFLAG_FRESRICTED means that macro-oriented programmers should not be allowed to access this member. These members are usually treated as _FHIDDEN by tools such as Visual Basic, with the main difference being that code cannot bind to those members.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-funcflags#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FRESTRICTED">
            <summary>The function should not be accessible from macro languages. This flag is intended for system-level functions or functions that type browsers should not display.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FSOURCE">
            <summary>The function returns an object that is a source of events.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FBINDABLE">
            <summary>The function that supports data binding.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FREQUESTEDIT">
            <summary>When set, any call to a method that sets the property results first in a call to <b>IPropertyNotifySink::OnRequestEdit</b>. The implementation of <b>OnRequestEdit</b> determines if the call is allowed to set the property.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FDISPLAYBIND">
            <summary>The function that is displayed to the user as bindable. FUNC_FBINDABLE must also be set.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FDEFAULTBIND">
            <summary>The function that best represents the object. Only one function in a type information can have this attribute.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FHIDDEN">
            <summary>The function should not be displayed to the user, although it exists and is bindable.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FUSESGETLASTERROR">
            <summary>The function supports <b>GetLastError</b>. If an error occurs during the function, the caller can call <b>GetLastError</b> to retrieve the error code.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FDEFAULTCOLLELEM">
            <summary>Permits an optimization in which the compiler looks for a member named xyz on the type of abc. If such a member is found and is flagged as an accessor function for an element of the default collection, then a call is generated to that member function. Permitted on members in dispinterfaces and interfaces; not permitted on modules. For more information, refer to defaultcollelem in Type Libraries and the Object Description Language.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FUIDEFAULT">
            <summary>The type information member is the default member for display in the user interface.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FNONBROWSABLE">
            <summary>The property appears in an object browser, but not in a properties browser.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FREPLACEABLE">
            <summary>Tags the interface as having default behaviors.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCFLAGS.FUNCFLAG_FIMMEDIATEBIND">
            <summary>Mapped as individual bindable properties.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.FUNCKIND">
            <summary>Specifies the function type.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-funckind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCKIND.FUNC_VIRTUAL">
            <summary>The function is accessed the same as PUREVIRTUAL, except the function has an implementation.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCKIND.FUNC_PUREVIRTUAL">
            <summary>The function is accessed through the virtual function table (VTBL), and takes an implicit this pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCKIND.FUNC_NONVIRTUAL">
            <summary>The function is accessed by static address and takes an implicit this pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCKIND.FUNC_STATIC">
            <summary>The function is accessed by static address and does not take an implicit this pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.FUNCKIND.FUNC_DISPATCH">
            <summary>The function can be accessed only through <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a>.</summary>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IDispatch.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.GetTypeInfoCount(System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IDispatch.GetTypeInfoCount(System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.GetTypeInfoCount(System.UInt32*)">
            <summary>Retrieves the number of type information interfaces that an object provides (either 0 or 1).</summary>
            <param name="pctinfo">The number of type information interfaces provided by the object. If the object provides type information, this number is 1; otherwise the number is 0.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The method may return zero, which indicates that the object does not provide any type information. In this case, the object may still be programmable through <b>IDispatch</b> or a VTBL, but does not provide run-time type information for browsers, compilers, or other programming tools that access type information. This can be useful for hiding an object from browsers.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.GetTypeInfo(System.UInt32,System.UInt32,Windows.Win32.System.Com.ITypeInfo**)">
            <summary>Retrieves the type information for an object, which can then be used to get the type information for an interface.</summary>
            <param name="iTInfo">The type information to return. Pass 0 to retrieve type information for the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> implementation.</param>
            <param name="lcid">The locale identifier for the type information. An object may be able to return different type information for different languages. This is important for classes that support localized member names. For classes that do not support localized member names, this parameter can be ignored.</param>
            <param name="ppTInfo">The requested type information object.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-idispatch-gettypeinfo">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.GetIDsOfNames(System.Guid@,System.ReadOnlySpan{Windows.Win32.Foundation.PWSTR},System.UInt32,System.Span{System.Int32})">
            <inheritdoc cref="M:Windows.Win32.System.Com.IDispatch.GetIDsOfNames(System.Guid*,Windows.Win32.Foundation.PWSTR*,System.UInt32,System.UInt32,System.Int32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.GetIDsOfNames(System.Guid*,Windows.Win32.Foundation.PWSTR*,System.UInt32,System.UInt32,System.Int32*)">
            <summary>Maps a single member and an optional set of argument names to a corresponding set of integer DISPIDs, which can be used on subsequent calls to Invoke.</summary>
            <param name="riid">Reserved for future use. Must be IID_NULL.</param>
            <param name="rgszNames">The array of names to be mapped.</param>
            <param name="cNames">The count of the names to be mapped.</param>
            <param name="lcid">The locale context in which to interpret the names.</param>
            <param name="rgDispId">Caller-allocated array, each element of which contains an identifier (ID) corresponding to one of the names passed in the rgszNames array. The first element represents the member name. The subsequent elements represent each of the member's parameters.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>An <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> implementation can associate any positive integer ID value with a given name. Zero is reserved for the default, or <b>Value</b> property; –1 is reserved to indicate an unknown name; and other negative values are defined for other purposes. For example, if <b>GetIDsOfNames</b> is called, and the implementation does not recognize one or more of the names, it returns DISP_E_UNKNOWNNAME, and the <i>rgDispId</i> array contains DISPID_UNKNOWN for the entries that correspond to the unknown names. The member and parameter DISPIDs must remain constant for the lifetime of the object. This allows a client to obtain the DISPIDs once, and cache them for later use. When <b>GetIDsOfNames</b> is called with more than one name, the first name (<i>rgszNames</i>[0]) corresponds to the member name, and subsequent names correspond to the names of the member's parameters. The same name may map to different DISPIDs, depending on context. For example, a name may have a DISPID when it is used as a member name with a particular interface, a different ID as a member of a different interface, and different mapping for each time it appears as a parameter. <b>GetIDsOfNames</b> is used when an <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> client binds to names at run time. To bind at compile time instead, an <b>IDispatch</b> client can map names to DISPIDs by using the type information interfaces described in <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/type-description-interfaces">Type Description Interfaces</a>. This allows a client to bind to members at compile time and avoid calling <b>GetIDsOfNames</b> at run time. For a description of binding at compile time, see Type Description Interfaces. The implementation of <b>GetIDsOfNames</b> is case insensitive. Users that need case-sensitive name mapping should use type information interfaces to map names to DISPIDs, rather than call <b>GetIDsOfNames</b>. <div class="alert"><b>Caution</b>  You cannot use this method to access values that have been added dynamically, such as values added through JavaScript. Instead, use the GetDispID of the IDispatchEx interface. For more information, see the <a href="https://docs.microsoft.com/previous-versions/windows/internet-explorer/ie-developer/windows-scripting/reference/idispatchex-interface">IDispatchEx interface</a>.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-idispatch-getidsofnames#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.Invoke(System.Int32,System.Guid@,System.UInt32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS@,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IDispatch.Invoke(System.Int32,System.Guid*,System.UInt32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS*,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.IDispatch.Invoke(System.Int32,System.Guid*,System.UInt32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS*,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)">
            <summary>Provides access to properties and methods exposed by an object.</summary>
            <param name="dispIdMember">Identifies the member. Use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-getidsofnames">GetIDsOfNames</a> or the object's documentation to obtain the dispatch identifier.</param>
            <param name="riid">Reserved for future use. Must be IID_NULL.</param>
            <param name="lcid">
            <para>The locale context in which to interpret arguments. The <i>lcid</i> is used by the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-getidsofnames">GetIDsOfNames</a> function, and is also passed to <b>Invoke</b> to allow the object to interpret its arguments specific to a locale. Applications that do not support multiple national languages can ignore this parameter. For more information, refer to <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/supporting-multiple-national-languages">Supporting Multiple National Languages</a> and <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/exposing-activex-objects">Exposing ActiveX Objects</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-idispatch-invoke#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="wFlags">
            <para>Flags describing the context of the <b>Invoke</b> call. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-idispatch-invoke#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pDispParams">Pointer to a DISPPARAMS structure containing an array of arguments, an array of argument DISPIDs for named arguments, and counts for the number of elements in the arrays.</param>
            <param name="pVarResult">Pointer to the location where the result is to be stored, or NULL if the caller expects no result. This argument is ignored if DISPATCH_PROPERTYPUT or DISPATCH_PROPERTYPUTREF is specified.</param>
            <param name="pExcepInfo">Pointer to a structure that contains exception information. This structure should be filled in if DISP_E_EXCEPTION is returned. Can be NULL.</param>
            <param name="puArgErr">The index within rgvarg of the first argument that has an error. Arguments are stored in pDispParams-&gt;rgvarg in reverse order, so the first argument is the one with the highest index in the array. This parameter is returned only when the resulting return value is DISP_E_TYPEMISMATCH or DISP_E_PARAMNOTFOUND. This argument can be set to null. For details, see <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/returning-errors">Returning Errors</a>.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>Generally, you should not implement <b>Invoke</b> directly. Instead, use the dispatch interface to create functions <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-createstddispatch">CreateStdDispatch</a> and <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-dispinvoke">DispInvoke</a>. For details, refer to <b>CreateStdDispatch</b>, <b>DispInvoke</b>, <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/creating-the-idispatch-interface">Creating the IDispatch Interface</a> and <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/exposing-activex-objects">Exposing ActiveX Objects</a>. If some application-specific processing needs to be performed before calling a member, the code should perform the necessary actions, and then call <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-invoke">ITypeInfo::Invoke</a> to invoke the member. <b>ITypeInfo::Invoke</b> acts exactly like <b>Invoke</b>. The standard implementations of <b>Invoke</b> created by <b>CreateStdDispatch</b> and <b>DispInvoke</b> defer to <b>ITypeInfo::Invoke</b>. In an ActiveX client, <b>Invoke</b> should be used to get and set the values of properties, or to call a method of an ActiveX object. The <i>dispIdMember</i> argument identifies the member to invoke. The DISPIDs that identify members are defined by the implementer of the object and can be determined by using the object's documentation, the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-getidsofnames">IDispatch::GetIDsOfNames</a> function, or the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> interface. When you use <b>IDispatch::Invoke()</b> with DISPATCH_PROPERTYPUT or DISPATCH_PROPERTYPUTREF, you have to specially initialize the <b>cNamedArgs</b> and <b>rgdispidNamedArgs</b> elements of your DISPPARAMS structure with the following:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-idispatch-invoke#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.IDispatch.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{00020400-0000-0000-c000-000000000046}</value>
        </member>
        <member name="T:Windows.Win32.System.Com.INVOKEKIND">
            <summary>Specifies the way a function is invoked.</summary>
            <remarks>In C, value assignment is written as *pobj1 = *pobj2, while reference assignment is written as pobj1 = pobj2. Other languages have other syntactic conventions. A property or data member can support only a value assignment, a reference assignment, or both. The INVOKEKIND enumeration constants are the same constants that are passed to <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a> to specify the way in which a function is invoked.</remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.INVOKEKIND.INVOKE_FUNC">
            <summary>The member is called using a normal function invocation syntax.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.INVOKEKIND.INVOKE_PROPERTYGET">
            <summary>The function is invoked using a normal property-access syntax.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.INVOKEKIND.INVOKE_PROPERTYPUT">
            <summary>The function is invoked using a property value assignment syntax. Syntactically, a typical programming language might represent changing a property in the same way as assignment. For example: object.property : = value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.INVOKEKIND.INVOKE_PROPERTYPUTREF">
            <summary>The function is invoked using a property reference assignment syntax.</summary>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeComp.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeComp.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeComp.Bind(Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt16,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.DESCKIND@,Windows.Win32.System.Com.BINDPTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeComp.Bind(Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt16,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.DESCKIND*,Windows.Win32.System.Com.BINDPTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeComp.Bind(Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt16,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.DESCKIND*,Windows.Win32.System.Com.BINDPTR*)">
            <summary>Maps a name to a member of a type, or binds global variables and functions contained in a type library.</summary>
            <param name="szName">The name to be bound.</param>
            <param name="lHashVal">The hash value for the name computed by <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-lhashvalofnamesys">LHashValOfNameSys</a>.</param>
            <param name="wFlags">One or more of the flags defined in the INVOKEKIND enumeration. Specifies whether the name was referenced as a method or a property. When binding to a variable, specify the flag INVOKE_PROPERTYGET. Specify zero to bind to any type of member.</param>
            <param name="ppTInfo">If a FUNCDESC or VARDESC was returned, then <i>ppTInfo</i> points to a pointer to the type description that contains the item to which it is bound.</param>
            <param name="pDescKind">Indicates whether the name bound to is a VARDESC, FUNCDESC, or TYPECOMP. If there was no match, DESCKIND_NONE.</param>
            <param name="pBindPtr">The bound-to VARDESC, FUNCDESC, or <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> interface.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>Use <b>Bind</b> for binding to the variables and methods of a type, or for binding to the global variables and methods in a type library. The returned DESCKIND pointer <i>pDescKind</i> indicates whether the name was bound to a VARDESC, a FUNCDESC, or to an <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> instance. The returned <i>pBindPtr</i> points to the VARDESC, FUNCDESC, or <b>ITypeComp</b>. If a data member or method is bound to, then ppTInfopoints to the type description that contains the method or data member.</para>
            <para>If <b>Bind</b> binds the name to a nested binding context, it returns a pointer to an <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> instance in <i>pBindPtr</i> and a null type description pointer in <i>ppTInfo</i>. For example, if the name of a type description is passed for a module (TKIND_MODULE), enumeration (TKIND_ENUM), or coclass (TKIND_COCLASS), Bind returns the <b>ITypeComp</b> instance of the type description for the module, enumeration, or coclass. This feature supports languages such as Visual Basic that allow references to members of a type description to be qualified by the name of the type description. For example, a function in a module can be referenced by <i>modulename</i>.<i>functionname.</i> The members of TKIND_ENUM, TKIND_MODULE, and TKIND_COCLASS types marked as Application objects can be bound to directly from <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a>, without specifying the name of the module. The <b>ITypeComp</b> of a coclass defers to the <b>ITypeComp</b> of its default interface.</para>
            <para>As with other methods of <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a>, <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a>, and <b>ITypeInfo</b>, the calling code is responsible for releasing the returned object instances or structures. If a VARDESC or FUNCDESC is returned, the caller is responsible for deleting it with the returned type description and releasing the type description instance itself. Otherwise, if an <b>ITypeComp</b> instance is returned, the caller must release it.</para>
            <para>Special rules apply if you call a type library's <b>Bind</b> method, passing it the name of a member of an Application object class (a class that has the TYPEFLAG_FAPPOBJECT flag set). In this case, Bind returns DESCKIND_IMPLICITAPPOBJ in <i>pDescKind</i>, a VARDESC that describes the Application object in <i>pBindPtr</i>, and the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> of the Application object class in <i>ppTInfo</i>. To bind to the object, <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-gettypecomp">ITypeInfo::GetTypeComp</a> must make a call to get the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> of the Application object class, and then reinvoke its <b>Bind</b> method with the name initially passed to the type library's <b>ITypeComp</b>.</para>
            <para>The caller should use the returned <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> pointer (<i>ppTInfo</i>) to get the address of the member.</para>
            <para><div class="alert"><b>Note</b>  The <i>wflags</i> parameter is the same as the <i>wflags</i> parameter in <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a>. </div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypecomp-bind#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeComp.BindType(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.ITypeComp**)">
            <summary>Binds to the type descriptions contained within a type library.</summary>
            <param name="szName">The name to be bound.</param>
            <param name="lHashVal">The hash value for the name computed by <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-lhashvalofname">LHashValOfName</a>.</param>
            <param name="ppTInfo">An <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> of the type to which the name was bound.</param>
            <param name="ppTComp">Passes a valid pointer, such as the address of an <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> variable.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>Use the function <b>BindType</b> for binding a type name to the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> that describes the type. This function is invoked on the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> that is returned by <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypelib-gettypecomp">ITypeLib::GetTypeComp</a> to bind to types defined within that library. It can also be used in the future for binding to nested types.</remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.ITypeComp.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{00020403-0000-0000-c000-000000000046}</value>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetTypeAttr(Windows.Win32.System.Com.TYPEATTR*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetTypeAttr(Windows.Win32.System.Com.TYPEATTR**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetTypeAttr(Windows.Win32.System.Com.TYPEATTR**)">
            <summary>Retrieves a TYPEATTR structure that contains the attributes of the type description.</summary>
            <param name="ppTypeAttr">The attributes of this type description.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>To free the TYPEATTR structure, use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-releasetypeattr">ITypeInfo::ReleaseTypeAttr</a>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetTypeComp(Windows.Win32.System.Com.ITypeComp**)">
            <summary>Retrieves the ITypeComp interface for the type description, which enables a client compiler to bind to the type description's members.</summary>
            <param name="ppTComp">The <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> of the containing type library.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>A client compiler can use the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> interface to bind to members of the type.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetFuncDesc(System.UInt32,Windows.Win32.System.Com.FUNCDESC*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetFuncDesc(System.UInt32,Windows.Win32.System.Com.FUNCDESC**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetFuncDesc(System.UInt32,Windows.Win32.System.Com.FUNCDESC**)">
            <summary>Retrieves the FUNCDESC structure that contains information about a specified function.</summary>
            <param name="index">The index of the function whose description is to be returned. The <i>index</i> should be in the range of 0 to 1 less than the number of functions in this type.</param>
            <param name="ppFuncDesc">A FUNCDESC structure that describes the specified function.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The function <b>ITypeInfo::GetFuncDesc</b> provides access to a FUNCDESC structure that describes the function with the specified <i>index</i>. The FUNCDESC structure should be freed with <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-releasefuncdesc">ITypeInfo::ReleaseFuncDesc</a>. The number of functions in the type is one of the attributes contained in the TYPEATTR structure.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetVarDesc(System.UInt32,Windows.Win32.System.Com.VARDESC*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetVarDesc(System.UInt32,Windows.Win32.System.Com.VARDESC**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetVarDesc(System.UInt32,Windows.Win32.System.Com.VARDESC**)">
            <summary>Retrieves a VARDESC structure that describes the specified variable.</summary>
            <param name="index">The index of the variable whose description is to be returned. The index should be in the range of 0 to 1 less than the number of variables in this type.</param>
            <param name="ppVarDesc">A VARDESC that describes the specified variable.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>To free the VARDESC structure, use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-releasevardesc">ReleaseVarDesc</a>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetNames(System.Int32,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetNames(System.Int32,Windows.Win32.Foundation.BSTR*,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetNames(System.Int32,Windows.Win32.Foundation.BSTR*,System.UInt32,System.UInt32*)">
            <summary>Retrieves the variable with the specified member ID or the name of the property or method and the parameters that correspond to the specified function ID.</summary>
            <param name="memid">The ID of the member whose name (or names) is to be returned.</param>
            <param name="rgBstrNames">The caller-allocated array. On return, each of the elements contains the name (or names) associated with the member.</param>
            <param name="cMaxNames">The length of the passed-in <i>rgBstrNames</i> array.</param>
            <param name="pcNames">The number of names in the <i>rgBstrNames</i> array.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The caller must release the returned BSTR array.</para>
            <para>If the member ID identifies a property that is implemented with property functions, the property name is returned. For property get functions, the names of the function and its parameters are always returned.</para>
            <para>For property put and put reference functions, the right side of the assignment is unnamed. If <i>cMaxNames</i> is less than is required to return all of the names of the parameters of a function, then only the names of the first <i>cMaxNames</i> - 1 parameters are returned. The names of the parameters are returned in the array in the same order that they appear elsewhere in the interface (for example, the same order in the parameter array associated with the FUNCDESC enumeration).</para>
            <para>If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getnames#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetRefTypeOfImplType(System.UInt32,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetRefTypeOfImplType(System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetRefTypeOfImplType(System.UInt32,System.UInt32*)">
            <summary>If a type description describes a COM class, it retrieves the type description of the implemented interface types.</summary>
            <param name="index">The index of the implemented type whose handle is returned. The valid range is 0 to the <b>cImplTypes</b> field in the TYPEATTR structure.</param>
            <param name="pRefType">A handle for the implemented interface (if any). This handle can be passed to <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-getreftypeinfo">ITypeInfo::GetRefTypeInfo</a> to get the type description.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>If the TKIND_DISPATCH type description is for a dual interface, the TKIND_INTERFACE type description can be obtained by calling <b>GetRefTypeOfImplType</b> with an <i>index</i> of –1, and by passing the returned <i>pRefTypehandle</i> to <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-getreftypeinfo">GetRefTypeInfo</a> to retrieve the type information.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetImplTypeFlags(System.UInt32,Windows.Win32.System.Com.IMPLTYPEFLAGS@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetImplTypeFlags(System.UInt32,Windows.Win32.System.Com.IMPLTYPEFLAGS*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetImplTypeFlags(System.UInt32,Windows.Win32.System.Com.IMPLTYPEFLAGS*)">
            <summary>Retrieves the IMPLTYPEFLAGS enumeration for one implemented interface or base interface in a type description.</summary>
            <param name="index">The index of the implemented interface or base interface for which to get the flags.</param>
            <param name="pImplTypeFlags">The IMPLTYPEFLAGS enumeration value.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The flags are associated with the act of inheritance, and not with the inherited interface.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetIDsOfNames(System.ReadOnlySpan{Windows.Win32.Foundation.PWSTR},System.Span{System.Int32})">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetIDsOfNames(Windows.Win32.Foundation.PWSTR*,System.UInt32,System.Int32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetIDsOfNames(Windows.Win32.Foundation.PWSTR*,System.UInt32,System.Int32*)">
            <summary>Maps between member names and member IDs, and parameter names and parameter IDs.</summary>
            <param name="rgszNames">An array of names to be mapped.</param>
            <param name="cNames">The count of the names to be mapped.</param>
            <param name="pMemId">Caller-allocated array in which name mappings are placed.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The function <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-getidsofnames">GetIDsOfNames</a> maps the name of a member (<b>rgszNames</b>[0]) and its parameters (<b>rgszNames</b>[1] ...<b>rgszNames</b>[<b>cNames</b>- 1]) to the ID of the member (<b>pMemId</b>[0]), and to the IDs of the specified parameters (<b>pMemId</b>[1] ... <b>pMemId</b>[<b>cNames</b>- 1]). The IDs of parameters are 0 for the first parameter in the member function's argument list, 1 for the second, and so on.</para>
            <para>If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getidsofnames#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.Invoke(System.Void*,System.Int32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS@,Windows.Win32.System.Variant.VARIANT@,Windows.Win32.System.Com.EXCEPINFO@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Invoke(System.Void*,System.Int32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS*,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.Invoke(System.Void*,System.Int32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS*,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)">
            <summary>Invokes a method, or accesses a property of an object, that implements the interface described by the type description.</summary>
            <param name="pvInstance">An instance of the interface described by this type description.</param>
            <param name="memid">The interface member.</param>
            <param name="wFlags">
            <para>Flags describing the context of the invoke call. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-invoke#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pDispParams">An array of arguments, an array of DISPIDs for named arguments, and counts of the number of elements in each array.</param>
            <param name="pVarResult">The result. Should be null if the caller does not expect any result. If <i>wFlags</i> specifies DISPATCH_PROPERTYPUT or DISPATCH_PROPERTYPUTREF, <i>pVarResultis</i> is ignored.</param>
            <param name="pExcepInfo">An exception information structure, which is filled in only if DISP_E_EXCEPTION is returned. If <i>pExcepInfo</i> is null on input, only an HRESULT error will be returned.</param>
            <param name="puArgErr">If Invoke returns DISP_E_TYPEMISMATCH, <i>puArgErr</i> indicates the index (within <i>rgvarg</i>) of the argument with incorrect type. If more than one argument returns an error, <i>puArgErr</i> indicates only the first argument with an error. Arguments in pDispParams-&gt;rgvarg appear in reverse order, so the first argument is the one having the highest index in the array. This parameter cannot be null.</param>
            <returns>
            <para></para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>Use the function <b>ITypeInfo::Invoke</b> to access a member of an object or invoke a method that implements the interface described by this type description. For objects that support the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> interface, you can use <b>Invoke</b> to implement <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a>.</para>
            <para><b>ITypeInfo::Invoke</b> takes a pointer to an instance of the class. Otherwise, its parameters are the same as <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a>, except that <b>ITypeInfo::Invoke</b> omits the <i>refiid</i> and <i>lcid</i> parameters. When called, <b>ITypeInfo::Invoke</b> performs the actions described by the <b>IDispatch::Invoke</b> parameters on the specified instance.</para>
            <para>For VTBL interface members, <b>ITypeInfo::Invoke</b> passes the LCID of the type information into parameters tagged with the lcid attribute, and the returned value into the retval attribute.</para>
            <para>If the type description inherits from another type description, this function recurses on the base type description to find the item with the requested member ID.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-invoke#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetDocumentation(System.Int32,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)">
            <summary>Retrieves the documentation string, the complete Help file name and path, and the context ID for the Help topic for a specified type description.</summary>
            <param name="memid">The ID of the member whose documentation is to be returned.</param>
            <param name="pBstrName">The name of the specified item. If the caller does not need the item name, <i>pBstrName</i> can be null.</param>
            <param name="pBstrDocString">The documentation string for the specified item. If the caller does not need the documentation string, <i>pBstrDocString</i> can be null.</param>
            <param name="pdwHelpContext">The Help localization context. If the caller does not need the Help context, it can be null.</param>
            <param name="pBstrHelpFile">The fully qualified name of the file containing the DLL used for Help file. If the caller does not need the file name, it can be null.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The function <b>GetDocumentation</b> provides access to the documentation for the member specified by the <i>memid</i> parameter. If the passed-in <i>memid</i> is MEMBERID_NIL, then the documentation for the type description is returned.</para>
            <para>If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.</para>
            <para>The caller should use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-sysfreestring">SysFreeString</a> to free the BSTRs referenced by <i>pBstrName</i>, <i>pBstrDocString</i>, and <i>pBstrHelpFile</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getdocumentation#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetDllEntry(System.Int32,Windows.Win32.System.Com.INVOKEKIND,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt16@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetDllEntry(System.Int32,Windows.Win32.System.Com.INVOKEKIND,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt16*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetDllEntry(System.Int32,Windows.Win32.System.Com.INVOKEKIND,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt16*)">
            <summary>Retrieves a description or specification of an entry point for a function in a DLL.</summary>
            <param name="memid">The ID of the member function whose DLL entry description is to be returned.</param>
            <param name="invKind">The kind of member identified by <i>memid</i>. This is important for properties, because one <i>memid</i> can identify up to three separate functions.</param>
            <param name="pBstrDllName">If not null, the function sets <i>pBstrDllName</i> to the name of the DLL.</param>
            <param name="pBstrName">If not null, the function sets <i>pBstrName</i> to the name of the entry point. If the entry point is specified by an ordinal, this argument is null.</param>
            <param name="pwOrdinal">If not null, and if the function is defined by an ordinal, the function sets <i>pwOrdinal</i> to the ordinal.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The caller passes in a member ID, which represents the member function whose entry description is desired. If the function has a DLL entry point, the name of the DLL that contains the function, as well as its name or ordinal identifier, are placed in the passed-in pointers allocated by the caller. If there is no DLL entry point for the function, an error is returned.</para>
            <para>If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.</para>
            <para>The caller should use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-sysfreestring">SysFreeString</a> to free the BSTRs referenced by <i>pBstrName</i> and <i>pBstrDllName</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getdllentry#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetRefTypeInfo(System.UInt32,Windows.Win32.System.Com.ITypeInfo**)">
            <summary>If a type description references other type descriptions, it retrieves the referenced type descriptions.</summary>
            <param name="hRefType">A handle to the referenced type description to return.</param>
            <param name="ppTInfo">The referenced type description.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>On return, the second parameter contains a pointer to a pointer to a type description that is referenced by this type description. A type description must have a reference to each type description that occurs as the type of any of its variables, function parameters, or function return types. For example, if the type of a data member is a record type, the type description for that data member contains the <i>hRefType</i> of a referenced type description. To get a pointer to the type description, the reference is passed to <b>GetRefTypeInfo</b>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.AddressOfMember(System.Int32,Windows.Win32.System.Com.INVOKEKIND,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.AddressOfMember(System.Int32,Windows.Win32.System.Com.INVOKEKIND,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.AddressOfMember(System.Int32,Windows.Win32.System.Com.INVOKEKIND,System.Void**)">
            <summary>Retrieves the addresses of static functions or variables, such as those defined in a DLL.</summary>
            <param name="memid">The member ID of the static member whose address is to be retrieved. The member ID is defined by the DISPID.</param>
            <param name="invKind">Indicates whether the member is a property, and if so, what kind.</param>
            <param name="ppv">The static member.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The addresses are valid until the caller releases its reference to the type description. The <i>invKind</i> parameter can be ignored unless the address of a property function is being requested. If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-addressofmember#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.CreateInstance(Windows.Win32.System.Com.IUnknown*,System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.CreateInstance(Windows.Win32.System.Com.IUnknown*,System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.CreateInstance(Windows.Win32.System.Com.IUnknown*,System.Guid*,System.Void**)">
            <summary>Creates a new instance of a type that describes a component object class (coclass).</summary>
            <param name="pUnkOuter">The controlling <b>IUnknown</b>. If Null, then a stand-alone instance is created. If valid, then an aggregate object is created.</param>
            <param name="riid">An ID for the interface that the caller will use to communicate with the resulting object.</param>
            <param name="ppvObj">An instance of the created object.</param>
            <returns>
            <para></para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>For types that describe a component object class (coclass), <b>CreateInstance</b> creates a new instance of the class. Normally, <b>CreateInstance</b> calls <b>CoCreateInstance</b> with the type description's GUID. For an Application object, it first calls <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-getactiveobject">GetActiveObject</a>. If the application is active, <b>GetActiveObject</b> returns the active object; otherwise, if <b>GetActiveObject</b> fails, <b>CreateInstance</b> calls <b>CoCreateInstance</b>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetMops(System.Int32,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetMops(System.Int32,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetMops(System.Int32,Windows.Win32.Foundation.BSTR*)">
            <summary>Retrieves marshaling information.</summary>
            <param name="memid">The member ID that indicates which marshaling information is needed.</param>
            <param name="pBstrMops">The opcode string used in marshaling the fields of the structure described by the referenced type description, or null if there is no information to return.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>If the passed-in member ID is MEMBERID_NIL, the function returns the opcode string for marshaling the fields of the structure described by the type description. Otherwise, it returns the opcode string for marshaling the function specified by the index.</para>
            <para>If the type description inherits from another type description, this function recurses on the base type description, if necessary, to find the item with the requested member ID.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getmops#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetContainingTypeLib(Windows.Win32.System.Com.ITypeLib**,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.GetContainingTypeLib(Windows.Win32.System.Com.ITypeLib**,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.GetContainingTypeLib(Windows.Win32.System.Com.ITypeLib**,System.UInt32*)">
            <summary>Retrieves the containing type library and the index of the type description within that type library.</summary>
            <param name="ppTLib">The containing type library.</param>
            <param name="pIndex">The index of the type description within the containing type library.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-getcontainingtypelib">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseTypeAttr(Windows.Win32.System.Com.TYPEATTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.ReleaseTypeAttr(Windows.Win32.System.Com.TYPEATTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseTypeAttr(Windows.Win32.System.Com.TYPEATTR*)">
            <summary>Releases a TYPEATTR previously returned by ITypeInfo::GetTypeAttr.</summary>
            <param name="pTypeAttr">The TYPEATTR to be freed.</param>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-releasetypeattr">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseFuncDesc(Windows.Win32.System.Com.FUNCDESC@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.ReleaseFuncDesc(Windows.Win32.System.Com.FUNCDESC*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseFuncDesc(Windows.Win32.System.Com.FUNCDESC*)">
            <summary>Releases a FUNCDESC previously returned by ITypeInfo::GetFuncDesc.</summary>
            <param name="pFuncDesc">The FUNCDESC to be freed.</param>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-releasefuncdesc">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseVarDesc(Windows.Win32.System.Com.VARDESC@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.ReleaseVarDesc(Windows.Win32.System.Com.VARDESC*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeInfo.ReleaseVarDesc(Windows.Win32.System.Com.VARDESC*)">
            <summary>Releases a VARDESC previously returned by ITypeInfo::GetVarDesc.</summary>
            <param name="pVarDesc">The VARDESC to be freed.</param>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypeinfo-releasevardesc">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.ITypeInfo.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{00020401-0000-0000-c000-000000000046}</value>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoCount">
            <summary>Provides the number of type descriptions that are in a type library.</summary>
            <returns>The number of type descriptions in the type library.</returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-gettypeinfocount">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfo(System.UInt32,Windows.Win32.System.Com.ITypeInfo**)">
            <summary>Retrieves the specified type description in the library.</summary>
            <param name="index">The index of the interface to be returned.</param>
            <param name="ppTInfo">If successful, returns a pointer to the pointer to the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> interface.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>For dual interfaces, <b>GetTypeInfo</b> returns only the TKIND_DISPATCH type information. To get the TKIND_INTERFACE type information, <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-getreftypeofimpltype">GetRefTypeOfImplType</a> can be called on the TKIND_DISPATCH type information, passing an index of –1. Then, the returned type information handle can be passed to <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypeinfo-getreftypeinfo">GetRefTypeInfo</a>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoType(System.UInt32,Windows.Win32.System.Com.TYPEKIND@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoType(System.UInt32,Windows.Win32.System.Com.TYPEKIND*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoType(System.UInt32,Windows.Win32.System.Com.TYPEKIND*)">
            <summary>Retrieves the type of a type description.</summary>
            <param name="index">The index of the type description within the type library.</param>
            <param name="pTKind">The <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ne-oaidl-typekind">TYPEKIND</a> enumeration value for the type description.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-gettypeinfotype">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoOfGuid(System.Guid@,Windows.Win32.System.Com.ITypeInfo**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoOfGuid(System.Guid*,Windows.Win32.System.Com.ITypeInfo**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeInfoOfGuid(System.Guid*,Windows.Win32.System.Com.ITypeInfo**)">
            <summary>Retrieves the type description that corresponds to the specified GUID.</summary>
            <param name="guid">The GUID of the type description.</param>
            <param name="ppTinfo">The <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypeinfo">ITypeInfo</a> interface.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-gettypeinfoofguid">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetLibAttr(Windows.Win32.System.Com.TLIBATTR*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.GetLibAttr(Windows.Win32.System.Com.TLIBATTR**)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetLibAttr(Windows.Win32.System.Com.TLIBATTR**)">
            <summary>Retrieves the structure that contains the library's attributes.</summary>
            <param name="ppTLibAttr">The library's attributes.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>Use <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypelib-releasetlibattr">ITypeLib::ReleaseTLibAttr</a> to free the memory occupied by the TLIBATTR structure.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetTypeComp(Windows.Win32.System.Com.ITypeComp**)">
            <summary>Enables a client compiler to bind to the types, variables, constants, and global functions for a library.</summary>
            <param name="ppTComp">The <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> instance for this <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypelib">ITypeLib</a>. A client compiler uses the methods in the <b>ITypeComp</b> interface to bind to types in <b>ITypeLib</b>, as well as to the global functions, variables, and constants defined in <b>ITypeLib</b></param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/nf-oaidl-itypecomp-bind">Bind</a> function of the returned <b>TypeComp</b> binds to global functions, variables, constants, enumerated values, and coclass members. The <b>Bind</b> function also binds the names of the TYPEKIND enumerations of TKIND_MODULE, TKIND_ENUM, and TKIND_COCLASS. These names shadow any global names defined within the type information. The members of TKIND_ENUM, TKIND_MODULE, and TKIND_COCLASS types marked as Application objects can be directly bound to from <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> without specifying the name of the module.</para>
            <para><a href="https://docs.microsoft.com/windows/desktop/api/oaidl/nf-oaidl-itypecomp-bind">ITypeComp::Bind</a> and <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-itypecomp-bindtype">ITypeComp::BindType</a> accept only unqualified names. <b>ITypeLib::GetTypeComp</b> returns a pointer to the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-itypecomp">ITypeComp</a> interface, which is then used to bind to global elements in the library. The names of some types (TKIND_ENUM, TKIND_MODULE, and TKIND_COCLASS) share the name space with variables, functions, constants, and enumerators. If a member requires qualification to differentiate it from other items in the name space, <b>GetTypeComp</b> can be called successively for each qualifier in order to bind to the desired member. This allows programming language compilers to access members of modules, enumerations, and coclasses, even though the member can't be bound to with a qualified name.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-gettypecomp#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetDocumentation(System.Int32,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)">
            <summary>Retrieves the documentation string for the library, the complete Help file name and path, and the context identifier for the library Help topic in the Help file.</summary>
            <param name="index">The index of the type description whose documentation is to be returned. If <i>index</i> is -1, then the documentation for the library itself is returned.</param>
            <param name="pBstrName">The name of the specified item. If the caller does not need the item name, then <i>pBstrName</i> can be null.</param>
            <param name="pBstrDocString">The documentation string for the specified item. If the caller does not need the documentation string, then <i>pBstrDocString</i> can be null..</param>
            <param name="pdwHelpContext">The Help context identifier (ID) associated with the specified item. If the caller does not need the Help context ID, then <i>pdwHelpContext</i> can be null.</param>
            <param name="pBstrHelpFile">The fully qualified name of the Help file. If the caller does not need the Help file name, then <i>pBstrHelpFile</i> can be null.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The caller should free the parameters <i>pBstrName</i>, <i>pBstrDocString</i>, and <i>pBstrHelpFile</i>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.IsName(System.Span{System.Char}@,System.UInt32,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.IsName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.IsName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Foundation.BOOL*)">
            <summary>Indicates whether a passed-in string contains the name of a type or member described in the library.</summary>
            <param name="szNameBuf">The string to test. If this method is successful, <i>szNameBuf</i> is modified to match the case (capitalization) found in the type library.</param>
            <param name="lHashVal">The hash value of <i>szNameBuf</i>.</param>
            <param name="pfName">True if <i>szNameBuf</i> was found in the type library; otherwise false.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-isname">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.FindName(System.Span{System.Char}@,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,System.Int32*,System.UInt16@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.FindName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,System.Int32*,System.UInt16*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.FindName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,System.Int32*,System.UInt16*)">
            <summary>Finds occurrences of a type description in a type library. This may be used to quickly verify that a name exists in a type library.</summary>
            <param name="szNameBuf">The name to search for.</param>
            <param name="lHashVal">A hash value to speed up the search, computed by the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-lhashvalofnamesys">LHashValOfNameSys</a> function. If <i>lHashVal</i> = 0, a value is computed.</param>
            <param name="ppTInfo">An array of pointers to the type descriptions that contain the name specified in <i>szNameBuf</i>. This parameter cannot be null.</param>
            <param name="rgMemId">An array of the found items; <i>rgMemId</i>[<i>i</i>] is the MEMBERID that indexes into the type description specified by <i>ppTInfo</i>[<i>i</i>]. This parameter cannot be null.</param>
            <param name="pcFound">
            <para>On entry, indicates how many instances to look for. For example, *<i>pcFound</i> = 1 can be called to find the first occurrence. The search stops when one is found. On exit, indicates the number of instances that were found. If the in and out values of *<i>pcFound</i> are identical, there may be more type descriptions that contain the name.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-findname#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>Passing *<i>pcFound</i> = <i>n</i> indicates that there is enough room in the <i>ppTInfo</i> and <i>rgMemId</i> arrays for <i>n</i> (<i>ptinfo</i>, <i>memid</i>) pairs. The function returns MEMBERID_NIL in <i>rgMemId</i>[<i>i</i>], if the name in <i>szNameBuf</i> is the name of the type information in <i>ppTInfo</i>[<i>i</i>].</remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.ReleaseTLibAttr(Windows.Win32.System.Com.TLIBATTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.ReleaseTLibAttr(Windows.Win32.System.Com.TLIBATTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Com.ITypeLib.ReleaseTLibAttr(Windows.Win32.System.Com.TLIBATTR*)">
            <summary>Releases the TLIBATTR originally obtained from GetLibAttr.</summary>
            <param name="pTLibAttr">The TLIBATTR to be freed.</param>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-itypelib-releasetlibattr">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.ITypeLib.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{00020402-0000-0000-c000-000000000046}</value>
        </member>
        <member name="M:Windows.Win32.System.Com.IUnknown.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.IUnknown.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Windows.Win32.System.Com.IUnknown.QueryInterface(System.Guid*,System.Void**)" -->
        <member name="M:Windows.Win32.System.Com.IUnknown.AddRef">
            <summary>Increments the reference count for an interface pointer to a COM object. You should call this method whenever you make a copy of an interface pointer.</summary>
            <returns>The method returns the new reference count. This value is intended to be used only for test purposes.</returns>
            <remarks>
            <para>A COM object uses a per-interface reference-counting mechanism to ensure that the object doesn't outlive references to it. You use **AddRef** to stabilize a copy of an interface pointer. It can also be called when the life of a cloned pointer must extend beyond the lifetime of the original pointer. The cloned pointer must be released by calling [IUnknown::Release](/windows/desktop/api/unknwn/nf-unknwn-iunknown-queryinterface(refiid_void)) on it. The internal reference counter that **AddRef** maintains should be a 32-bit unsigned integer.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/unknwn/nf-unknwn-iunknown-addref#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Com.IUnknown.Release">
            <summary>Decrements the reference count for an interface on a COM object.</summary>
            <returns>The method returns the new reference count. This value is intended to be used only for test purposes.</returns>
            <remarks>
            <para>When the reference count on an object reaches zero, **Release** must cause the interface pointer to free itself. When the released pointer is the only (formerly) outstanding reference to an object (whether the object supports single or multiple interfaces), the implementation must free the object. Note that aggregation of objects restricts the ability to recover interface pointers.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/unknwn/nf-unknwn-iunknown-release#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.IUnknown.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{00000000-0000-0000-c000-000000000046}</value>
        </member>
        <member name="T:Windows.Win32.System.Com.REGCLS">
            <summary>Controls the type of connections to a class object.</summary>
            <remarks>
            <para>In <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-coregisterclassobject">CoRegisterClassObject</a>, members of both the <b>REGCLS</b> and the <a href="https://docs.microsoft.com/windows/desktop/api/wtypesbase/ne-wtypesbase-clsctx">CLSCTX</a> enumerations, taken together, determine how the class object is registered.</para>
            <para>An EXE surrogate (in which DLL servers are run) calls <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-coregisterclassobject">CoRegisterClassObject</a> to register a class factory using a new <b>REGCLS</b> value, REGCLS_SURROGATE. All class factories for DLL surrogates should be registered with REGCLS_SURROGATE set. Do not set REGCLS_SINGLUSE or REGCLS_MULTIPLEUSE when you register a surrogate for DLL servers. The following table summarizes the allowable <b>REGCLS</b> value combinations and the object registrations affected by the combinations. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/combaseapi/ne-combaseapi-regcls#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.REGCLS.REGCLS_SINGLEUSE">
            <summary>After an application is connected to a class object with <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cogetclassobject">CoGetClassObject</a>, the class object is removed from public view so that no other applications can connect to it. This value is commonly used for single document interface (SDI) applications. Specifying this value does not affect the responsibility of the object application to call <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-corevokeclassobject">CoRevokeClassObject</a>; it must always call <b>CoRevokeClassObject</b> when it is finished with an object class.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.REGCLS.REGCLS_MULTIPLEUSE">
            <summary>Multiple applications can connect to the class object through calls to <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cogetclassobject">CoGetClassObject</a>. If both the REGCLS_MULTIPLEUSE and CLSCTX_LOCAL_SERVER are set in a call to <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-coregisterclassobject">CoRegisterClassObject</a>, the class object is also automatically registered as an in-process server, whether CLSCTX_INPROC_SERVER is explicitly set.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.REGCLS.REGCLS_MULTI_SEPARATE">
            <summary>
            <para>Useful for registering separate CLSCTX_LOCAL_SERVER and CLSCTX_INPROC_SERVER class factories through calls to <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-cogetclassobject">CoGetClassObject</a>. If REGCLS_MULTI_SEPARATE is set, each execution context must be set separately; <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-coregisterclassobject">CoRegisterClassObject</a> does not automatically register an out-of-process server (for which CLSCTX_LOCAL_SERVER is set) as an in-process server. This allows the EXE to create multiple instances of the object for in-process needs, such as self embeddings, without disturbing its CLSCTX_LOCAL_SERVER registration. If an EXE registers a REGCLS_MULTI_SEPARATE class factory and a CLSCTX_INPROC_SERVER class factory, instance creation calls that specify CLSCTX_INPROC_SERVER in the <a href="https://docs.microsoft.com/windows/desktop/api/wtypesbase/ne-wtypesbase-clsctx">CLSCTX</a> parameter executed by the EXE would be satisfied locally without approaching the SCM. This mechanism is useful when the EXE uses functions such as <a href="https://docs.microsoft.com/windows/desktop/api/ole/nf-ole-olecreate">OleCreate</a> and <a href="https://docs.microsoft.com/windows/desktop/api/ole2/nf-ole2-oleload">OleLoad</a> to create embeddings, but at the same does not wish to launch a new instance of itself for the self-embedding case. The distinction is important for embeddings because the default handler aggregates the proxy manager by default and the application should override this default behavior by calling <a href="https://docs.microsoft.com/windows/desktop/api/ole2/nf-ole2-olecreateembeddinghelper">OleCreateEmbeddingHelper</a> for the self-embedding case. If your application need not distinguish between the local and inproc case, you need not register your class factory using REGCLS_MULTI_SEPARATE. In fact, the application incurs an extra network round trip to the SCM when it registers its MULTIPLEUSE class factory as MULTI_SEPARATE and does not register another class factory as INPROC_SERVER.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/combaseapi/ne-combaseapi-regcls#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.REGCLS.REGCLS_SUSPENDED">
            <summary>
            <para>Suspends registration and activation requests for the specified CLSID until there is a call to <a href="https://docs.microsoft.com/windows/desktop/api/combaseapi/nf-combaseapi-coresumeclassobjects">CoResumeClassObjects</a>. This is used typically to register the CLSIDs for servers that can register multiple class objects to reduce the overall registration time, and thus the server application startup time, by making a single call to the SCM, no matter how many CLSIDs are registered for the server. <div class="alert"><b>Note</b>  This flag prevents COM activation errors from a possible race condition between an application shutting down and that application attempting to register a COM class.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/combaseapi/ne-combaseapi-regcls#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.REGCLS.REGCLS_SURROGATE">
            <summary>The class object is a surrogate process used to run DLL servers. The class factory registered by the surrogate process is not the actual class factory implemented by the DLL server, but a generic class factory implemented by the surrogate. This generic class factory delegates instance creation and marshaling to the class factory of the DLL server running in the surrogate. For further information on DLL surrogates, see the <a href="https://docs.microsoft.com/windows/desktop/com/dllsurrogate">DllSurrogate</a> registry value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.REGCLS.REGCLS_AGILE">
            <summary>
            <para>The class object aggregates the free-threaded marshaler and will be made visible to all inproc apartments. Can be used together with other flags. For example, REGCLS_AGILE | REGCLS_MULTIPLEUSE to register a class object that can be used multiple times from different apartments. Without other flags, behavior will retain REGCLS_SINGLEUSE semantics in that only one instance can be generated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/combaseapi/ne-combaseapi-regcls#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.System.Com.SAFEARRAY">
            <summary>Represents a safe array.</summary>
            <remarks>
            <para>The array <b>rgsabound</b> is stored with the left-most dimension in rgsabound[0] and the right-most dimension in <c>rgsabound[cDims - 1]</c>. If an array was specified in a C-like syntax as a [2][5], it would have two elements in the <b>rgsabound</b> vector. Element 0 has an <b>lLbound</b> of 0 and a <b>cElements</b> of 2. Element 1 has an <b>lLbound</b> of 0 and a <b>cElements</b> of 5.</para>
            <para>The <b>fFeatures</b> flags describe attributes of an array that can affect how the array is released. The <b>fFeatures</b> field describes what type of data is stored in the <b>SAFEARRAY</b> and how the array is allocated. This allows freeing the array without referencing its containing variant.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-safearray#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.cDims">
            <summary>The number of dimensions.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.fFeatures">
            <summary>
            <para>Flags. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-safearray#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.cbElements">
            <summary>The size of an array element.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.cLocks">
            <summary>The number of times the array has been locked without a corresponding unlock.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.pvData">
            <summary>The data.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAY.rgsabound">
            <summary>One bound for each dimension.</summary>
        </member>
        <member name="M:Windows.Win32.System.Com.SAFEARRAY.SizeOf(System.Int32)">
            <summary>Computes the amount of memory that must be allocated to store this struct, including the specified number of elements in the variable length inline array at the end.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.SAFEARRAYBOUND">
            <summary>Represents the bounds of one dimension of the array.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-safearraybound">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAYBOUND.cElements">
            <summary>The number of elements in the dimension.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SAFEARRAYBOUND.lLbound">
            <summary>The lower bound of the dimension.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.SYSKIND">
            <summary>Identifies the target operating system platform.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-syskind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.SYSKIND.SYS_WIN16">
            <summary>The target operating system for the type library is 16-bit Windows. By default, data members are packed.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SYSKIND.SYS_WIN32">
            <summary>The target operating system for the type library is 32-bit Windows. By default, data members are naturally aligned (for example, 2-byte integers are aligned on even-byte boundaries; 4-byte integers are aligned on quad-word boundaries, and so on).</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SYSKIND.SYS_MAC">
            <summary>The target operating system for the type library is Apple Macintosh. By default, all data members are aligned on even-byte boundaries.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.SYSKIND.SYS_WIN64">
            <summary>The target operating system for the type library is 64-bit Windows.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.TLIBATTR">
            <summary>Contains information about a type library. Information from this structure is used to identify the type library and to provide national language support for member names.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-tlibattr">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.guid">
            <summary>The globally unique identifier.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.lcid">
            <summary>The locale identifier.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.syskind">
            <summary>The target hardware platform.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.wMajorVerNum">
            <summary>The major version number.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.wMinorVerNum">
            <summary>The minor version number.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TLIBATTR.wLibFlags">
            <summary>The library flags.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.TYPEATTR">
            <summary>Contains attributes of a type.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-typeattr">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.guid">
            <summary>The GUID of the type information.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.lcid">
            <summary>The locale of member names and documentation strings.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.dwReserved">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.memidConstructor">
            <summary>The constructor ID, or MEMBERID_NIL if none.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.memidDestructor">
            <summary>The destructor ID, or MEMBERID_NIL if none.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.lpstrSchema">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cbSizeInstance">
            <summary>The size of an instance of this type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.typekind">
            <summary>The kind of type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cFuncs">
            <summary>The number of functions.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cVars">
            <summary>The number of variables or data members.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cImplTypes">
            <summary>The number of implemented interfaces.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cbSizeVft">
            <summary>The size of this type's VTBL.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.cbAlignment">
            <summary>The byte alignment for an instance of this type. A value of 0 indicates alignment on the 64K boundary; 1 indicates no special alignment. For other values, <i>n</i> indicates aligned on byte <i>n</i>.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.wTypeFlags">
            <summary>The type flags. See <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ne-oaidl-typeflags">TYPEFLAGS</a>.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.wMajorVerNum">
            <summary>The major version number.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.wMinorVerNum">
            <summary>The minor version number.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.tdescAlias">
            <summary>If <b>typekind</b> is TKIND_ALIAS, specifies the type for which this type is an alias.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEATTR.idldescType">
            <summary>The IDL attributes of the described type.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.TYPEDESC">
            <summary>Describes the type of a variable, the return type of a function, or the type of a function parameter.</summary>
            <remarks>If the variable is VT_SAFEARRAY or VT_PTR, the union portion of the TYPEDESC contains a pointer to a TYPEDESC that specifies the element type.</remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEDESC.vt">
            <summary>The variant type.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.TYPEKIND">
            <summary>Specifies a type.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-typekind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_ENUM">
            <summary>A set of enumerators.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_RECORD">
            <summary>A structure with no methods.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_MODULE">
            <summary>A module that can only have static functions and data (for example, a DLL).</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_INTERFACE">
            <summary>A type that has virtual and pure functions.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_DISPATCH">
            <summary>A set of methods and properties that are accessible through <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a>. By default, dual interfaces return TKIND_DISPATCH.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_COCLASS">
            <summary>A set of implemented component object interfaces.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_ALIAS">
            <summary>A type that is an alias for another type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_UNION">
            <summary>A union, all of whose members have an offset of zero.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.TYPEKIND.TKIND_MAX">
            <summary>End of enum marker.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.VARDESC">
            <summary>Describes a variable, constant, or data member.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-vardesc">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.VARDESC.memid">
            <summary>The member ID.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARDESC.lpstrSchema">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARDESC.elemdescVar">
            <summary>The variable type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARDESC.wVarFlags">
            <summary>The variable flags. See <a href="https://docs.microsoft.com/windows/desktop/api/oaidl/ne-oaidl-varflags">VARFLAGS</a>.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARDESC.varkind">
            <summary>The variable type.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.VARFLAGS">
            <summary>Specifies variable flags.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-varflags">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FREADONLY">
            <summary>Assignment to the variable should not be allowed.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FSOURCE">
            <summary>The variable returns an object that is a source of events.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FBINDABLE">
            <summary>The variable supports data binding.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FREQUESTEDIT">
            <summary>When set, any attempt to directly change the property results in a call to <b>IPropertyNotifySink::OnRequestEdit</b>. The implementation of <b>OnRequestEdit</b> determines if the change is accepted.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FDISPLAYBIND">
            <summary>The variable is displayed to the user as bindable. VARFLAG_FBINDABLE must also be set.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FDEFAULTBIND">
            <summary>The variable is the single property that best represents the object. Only one variable in type information can have this attribute.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FHIDDEN">
            <summary>The variable should not be displayed to the user in a browser, although it exists and is bindable.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FRESTRICTED">
            <summary>The variable should not be accessible from macro languages. This flag is intended for system-level variables or variables that you do not want type browsers to display.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FDEFAULTCOLLELEM">
            <summary>Permits an optimization in which the compiler looks for a member named "xyz" on the type of abc. If such a member is found and is flagged as an accessor function for an element of the default collection, then a call is generated to that member function. Permitted on members in dispinterfaces and interfaces; not permitted on modules.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FUIDEFAULT">
            <summary>The variable is the default display in the user interface.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FNONBROWSABLE">
            <summary>The variable appears in an object browser, but not in a properties browser.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FREPLACEABLE">
            <summary>Tags the interface as having default behaviors.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARFLAGS.VARFLAG_FIMMEDIATEBIND">
            <summary>The variable is mapped as individual bindable properties.</summary>
        </member>
        <member name="T:Windows.Win32.System.Com.VARKIND">
            <summary>Specifies the variable type.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ne-oaidl-varkind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Com.VARKIND.VAR_PERINSTANCE">
            <summary>The variable is a field or member of the type. It exists at a fixed offset within each instance of the type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARKIND.VAR_STATIC">
            <summary>There is only one instance of the variable.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARKIND.VAR_CONST">
            <summary>The VARDESC describes a symbolic constant. There is no memory associated with it.</summary>
        </member>
        <member name="F:Windows.Win32.System.Com.VARKIND.VAR_DISPATCH">
            <summary>The variable can only be accessed through <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-idispatch-invoke">IDispatch::Invoke</a>.</summary>
        </member>
        <member name="T:Windows.Win32.System.Ole.ARRAYDESC">
            <summary>Describes an array, its element type, and its dimension.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-arraydesc">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Ole.ARRAYDESC.tdescElem">
            <summary>The element type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Ole.ARRAYDESC.cDims">
            <summary>The dimension count.</summary>
        </member>
        <member name="F:Windows.Win32.System.Ole.ARRAYDESC.rgbounds">
            <summary>A variable-length array containing one element for each dimension.</summary>
        </member>
        <member name="M:Windows.Win32.System.Ole.ARRAYDESC.SizeOf(System.Int32)">
            <summary>Computes the amount of memory that must be allocated to store this struct, including the specified number of elements in the variable length inline array at the end.</summary>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordInit(System.Void*)">
            <summary>Initializes a new instance of a record.</summary>
            <param name="pvNew">An instance of a record.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The caller must allocate the memory of the record by its appropriate size using the <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-getsize">GetSize</a> method. <b>RecordInit</b> sets all contents of the record to 0 and the record should hold no resources.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-recordinit#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordClear(System.Void*)">
            <summary>Releases object references and other values of a record without deallocating the record.</summary>
            <param name="pvExisting">The record to be cleared.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks><b>RecordClear</b> releases memory blocks held by VT_PTR or VT_SAFEARRAY instance fields. The caller needs to free the instance fields memory, <b>RecordClear</b> will do nothing if there are no resources held.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordCopy(System.Void*,System.Void*)">
            <summary>Copies an existing record into the passed in buffer.</summary>
            <param name="pvExisting">The current record instance.</param>
            <param name="pvNew">The destination where the record will be copied.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks><b>RecordCopy</b> will release the resources in the destination first. The caller is responsible for allocating sufficient memory in the destination by calling <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-getsize">GetSize</a> or  <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recordcreate">RecordCreate</a>. If <b>RecordCopy</b> fails to copy any of the fields then all fields will be cleared, as though <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recordclear">RecordClear</a> had been called.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetGuid(System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetGuid(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetGuid(System.Guid*)">
            <summary>Gets the GUID of the record type.</summary>
            <param name="pguid">The class GUID of the TypeInfo that describes the UDT.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getguid">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetName(Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetName(Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetName(Windows.Win32.Foundation.BSTR*)">
            <summary>Gets the name of the record type.</summary>
            <param name="pbstrName">The name.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The caller must free the BSTR by calling <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-sysfreestring">SysFreeString</a>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetSize(System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetSize(System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetSize(System.UInt32*)">
            <summary>Gets the number of bytes of memory necessary to hold the record instance.</summary>
            <param name="pcbSize">The size of a record instance, in bytes.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getsize">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetTypeInfo(Windows.Win32.System.Com.ITypeInfo**)">
            <summary>Retrieves the type information that describes a UDT or safearray of UDTs.</summary>
            <param name="ppTypeInfo">The information type of the record.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks><b>AddRef</b> is called on the pointer <i>ppTypeInfo</i>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetField(System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetField(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetField(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)">
            <summary>Returns a pointer to the VARIANT containing the value of a given field name.</summary>
            <param name="pvData">The instance of a record.</param>
            <param name="szFieldName">The field name.</param>
            <param name="pvarField">The VARIANT that you want to hold the value of the field name, <i>szFieldName</i>. On return, places a copy of the field's value in the variant.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The VARIANT that you pass in contains a copy of the field's value upon return. If you modify the VARIANT then the underlying record field does not change. The caller allocates memory of the VARIANT. The method <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-variantclear">VariantClear</a> is called for <i>pvarField</i> before copying.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getfield#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNoCopy(System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNoCopy(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNoCopy(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*,System.Void**)">
            <summary>Returns a pointer to the value of a given field name without copying the value and allocating resources.</summary>
            <param name="pvData">The instance of a record.</param>
            <param name="szFieldName">The name of the field.</param>
            <param name="pvarField">The VARIANT that will contain the UDT upon return.</param>
            <param name="ppvDataCArray">Receives the value of the field upon return.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>Upon return, the VARIANT you pass contains a direct pointer to the record's field, <i>ppvDataCArray</i>. If you modify the VARIANT, then the underlying record field will change. The caller allocates memory of the VARIANT, but does not own the memory so cannot free <i>pvarField</i>. This method calls <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-variantclear">VariantClear</a> for <i>pvarField</i> before filling in the requested field.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getfieldnocopy#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.PutField(System.UInt32,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.PutField(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.PutField(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)">
            <summary>Puts a variant into a field.</summary>
            <param name="wFlags">
            <para>The only legal values for the wFlags parameter is INVOKE_PROPERTYPUT or INVOKE_PROPERTYPUTREF. If INVOKE_PROPERTYPUTREF is passed in then <b>PutField</b> just assigns the value of the variant that is passed in to the field using normal coercion rules. If INVOKE_PROPERTYPUT is passed in then specific rules apply. If the field is declared as a class that derives from <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> and the field's value is NULL then an error will be returned. If the field's value is not NULL then the variant will be passed to the default property supported by the object referenced by the field. If the field is not declared as a class derived from <b>IDispatch</b> then an error will be returned. If the field is declared as a variant of type VT_Dispatch then the default value of the object is assigned to the field. Otherwise, the variant's value is assigned to the field.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-putfield#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <param name="pvData">The pointer to an instance of the record.</param>
            <param name="szFieldName">The name of the field of the record.</param>
            <param name="pvarField">The pointer to the variant.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-putfield">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.PutFieldNoCopy(System.UInt32,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.PutFieldNoCopy(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.PutFieldNoCopy(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)">
            <summary>Passes ownership of the data to the assigned field by placing the actual data into the field.</summary>
            <param name="wFlags">The only legal values for the wFlags parameter is INVOKE_PROPERTYPUT or INVOKE_PROPERTYPUTREF.</param>
            <param name="pvData">An instance of the record described by <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-irecordinfo">IRecordInfo</a>.</param>
            <param name="szFieldName">The name of the field of the record.</param>
            <param name="pvarField">The variant to be put into the field.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-putfieldnocopy">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNames(System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNames(System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.GetFieldNames(System.UInt32*,Windows.Win32.Foundation.BSTR*)">
            <summary>Gets the names of the fields of the record.</summary>
            <param name="pcNames">The number of names to return.</param>
            <param name="rgBstrNames">
            <para>The name of the array of type BSTR. If the <i>rgBstrNames</i> parameter is NULL, then <i>pcNames</i> is returned with the number of field names. It the <i>rgBstrNames</i> parameter is not NULL, then the string names contained in <i>rgBstrNames</i> are returned. If the number of names in <i>pcNames</i> and <i>rgBstrNames</i> are not equal then the lesser number of the two is the number of returned field names. The caller needs to free the BSTRs inside the array returned in <i>rgBstrNames</i>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getfieldnames#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para>The caller should allocate memory for the array of BSTRs. If the array is larger than needed, set the unused portion to 0. On return, the caller will need to free each contained BSTR using <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oleauto/nf-oleauto-sysfreestring">SysFreeString</a>. In case of out of memory, <i>pcNames</i> points to error code.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-getfieldnames#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.IsMatchingType(Windows.Win32.System.Ole.IRecordInfo*)">
            <summary>Determines whether the record that is passed in matches that of the current record information.</summary>
            <param name="pRecordInfo">The information of the record.</param>
            <returns>
            <para></para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-ismatchingtype">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordCreate">
            <summary>Allocates memory for a new record, initializes the instance and returns a pointer to the record.</summary>
            <returns>This method returns a pointer to the created record.</returns>
            <remarks>
            <para>The memory is set to zeros before it is returned. The records created must be freed by calling <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recorddestroy">RecordDestroy</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-recordcreate#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordCreateCopy(System.Void*,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.RecordCreateCopy(System.Void*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordCreateCopy(System.Void*,System.Void**)">
            <summary>Creates a copy of an instance of a record to the specified location.</summary>
            <param name="pvSource">An instance of the record to be copied.</param>
            <param name="ppvDest">The new record with data copied from <i>pvSource</i>.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>The records created must be freed by calling <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recorddestroy">RecordDestroy</a>.</remarks>
        </member>
        <member name="M:Windows.Win32.System.Ole.IRecordInfo.RecordDestroy(System.Void*)">
            <summary>Releases the resources and deallocates the memory of the record.</summary>
            <param name="pvRecord">An instance of the record to be destroyed.</param>
            <returns>
            <para>This method can return one of these values. </para>
            <para>This doc was truncated.</para>
            </returns>
            <remarks>
            <para><a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recordclear">RecordClear</a> is called to release the resources held by the instance of a record without deallocating memory. <div class="alert"><b>Note</b>  This method can only be called on records allocated through <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recordcreate">RecordCreate</a> and <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nf-oaidl-irecordinfo-recordcreatecopy">RecordCreateCopy</a>. If you allocate the record yourself, you cannot call this method.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/nf-oaidl-irecordinfo-recorddestroy#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Ole.IRecordInfo.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{0000002f-0000-0000-c000-000000000046}</value>
        </member>
        <member name="T:Windows.Win32.System.Ole.PARAMDESC">
            <summary>Contains information needed for transferring a structure element, parameter, or function return value between processes.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-paramdesc">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Ole.PARAMDESC.pparamdescex">
            <summary>The default value for the parameter, if PARAMFLAG_FHASDEFAULT is specified in <b>wParamFlags</b>.</summary>
        </member>
        <member name="F:Windows.Win32.System.Ole.PARAMDESC.wParamFlags">
            <summary>The parameter flags. See <a href="https://docs.microsoft.com/previous-versions/windows/desktop/automat/paramflags">PARAMFLAG Constants</a>.</summary>
        </member>
        <member name="T:Windows.Win32.System.Ole.PARAMDESCEX">
            <summary>Contains information about the default value of a parameter.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-paramdescex">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Ole.PARAMDESCEX.cBytes">
            <summary>The size of the structure.</summary>
        </member>
        <member name="F:Windows.Win32.System.Ole.PARAMDESCEX.varDefaultValue">
            <summary>The default value of the parameter.</summary>
        </member>
        <member name="T:Windows.Win32.System.Variant.VARENUM">
            <summary>Specifies the variant types.</summary>
            <remarks>
            <para>The following table shows where these values can be used. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/wtypes/ne-wtypes-varenum#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_EMPTY">
            <summary>Not specified.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_NULL">
            <summary>Null.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_I2">
            <summary>A 2-byte integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_I4">
            <summary>A 4-byte integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_R4">
            <summary>A 4-byte real.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_R8">
            <summary>An 8-byte real.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_CY">
            <summary>Currency.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_DATE">
            <summary>A date.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BSTR">
            <summary>A string.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_DISPATCH">
            <summary>An <a href="https://docs.microsoft.com/previous-versions/windows/desktop/api/oaidl/nn-oaidl-idispatch">IDispatch</a> pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_ERROR">
            <summary>An SCODE value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BOOL">
            <summary>A Boolean value. True is -1 and false is 0.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_VARIANT">
            <summary>A variant pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UNKNOWN">
            <summary>An <a href="https://docs.microsoft.com/windows/desktop/api/unknwn/nn-unknwn-iunknown">IUnknown</a> pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_DECIMAL">
            <summary>A 16-byte fixed-pointer value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_I1">
            <summary>A character.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UI1">
            <summary>An unsigned character.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UI2">
            <summary>An unsigned short.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UI4">
            <summary>An unsigned long.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_I8">
            <summary>A 64-bit integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UI8">
            <summary>A 64-bit unsigned integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_INT">
            <summary>An integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UINT">
            <summary>An unsigned integer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_VOID">
            <summary>A C-style void.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_HRESULT">
            <summary>An HRESULT value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_PTR">
            <summary>A pointer type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_SAFEARRAY">
            <summary>A safe array. Use VT_ARRAY in VARIANT.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_CARRAY">
            <summary>A C-style array.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_USERDEFINED">
            <summary>A user-defined type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_LPSTR">
            <summary>A null-terminated string.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_LPWSTR">
            <summary>A wide null-terminated string.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_RECORD">
            <summary>A user-defined type.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_INT_PTR">
            <summary>A signed machine register size width.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_UINT_PTR">
            <summary>An unsigned machine register size width.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_FILETIME">
            <summary>A <a href="https://docs.microsoft.com/windows/desktop/api/minwinbase/ns-minwinbase-filetime">FILETIME</a> value.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BLOB">
            <summary>Length-prefixed bytes.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_STREAM">
            <summary>The name of the stream follows.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_STORAGE">
            <summary>The name of the storage follows.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_STREAMED_OBJECT">
            <summary>The stream contains an object.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_STORED_OBJECT">
            <summary>The storage contains an object.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BLOB_OBJECT">
            <summary>The blob contains an object.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_CF">
            <summary>A clipboard format.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_CLSID">
            <summary>A class ID.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_VERSIONED_STREAM">
            <summary>A stream with a GUID version.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BSTR_BLOB">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_VECTOR">
            <summary>A simple counted array.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_ARRAY">
            <summary>A SAFEARRAY pointer.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_BYREF">
            <summary>A void pointer for local use.</summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_RESERVED">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_ILLEGAL">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_ILLEGALMASKED">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.System.Variant.VARENUM.VT_TYPEMASK">
            <summary></summary>
        </member>
        <member name="T:Windows.Win32.System.Variant.VARIANT">
            <summary>VARIANTARG describes arguments passed within DISPPARAMS, and VARIANT to specify variant data that cannot be passed by reference.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/oaidl/ns-oaidl-variant">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="P:Windows.Win32.Foundation.BSTR.Length">
            <summary>
            Gets the length of the BSTR in characters.
            </summary>
        </member>
        <member name="T:Windows.Win32.Foundation.COLORREF">
            <summary>The COLORREF value is used to specify an RGB color.</summary>
            <remarks>
            <para>When specifying an explicit [RGB](/windows/desktop/api/Wingdi/nf-wingdi-rgb) color, the **COLORREF** value has the following hexadecimal form: `0x00bbggrr` The low-order byte contains a value for the relative intensity of red; the second byte contains a value for green; and the third byte contains a value for blue. The high-order byte must be zero. The maximum value for a single byte is 0xFF. To create a **COLORREF** color value, use the [RGB](/windows/desktop/api/Wingdi/nf-wingdi-rgb) macro. To extract the individual values for the red, green, and blue components of a color value, use the [**GetRValue**](/windows/desktop/api/Wingdi/nf-wingdi-getrvalue), [GetGValue](/windows/desktop/api/Wingdi/nf-wingdi-getgvalue), and [GetBValue](/windows/desktop/api/Wingdi/nf-wingdi-getbvalue) macros, respectively.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/gdi/colorref#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="T:Windows.Win32.Foundation.DECIMAL">
            <summary>The DECIMAL structure represents a decimal data type that provides a sign and scale for a number.</summary>
            <remarks></remarks>
        </member>
        <member name="F:Windows.Win32.Foundation.DECIMAL.wReserved">
            <summary>Reserved.</summary>
        </member>
        <member name="F:Windows.Win32.Foundation.DECIMAL.Hi32">
            <summary>The high 32 bits of the number.</summary>
        </member>
        <member name="T:Windows.Win32.Foundation.HRESULT">
            <remarks>
            <para>The **HRESULT** data type is the same as the [SCODE](scode.md) data type. An **HRESULT** value consists of the following fields: - A 1-bit code indicating severity, where zero represents success and 1 represents failure. - A 4-bit reserved value. - An 11-bit code indicating responsibility for the error or warning, also known as a facility code. - A 16-bit code describing the error or warning. Most MAPI interface methods and functions return **HRESULT** values to provide detailed cause formation. **HRESULT** values are also used widely in OLE interface methods. OLE provides several macros for converting between **HRESULT** values and **SCODE** values, another common data type for error handling. > [!NOTE] > In 64-bit MAPI, **HRESULT** is still a 32-bit value. For information about the OLE use of **HRESULT** values, see the  *OLE Programmer's Reference*. For more information about the use of these values in MAPI, see [Error Handling](error-handling-in-mapi.md) and any of the following interface methods: [IABLogon::GetLastError](iablogon-getlasterror.md) [IMAPISupport::GetLastError](imapisupport-getlasterror.md) [IMAPIControl::GetLastError](imapicontrol-getlasterror.md) [IMAPITable::GetLastError](imapitable-getlasterror.md) [IMAPIProp::GetLastError](imapiprop-getlasterror.md) [IMAPIViewAdviseSink::OnPrint](imapiviewadvisesink-onprint.md)</para>
            <para><see href="https://learn.microsoft.com/office/client-developer/outlook/mapi/hresult#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.Foundation.HRESULT.ThrowOnFailure(System.IntPtr)">
            <inheritdoc cref="M:System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(System.Int32,System.IntPtr)" />
            <param name="errorInfo">
            A pointer to the IErrorInfo interface that provides more information about the
            error. You can specify <see cref="F:System.IntPtr.Zero"/> to use the current IErrorInfo interface, or
            <c>new IntPtr(-1)</c> to ignore the current IErrorInfo interface and construct the exception
            just from the error code.
            </param>
            <returns><see langword="this"/> <see cref="T:Windows.Win32.Foundation.HRESULT"/>, if it does not reflect an error.</returns>
            <seealso cref="M:System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(System.Int32,System.IntPtr)"/>
        </member>
        <member name="F:Windows.Win32.Foundation.HRESULT.S_OK">
            <summary>Documentation varies per use. Refer to each: <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnconnectioncontextevents-onsetprovisionedcontextcomplete">IMbnConnectionContextEvents.OnSetProvisionedContextComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnconnectionevents-onconnectcomplete">IMbnConnectionEvents.OnConnectComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnpinevents-onchangecomplete">IMbnPinEvents.OnChangeComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnpinevents-ondisablecomplete">IMbnPinEvents.OnDisableComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnpinevents-onenablecomplete">IMbnPinEvents.OnEnableComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnpinevents-onentercomplete">IMbnPinEvents.OnEnterComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnpinevents-onunblockcomplete">IMbnPinEvents.OnUnblockComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnpinmanagerevents-ongetpinstatecomplete">IMbnPinManagerEvents.OnGetPinStateComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnradioevents-onsetsoftwareradiostatecomplete">IMbnRadioEvents.OnSetSoftwareRadioStateComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnserviceactivationevents-onactivationcomplete">IMbnServiceActivationEvents.OnActivationComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnsmsevents-onsetsmsconfigurationcomplete">IMbnSmsEvents.OnSetSmsConfigurationComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnsmsevents-onsmsdeletecomplete">IMbnSmsEvents.OnSmsDeleteComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnsmsevents-onsmsreadcomplete">IMbnSmsEvents.OnSmsReadComplete</see>, <see href="https://learn.microsoft.com/windows/win32/api/mbnapi/nf-mbnapi-imbnsmsevents-onsmssendcomplete">IMbnSmsEvents.OnSmsSendComplete</see>.</summary>
        </member>
        <member name="T:Windows.Win32.Foundation.PCSTR">
            <summary>
            A pointer to a null-terminated, constant, ANSI character string.
            </summary>
        </member>
        <member name="F:Windows.Win32.Foundation.PCSTR.Value">
            <summary>
            A pointer to the first character in the string. The content should be considered readonly, as it was typed as constant in the SDK.
            </summary>
        </member>
        <member name="P:Windows.Win32.Foundation.PCSTR.Length">
            <summary>
            Gets the number of characters up to the first null character (exclusive).
            </summary>
        </member>
        <member name="M:Windows.Win32.Foundation.PCSTR.ToString">
            <summary>
            Returns a <see langword="string"/> with a copy of this character array, decoding as UTF-8.
            </summary>
            <returns>A <see langword="string"/>, or <see langword="null"/> if <see cref="F:Windows.Win32.Foundation.PCSTR.Value"/> is <see langword="null"/>.</returns>
        </member>
        <member name="M:Windows.Win32.Foundation.PCSTR.AsSpan">
            <summary>
            Returns a span of the characters in this string, up to the first null character (exclusive).
            </summary>
        </member>
        <member name="T:Windows.Win32.Foundation.PCWSTR">
            <summary>
            A pointer to a null-terminated, constant character string.
            </summary>
        </member>
        <member name="F:Windows.Win32.Foundation.PCWSTR.Value">
            <summary>
            A pointer to the first character in the string. The content should be considered readonly, as it was typed as constant in the SDK.
            </summary>
        </member>
        <member name="P:Windows.Win32.Foundation.PCWSTR.Length">
            <summary>
            Gets the number of characters up to the first null character (exclusive).
            </summary>
        </member>
        <member name="M:Windows.Win32.Foundation.PCWSTR.ToString">
            <summary>
            Returns a <see langword="string"/> with a copy of this character array, up to the first null character (exclusive).
            </summary>
            <returns>A <see langword="string"/>, or <see langword="null"/> if <see cref="F:Windows.Win32.Foundation.PCWSTR.Value"/> is <see langword="null"/>.</returns>
        </member>
        <member name="M:Windows.Win32.Foundation.PCWSTR.AsSpan">
            <summary>
            Returns a span of the characters in this string, up to the first null character (exclusive).
            </summary>
        </member>
        <member name="M:Windows.Win32.Foundation.PSTR.ToString">
            <inheritdoc cref="M:Windows.Win32.Foundation.PCSTR.ToString"/>
        </member>
        <member name="P:Windows.Win32.Foundation.PSTR.Length">
            <inheritdoc cref="P:Windows.Win32.Foundation.PCSTR.Length"/>
        </member>
        <member name="M:Windows.Win32.Foundation.PSTR.AsSpan">
            <summary>
            Returns a span of the characters in this string, up to the first null character (exclusive).
            </summary>
        </member>
        <member name="M:Windows.Win32.Foundation.PWSTR.ToString">
            <inheritdoc cref="M:Windows.Win32.Foundation.PCWSTR.ToString"/>
        </member>
        <member name="P:Windows.Win32.Foundation.PWSTR.Length">
            <inheritdoc cref="P:Windows.Win32.Foundation.PCWSTR.Length"/>
        </member>
        <member name="M:Windows.Win32.Foundation.PWSTR.AsSpan">
            <summary>
            Returns a span of the characters in this string, up to the first null character (exclusive).
            </summary>
        </member>
        <member name="T:Windows.Win32.Foundation.RECT">
            <summary>The RECT structure defines a rectangle by the coordinates of its upper-left and lower-right corners.</summary>
            <remarks>The RECT structure is identical to the <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rectl">RECTL</a> structure.</remarks>
        </member>
        <member name="F:Windows.Win32.Foundation.RECT.left">
            <summary>Specifies the <i>x</i>-coordinate of the upper-left corner of the rectangle.</summary>
        </member>
        <member name="F:Windows.Win32.Foundation.RECT.top">
            <summary>Specifies the <i>y</i>-coordinate of the upper-left corner of the rectangle.</summary>
        </member>
        <member name="F:Windows.Win32.Foundation.RECT.right">
            <summary>Specifies the <i>x</i>-coordinate of the lower-right corner of the rectangle.</summary>
        </member>
        <member name="F:Windows.Win32.Foundation.RECT.bottom">
            <summary>Specifies the <i>y</i>-coordinate of the lower-right corner of the rectangle.</summary>
        </member>
        <member name="T:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW">
            <summary>Defines the initialization parameters passed to the window procedure of an application. These members are identical to the parameters of the CreateWindowEx function. (Unicode)</summary>
            <remarks>
            <para>Because the <b>lpszClass</b> member can contain a pointer to a local (and thus inaccessible) atom, do not obtain the class name by using this member. Use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getclassname">GetClassName</a> function instead. You should access the data represented by the <b>lpCreateParams</b> member using a pointer that has been declared using the <b>UNALIGNED</b> type, because the pointer may not be <b>DWORD</b> aligned. This is demonstrated in the following example:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.lpCreateParams">
            <summary>
            <para>Type: <b>LPVOID</b> Contains additional data which may be used to create the window. If the window is being created as a result of a call to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowa">CreateWindow</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createwindowexa">CreateWindowEx</a> function, this member contains the value of the <i>lpParam</i> parameter specified in the function call. If the window being created is a MDI client window, this member contains a pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-clientcreatestruct">CLIENTCREATESTRUCT</a> structure. If the window being created is a MDI child window, this member contains a pointer to an <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ns-winuser-mdicreatestructa">MDICREATESTRUCT</a> structure. If the window is being created from a dialog template, this member is the address of a <b>SHORT</b> value that specifies the size, in bytes, of the window creation data. The value is immediately followed by the creation data. For more information, see the following Remarks section.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.hInstance">
            <summary>
            <para>Type: <b>HINSTANCE</b> A handle to the module that owns the new window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.hMenu">
            <summary>
            <para>Type: <b>HMENU</b> A handle to the menu to be used by the new window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.hwndParent">
            <summary>
            <para>Type: <b>HWND</b> A handle to the parent window, if the window is a child window. If the window is owned, this member identifies the owner window. If the window is not a child or owned window, this member is <b>NULL</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.cy">
            <summary>
            <para>Type: <b>int</b> The height of the new window, in pixels.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.cx">
            <summary>
            <para>Type: <b>int</b> The width of the new window, in pixels.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.y">
            <summary>
            <para>Type: <b>int</b> The y-coordinate of the upper left corner of the new window. If the new window is a child window, coordinates are relative to the parent window. Otherwise, the coordinates are relative to the screen origin.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.x">
            <summary>
            <para>Type: <b>int</b> The x-coordinate of the upper left corner of the new window. If the new window is a child window, coordinates are relative to the parent window. Otherwise, the coordinates are relative to the screen origin.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.lpszName">
            <summary>
            <para>Type: <b>LPCTSTR</b> The name of the new window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.lpszClass">
            <summary>
            <para>Type: <b>LPCTSTR</b> A pointer to a null-terminated string or an atom that specifies the class name of the new window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.CREATESTRUCTW.dwExStyle">
            <summary>
            <para>Type: <b>DWORD</b> The extended window style for the new window. For a list of possible values, see  <a href="https://docs.microsoft.com/windows/desktop/winmsg/extended-window-styles">Extended Window Styles</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-createstructw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.UI.WindowsAndMessaging.MINMAXINFO">
            <summary>Contains information about a window's maximized size and position and its minimum and maximum tracking size.</summary>
            <remarks>For systems with multiple monitors, the <b>ptMaxSize</b> and <b>ptMaxPosition</b> members describe the maximized size and position of the window on the primary monitor, even if the window ultimately maximizes onto a secondary monitor. In that case, the window manager adjusts these values to compensate for differences between the primary monitor and the monitor that displays the window. Thus, if the user leaves <b>ptMaxSize</b> untouched, a window on a monitor larger than the primary monitor maximizes to the size of the larger monitor.</remarks>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.MINMAXINFO.ptReserved">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> Reserved; do not use.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-minmaxinfo#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.MINMAXINFO.ptMaxSize">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> The maximized width (<b>x</b> member) and the maximized height (<b>y</b> member) of the window. For top-level windows, this value is based on the width of the primary monitor.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-minmaxinfo#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.MINMAXINFO.ptMaxPosition">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> The position of the left side of the maximized window (<b>x</b> member) and the position of the top of the maximized window (<b>y</b> member). For top-level windows, this value is based on the position of the primary monitor.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-minmaxinfo#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.MINMAXINFO.ptMinTrackSize">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> The minimum tracking width (<b>x</b> member) and the minimum tracking height (<b>y</b> member) of the window. This value can be obtained programmatically from the system metrics <b>SM_CXMINTRACK</b> and <b>SM_CYMINTRACK</b> (see the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getsystemmetrics">GetSystemMetrics</a> function).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-minmaxinfo#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.MINMAXINFO.ptMaxTrackSize">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> The maximum tracking width (<b>x</b> member) and the maximum tracking height (<b>y</b> member) of the window. This value is based on the size of the virtual screen and can be obtained programmatically from the system metrics <b>SM_CXMAXTRACK</b> and <b>SM_CYMAXTRACK</b> (see the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getsystemmetrics">GetSystemMetrics</a> function).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-minmaxinfo#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.UI.WindowsAndMessaging.MSLLHOOKSTRUCT">
            <summary>Contains information about a low-level mouse input event.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-msllhookstruct">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.MSLLHOOKSTRUCT.pt">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> The x- and y-coordinates of the cursor, in <a href="https://docs.microsoft.com/windows/desktop/api/shellscalingapi/ne-shellscalingapi-process_dpi_awareness">per-monitor-aware</a> screen coordinates.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-msllhookstruct#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.MSLLHOOKSTRUCT.mouseData">
            <summary>
            <para>Type: <b>DWORD</b> If the message is <a href="https://docs.microsoft.com/windows/desktop/inputdev/wm-mousewheel">WM_MOUSEWHEEL</a>, the high-order word of this member is the wheel delta. The low-order word is reserved. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user. One wheel click is defined as <b>WHEEL_DELTA</b>, which is 120.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-msllhookstruct#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.MSLLHOOKSTRUCT.flags">
            <summary>
            <para>Type: <b>DWORD</b> The event-injected flags. An application can use the following values to test the flags. Testing LLMHF_INJECTED (bit 0) will tell you whether the event was injected. If it was, then testing LLMHF_LOWER_IL_INJECTED (bit 1) will tell you whether or not the event was injected from a process running at lower integrity level. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-msllhookstruct#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.MSLLHOOKSTRUCT.time">
            <summary>
            <para>Type: <b>DWORD</b> The time stamp for this message.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-msllhookstruct#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.MSLLHOOKSTRUCT.dwExtraInfo">
            <summary>
            <para>Type: <b>ULONG_PTR</b> Additional information associated with the message.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-msllhookstruct#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.UI.WindowsAndMessaging.WINDOWPOS">
            <summary>Contains information about the size and position of a window.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-windowpos">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWPOS.hwnd">
            <summary>
            <para>Type: <b>HWND</b> A handle to the window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-windowpos#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWPOS.hwndInsertAfter">
            <summary>
            <para>Type: <b>HWND</b> The position of the window in Z order (front-to-back position). This member can be a handle to the window behind which this window is placed, or can be one of the special values listed with the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-setwindowpos">SetWindowPos</a> function.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-windowpos#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWPOS.x">
            <summary>
            <para>Type: <b>int</b> The position of the left edge of the window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-windowpos#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWPOS.y">
            <summary>
            <para>Type: <b>int</b> The position of the top edge of the window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-windowpos#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWPOS.cx">
            <summary>
            <para>Type: <b>int</b> The window width, in pixels.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-windowpos#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWPOS.cy">
            <summary>
            <para>Type: <b>int</b> The window height, in pixels.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-windowpos#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WINDOWPOS.flags">
            <summary>Type: <b>UINT</b></summary>
        </member>
        <member name="T:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW">
            <summary>Contains window class information. (Unicode)</summary>
            <remarks>
            <para>> [!NOTE] > The winuser.h header defines WNDCLASSEX as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see [Conventions for Function Prototypes](/windows/win32/intl/conventions-for-function-prototypes).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.cbSize">
            <summary>
            <para>Type: <b>UINT</b> The size, in bytes, of this structure. Set this member to <c>sizeof(WNDCLASSEX)</c>. Be sure to set this member before calling the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getclassinfoexa">GetClassInfoEx</a> function.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.style">
            <summary>
            <para>Type: <b>UINT</b> The class style(s). This member can be any combination of the <a href="https://docs.microsoft.com/windows/win32/winmsg/window-class-styles">Class Styles</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.lpfnWndProc">
            <summary>
            <para>Type: <b>WNDPROC</b> A pointer to the window procedure. You must use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-callwindowproca">CallWindowProc</a> function to call the window procedure. For more information, see <a href="https://docs.microsoft.com/previous-versions/windows/desktop/legacy/ms633573(v=vs.85)">WindowProc</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.cbClsExtra">
            <summary>
            <para>Type: <b>int</b> The number of extra bytes to allocate following the window-class structure. The system initializes the bytes to zero.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.cbWndExtra">
            <summary>
            <para>Type: <b>int</b> The number of extra bytes to allocate following the window instance. The system initializes the bytes to zero. If an application uses <b>WNDCLASSEX</b> to register a dialog box created by using the <b>CLASS</b> directive in the resource file, it must set this member to <b>DLGWINDOWEXTRA</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.hInstance">
            <summary>
            <para>Type: <b>HINSTANCE</b> A handle to the instance that contains the window procedure for the class.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.hIcon">
            <summary>
            <para>Type: <b>HICON</b> A handle to the class icon. This member must be a handle to an icon resource. If this member is <b>NULL</b>, the system provides a default icon.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.hCursor">
            <summary>
            <para>Type: <b>HCURSOR</b> A handle to the class cursor. This member must be a handle to a cursor resource. If this member is <b>NULL</b>, an application must explicitly set the cursor shape whenever the mouse moves into the application's window.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.hbrBackground">
            <summary>
            <para>Type: <b>HBRUSH</b> A handle to the class background brush. This member can be a handle to the brush to be used for painting the background, or it can be a color value. A color value must be one of the following standard system colors (the value 1 must be added to the chosen color). If a color value is given, you must convert it to one of the following <b>HBRUSH</b> types: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.lpszMenuName">
            <summary>
            <para>Type: <b>LPCTSTR</b> Pointer to a null-terminated character string that specifies the resource name of the class menu, as the name appears in the resource file. If you use an integer to identify the menu, use the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-makeintresourcea">MAKEINTRESOURCE</a> macro. If this member is <b>NULL</b>, windows belonging to this class have no default menu.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.lpszClassName">
            <summary>
            <para>Type: <b>LPCTSTR</b> A pointer to a null-terminated string or is an atom. If this parameter is an atom, it must be a class atom created by a previous call to the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a> function. The atom must be in the low-order word of <b>lpszClassName</b>; the high-order word must be zero.</para>
            <para>If <b>lpszClassName</b> is a string, it specifies the window class name. The class name can be any name registered with <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassa">RegisterClass</a> or <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a>, or any of the predefined control-class names. The maximum length for <b>lpszClassName</b> is 256. If <b>lpszClassName</b> is greater than the maximum length, the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-registerclassexa">RegisterClassEx</a> function will fail.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.WindowsAndMessaging.WNDCLASSEXW.hIconSm">
            <summary>
            <para>Type: <b>HICON</b> A handle to a small icon that is associated with the window class. If this member is <b>NULL</b>, the system searches the icon resource specified by the <b>hIcon</b> member for an icon of the appropriate size to use as the small icon.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-wndclassexw#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS">
            <summary>Contains information about an image list draw operation and is used with the IImageList::Draw function. (IMAGELISTDRAWPARAMS)</summary>
            <remarks>
            <para>An overlay image is an image that is drawn on top of the primary image specified in the <b>i</b> member of this structure. To specify an overlay image, use the bitwise <b>OR</b> operator to combine <b>fStyle</b> with the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-indextooverlaymask">INDEXTOOVERLAYMASK</a> macro, passing the one-based index of the overlay image in the macro. This image must have been previously specified as an overlay image using the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-imagelist_setoverlayimage">ImageList_SetOverlayImage</a> API. To extract the overlay image from the <b>fStyle</b>, use the bitwise <b>AND</b> operator to mask <b>fStyle</b> with the <a href="https://docs.microsoft.com/windows/desktop/Controls/imagelistdrawflags">ILD_OVERLAYMASK</a> value. Comctl32.dll version 6 is not redistributable.. To use Comctl32.dll version 6, you must specify it in a manifest. For more information on manifests, see <a href="https://docs.microsoft.com/windows/desktop/Controls/cookbook-overview">Enabling Visual Styles</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.cbSize">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">DWORD</a></b> The size of this structure, in bytes.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.himl">
            <summary>
            <para>Type: <b>HIMAGELIST</b> A handle to the image list that contains the image to be drawn.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.i">
            <summary>
            <para>Type: <b>int</b> The zero-based index of the image to be drawn.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.hdcDst">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HDC</a></b> A handle to the destination device context.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.x">
            <summary>
            <para>Type: <b>int</b> The x-coordinate that specifies where the image is drawn.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.y">
            <summary>
            <para>Type: <b>int</b> The y-coordinate that specifies where the image is drawn.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.cx">
            <summary>
            <para>Type: <b>int</b> A value that specifies the number of pixels to draw, relative to the upper-left corner of the drawing operation as specified by <b>xBitmap</b> and <b>yBitmap</b>. If <b>cx</b> and <b>cy</b> are zero, then <a href="https://docs.microsoft.com/windows/desktop/api/commoncontrols/nf-commoncontrols-iimagelist-draw">Draw</a> draws the entire valid section. The method does not ensure that the parameters are valid.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.cy">
            <summary>
            <para>Type: <b>int</b> A value that specifies the number of pixels to draw, relative to the upper-left corner of the drawing operation as specified by <b>xBitmap</b> and <b>yBitmap</b>. If <b>cx</b> and <b>cy</b> are zero, then <a href="https://docs.microsoft.com/windows/desktop/api/commoncontrols/nf-commoncontrols-iimagelist-draw">Draw</a> draws the entire valid section. The method does not ensure that the parameters are valid.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.xBitmap">
            <summary>
            <para>Type: <b>int</b> The x-coordinate that specifies the upper-left corner of the drawing operation in reference to the image itself. Pixels of the image that are to the left of <b>xBitmap</b> and above <b>yBitmap</b> do not appear.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.yBitmap">
            <summary>
            <para>Type: <b>int</b> The y-coordinate that specifies the upper-left corner of the drawing operation in reference to the image itself. Pixels of the image that are to the left of <b>xBitmap</b> and above <b>yBitmap</b> do not appear.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.rgbBk">
            <summary>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">COLORREF</a></b></summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.rgbFg">
            <summary>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">COLORREF</a></b></summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.fStyle">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">UINT</a></b> A flag specifying the drawing style and, optionally, the overlay image. See the comments section at the end of this topic for information on the overlay image. This member can contain one or more <a href="https://docs.microsoft.com/windows/desktop/Controls/imagelistdrawflags">image list drawing flags</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.dwRop">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">DWORD</a></b> A value specifying a raster operation code. These codes define how the color data for the source rectangle will be combined with the color data for the destination rectangle to achieve the final color. This member is ignored if	<b>fStyle</b> does not include the <a href="https://docs.microsoft.com/windows/desktop/Controls/imagelistdrawflags">ILD_ROP</a> flag. Some common raster operation codes include: </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.fState">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">DWORD</a></b> A flag that specifies the drawing state. This member can contain one or more <a href="https://docs.microsoft.com/windows/desktop/Controls/imageliststateflags">image list state flags</a>. You must use comctl32.dll version 6 to use this member. See the Remarks.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.Frame">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">DWORD</a></b> Used with the <b>alpha blending</b> effect. When used with <a href="https://docs.microsoft.com/windows/desktop/Controls/imageliststateflags">ILS_ALPHA</a>, this member holds the value for the alpha channel. This value can be from 0 to 255, with 0 being completely transparent, and 255 being completely opaque. You must use comctl32.dll version 6 to use this member. See the Remarks.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Controls.IMAGELISTDRAWPARAMS.crEffect">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">DWORD</a></b> A color used for the <b>glow</b> and <b>shadow</b> effects. You must use comctl32.dll version 6 to use this member. See the Remarks.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/ns-commctrl-imagelistdrawparams#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="M:Windows.Win32.UI.Accessibility.IRawElementProviderSimple.QueryInterface(System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.UI.Accessibility.IRawElementProviderSimple.QueryInterface(System.Guid*,System.Void**)"/>
        </member>
        <member name="P:Windows.Win32.UI.Accessibility.IRawElementProviderSimple.ProviderOptions">
            <summary>Specifies the type of Microsoft UI Automation provider; for example, whether it is a client-side (proxy) or server-side provider.</summary>
            <remarks>
            <para>The method must return either <a href="https://docs.microsoft.com/windows/desktop/api/uiautomationcore/ne-uiautomationcore-provideroptions">ProviderOptions_ServerSideProvider</a> or <a href="https://docs.microsoft.com/windows/desktop/api/uiautomationcore/ne-uiautomationcore-provideroptions">ProviderOptions_ClientSideProvider</a>. UI Automation handles the various types of providers differently. For example, events from a server-side provider are broadcast to all listening clients, but events from client-side (proxy) providers remain in the client.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/nf-uiautomationcore-irawelementprovidersimple-get_provideroptions#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.UI.Accessibility.IRawElementProviderSimple.GetPatternProvider(Windows.Win32.UI.Accessibility.UIA_PATTERN_ID)">
            <summary>Retrieves a pointer to an object that provides support for a control pattern on a Microsoft UI Automation element.</summary>
            <param name="patternId">
            <para>Type: <b>PATTERNID</b> The identifier of the control pattern. For a list of control pattern IDs, see <a href="https://docs.microsoft.com/windows/desktop/WinAuto/uiauto-controlpattern-ids">Control Pattern Identifiers</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/nf-uiautomationcore-irawelementprovidersimple-getpatternprovider#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HRESULT</a></b> If this method succeeds, it returns <b>S_OK</b>. Otherwise, it returns an <b>HRESULT</b> error code.</para>
            </returns>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/nf-uiautomationcore-irawelementprovidersimple-getpatternprovider">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="M:Windows.Win32.UI.Accessibility.IRawElementProviderSimple.GetPropertyValue(Windows.Win32.UI.Accessibility.UIA_PROPERTY_ID)">
            <summary>Retrieves the value of a property supported by the Microsoft UI Automation provider.</summary>
            <param name="propertyId">
            <para>Type: <b>PROPERTYID</b> The property identifier. For a list of property IDs, see <a href="https://docs.microsoft.com/windows/desktop/WinAuto/uiauto-entry-propids">Property Identifiers</a>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/nf-uiautomationcore-irawelementprovidersimple-getpropertyvalue#parameters">Read more on docs.microsoft.com</see>.</para>
            </param>
            <returns>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HRESULT</a></b> If this method succeeds, it returns <b>S_OK</b>. Otherwise, it returns an  <a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HRESULT</a> error code. If the provider does not support the <i>propertyId</i> property, the provider should set <i>pRetVal-&gt;vt</i> to <b>VT_EMPTY</b> and return <b>S_OK</b>.</para>
            </returns>
            <remarks>
            <para>If a provider is explicitly hiding the property value (that is, the provider does not supply the property, and the request is not to be passed through to other providers), it should return a pointer obtained by using the             <a href="https://docs.microsoft.com/windows/desktop/api/uiautomationcoreapi/nf-uiautomationcoreapi-uiagetreservednotsupportedvalue">UiaGetReservedNotSupportedValue</a> function. For example:</para>
            <para></para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/nf-uiautomationcore-irawelementprovidersimple-getpropertyvalue#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="P:Windows.Win32.UI.Accessibility.IRawElementProviderSimple.HostRawElementProvider">
            <summary>Specifies the host provider for this element.</summary>
            <remarks>
            <para>This property is generally the Microsoft UI Automation provider for the window of a custom control. UI Automation uses this provider in combination with the custom provider. For example, the runtime identifier of the element is usually obtained from the host provider. A host provider must be returned in the following cases: when the element is a fragment root, when the element is a simple element (such as a push button), and when the provider is a repositioning placeholder (for more information, see <a href="https://docs.microsoft.com/windows/desktop/WinAuto/uiauto-serversideprovider">Provider Repositioning</a>). In other cases, the property should be <b>NULL</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/nf-uiautomationcore-irawelementprovidersimple-get_hostrawelementprovider#">Read more on docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.IRawElementProviderSimple.IID_Guid">
            <summary>The IID guid for this interface.</summary>
            <value>{d6dd68d1-86fd-4332-8666-9abedea2d24c}</value>
        </member>
        <member name="T:Windows.Win32.UI.Accessibility.NotificationKind">
            <summary>Defines values that indicate the type of a notification event, and a hint to the listener about the processing of the event.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/ne-uiautomationcore-notificationkind">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.NotificationKind.NotificationKind_ItemAdded">
            <summary>The current element and/or the container has had something added to it that should be presented to the user.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.NotificationKind.NotificationKind_ItemRemoved">
            <summary>The current element has had something removed from inside of it that should be presented to the user.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.NotificationKind.NotificationKind_ActionCompleted">
            <summary>The current element has a notification that an action was completed.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.NotificationKind.NotificationKind_ActionAborted">
            <summary>The current element has a notification that an action was aborted.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.NotificationKind.NotificationKind_Other">
            <summary>The current element has a notification not an add, remove, completed, or aborted action.</summary>
        </member>
        <member name="T:Windows.Win32.UI.Accessibility.NotificationProcessing">
            <summary>Defines values that indicate how a notification should be processed.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/ne-uiautomationcore-notificationprocessing">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.NotificationProcessing.NotificationProcessing_ImportantAll">
            <summary>
            <para>These notifications should be presented to the user as soon as possible and all of the notifications from this source should be delivered to the user. <div class="alert"><b>Warning</b>  Use this in a limited capacity as this style of message could cause a flooding of information to the user due to the nature of the request to deliver all notifications.</div> <div> </div></para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/ne-uiautomationcore-notificationprocessing#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.NotificationProcessing.NotificationProcessing_ImportantMostRecent">
            <summary>
            <para>These notifications should be presented to the user as soon as possible. The most recent notification from this source should be delivered to the user because it supersedes all of the other notifications.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/ne-uiautomationcore-notificationprocessing#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.NotificationProcessing.NotificationProcessing_All">
            <summary>
            <para>These notifications should be presented to the user when possible. All of the notifications from this source should be delivered to the user.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/ne-uiautomationcore-notificationprocessing#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.NotificationProcessing.NotificationProcessing_MostRecent">
            <summary>
            <para>These notifications should be presented to the user when possible. The most recent notification from this source should be delivered to the user because it supersedes all of the other notifications.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/ne-uiautomationcore-notificationprocessing#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.NotificationProcessing.NotificationProcessing_CurrentThenMostRecent">
            <summary>
            <para>These notifications should be presented to the user when possible. Don’t interrupt the current notification for this one. If new notifications come in from the same source while the current notification is being presented, keep the most recent and ignore the rest until the current processing is completed.  Then, use the most recent message as the current message.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/ne-uiautomationcore-notificationprocessing#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.UI.Accessibility.ProviderOptions">
            <summary>Contains values that specify the type of UI Automation provider. The IRawElementProviderSimple::ProviderOptions property uses this enumeration.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/uiautomationcore/ne-uiautomationcore-provideroptions">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.ProviderOptions.ProviderOptions_ClientSideProvider">
            <summary>The provider is a client-side (proxy) provider.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.ProviderOptions.ProviderOptions_ServerSideProvider">
            <summary>The provider is a server-side provider.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.ProviderOptions.ProviderOptions_NonClientAreaProvider">
            <summary>The provider is a non-client-area provider.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.ProviderOptions.ProviderOptions_OverrideProvider">
            <summary>The provider overrides another provider.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.ProviderOptions.ProviderOptions_ProviderOwnsSetFocus">
            <summary>The provider handles its own focus, and does not want UI Automation to set focus to the nearest window on its behalf. This option is typically used by providers for windows that appear to take focus without actually receiving Win32 focus, such as menus and drop-downs.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.ProviderOptions.ProviderOptions_UseComThreading">
            <summary>The provider has explicit support for COM threading models, so that calls by UI Automation on COM-based providers are received on the appropriate thread. This means that STA-based provider implementations will be called back on their own STA thread, and therefore do not need extra synchronization to safely access resources that belong to that STA. MTA-based provider implementations will be called back on some other thread in the MTA, and will require appropriate synchronization to be added, as is usual for MTA code.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.ProviderOptions.ProviderOptions_RefuseNonClientSupport">
            <summary>The provider handles its own non-client area and does not want UI Automation to provide default accessibility support for controls in the non-client area, such as minimize/maximize buttons and menu bars.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.ProviderOptions.ProviderOptions_HasNativeIAccessible">
            <summary>The provider implements the <a href="https://docs.microsoft.com/windows/desktop/api/oleacc/nn-oleacc-iaccessible">IAccessible</a> interface.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Accessibility.ProviderOptions.ProviderOptions_UseClientCoordinates">
            <summary>The provider works in client coordinates instead of screen coordinates.</summary>
        </member>
        <member name="T:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE">
            <summary>Identifies a change in the state of a button associated with a pointer.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ne-winuser-pointer_button_change_type">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_NONE">
            <summary>No change in button state.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FIRSTBUTTON_DOWN">
            <summary>The first button (see <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAG_FIRSTBUTTON</a>) transitioned to a pressed state.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FIRSTBUTTON_UP">
            <summary>The first button (see <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAG_FIRSTBUTTON</a>) transitioned to a released state.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_SECONDBUTTON_DOWN">
            <summary>The second button (see <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAG_SECONDBUTTON</a>) transitioned to a pressed state.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_SECONDBUTTON_UP">
            <summary>The second button (see <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAG_SECONDBUTTON</a>) transitioned to a released state.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_THIRDBUTTON_DOWN">
            <summary>The third button (see <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAG_THIRDBUTTON</a>) transitioned to a pressed state.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_THIRDBUTTON_UP">
            <summary>The third button (see <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAG_THIRDBUTTON</a>) transitioned to a released state.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FOURTHBUTTON_DOWN">
            <summary>The fourth button (see <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAG_FOURTHBUTTON</a>) transitioned to a pressed state.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FOURTHBUTTON_UP">
            <summary>The fourth button (see <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAG_FOURTHBUTTON</a>) transitioned to a released state.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FIFTHBUTTON_DOWN">
            <summary>The fifth button (see <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAG_FIFTHBUTTON</a>) transitioned to a pressed state.</summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FIFTHBUTTON_UP">
            <summary>The fifth button (see <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAG_FIFTHBUTTON</a>) transitioned to a released state.</summary>
        </member>
        <member name="T:Windows.Win32.UI.Input.Pointer.POINTER_INFO">
            <summary>Contains basic pointer information common to all pointer types. Applications can retrieve this information using the GetPointerInfo, GetPointerFrameInfo, GetPointerInfoHistory and GetPointerFrameInfoHistory functions.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.pointerType">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/winuser/ne-winuser-tagpointer_input_type">POINTER_INPUT_TYPE</a></b> A value from the <a href="https://docs.microsoft.com/windows/win32/api/winuser/ne-winuser-tagpointer_input_type">POINTER_INPUT_TYPE</a> enumeration that specifies the pointer type.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.pointerId">
            <summary>
            <para>Type: <b>UINT32</b> An identifier that uniquely identifies a pointer during its lifetime. A pointer comes into existence when it is first detected and ends its existence when it goes out of detection range. Note that if a physical entity (finger or pen) goes out of detection range and then returns to be detected again, it is treated as a new pointer and may be assigned a new pointer identifier.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.frameId">
            <summary>
            <para>Type: <b>UINT32</b> An identifier common to multiple pointers for which the source device reported an update in a single input frame. For example, a parallel-mode multi-touch digitizer may report the positions of multiple touch contacts in a single update to the system. Note that frame identifier is assigned as input is reported to the system for all pointers across all devices. Therefore, this field may not contain strictly sequential values in a single series of messages that a window receives. However, this field will contain the same numerical value for all input updates that were reported in the same input frame by a single device.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.pointerFlags">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">POINTER_FLAGS</a></b> May be any reasonable combination of flags from the <a href="https://docs.microsoft.com/windows/win32/inputmsg/pointer-flags-contants">Pointer Flags</a> constants.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.sourceDevice">
            <summary>
            <para>Type: <b>HANDLE</b> Handle to the source device that can be used in calls to the raw input device API and the digitizer device API.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.hwndTarget">
            <summary>
            <para>Type: <b>HWND</b> Window to which this message was targeted. If the pointer is captured, either implicitly by virtue of having made contact over this window or explicitly using the pointer capture API, this is the capture window. If the pointer is uncaptured, this is the window over which the pointer was when this message was generated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.ptPixelLocation">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> The predicted screen coordinates of the pointer, in pixels. The predicted value is based on the pointer position reported by the digitizer and the motion of the pointer. This correction can compensate for visual lag due to inherent delays in sensing and processing the pointer location on the digitizer. This is applicable to  pointers of type <a href="https://docs.microsoft.com/windows/win32/api/winuser/ne-winuser-tagpointer_input_type">PT_TOUCH</a>. For other pointer types, the predicted value will be the same as the non-predicted value (see <b>ptPixelLocationRaw</b>).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.ptHimetricLocation">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> The predicted screen coordinates of the pointer, in HIMETRIC units. The predicted value is based on the pointer position reported by the digitizer and the motion of the pointer. This correction can compensate for visual lag due to inherent delays in sensing and processing the pointer location on the digitizer. This is applicable to  pointers of type <a href="https://docs.microsoft.com/windows/win32/api/winuser/ne-winuser-tagpointer_input_type">PT_TOUCH</a>. For other pointer types, the predicted value will be the same as the non-predicted value (see <b>ptHimetricLocationRaw</b>).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.ptPixelLocationRaw">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> The screen coordinates of the pointer, in pixels. For adjusted screen coordinates, see <b>ptPixelLocation</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.ptHimetricLocationRaw">
            <summary>
            <para>Type: <b><a href="https://docs.microsoft.com/windows/win32/api/windef/ns-windef-point">POINT</a></b> The screen coordinates of the pointer, in HIMETRIC units. For adjusted screen coordinates, see <b>ptHimetricLocation</b>.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.dwTime">
            <summary>
            <para>Type: <b>DWORD</b> 0 or the time stamp of the message, based on the system tick count when the message was received. The application can specify the input time stamp in either <b>dwTime</b> or <b>PerformanceCount</b>. The value cannot be more recent than the current tick count or <b>QueryPerformanceCount (QPC)</b> value of the injection thread. Once a frame is injected with a time stamp, all subsequent frames must include a timestamp until all contacts in the frame go to an <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ne-winuser-pointer_button_change_type">UP</a> state. The custom timestamp value must also be provided for the first element in the contacts array. The time stamp values after the first element are ignored. The custom timestamp value must increment in every injection frame.</para>
            <para>When <b>PerformanceCount</b> is specified, the time stamp will be converted to the current time in .1 millisecond resolution upon actual injection. If a custom <b>PerformanceCount</b> resulted in the same .1 millisecond window from the previous injection, <b>ERROR_NOT_READY</b> is returned and injection will not occur. While injection will not be invalidated immediately by the error, the next successful injection must have a <b>PerformanceCount</b> value that is at least 0.1 millisecond from the previously successful injection. This is also true if <b>dwTime</b> is used. If both <b>dwTime</b> and <b>PerformanceCount</b> are specified in <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-injecttouchinput">InjectTouchInput</a>, ERROR_INVALID_PARAMETER is returned.</para>
            <para><a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-injecttouchinput">InjectTouchInput</a> cannot switch between <b>dwTime</b> and <b>PerformanceCount</b> once injection has started.</para>
            <para>If neither <b>dwTime</b> and <b>PerformanceCount</b> are specified, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-injecttouchinput">InjectTouchInput</a> allocates the timestamp based on the timing of the call. If <b>InjectTouchInput</b> calls are  repeatedly less than 0.1 millisecond apart, ERROR_NOT_READY might be returned. The error will not invalidate the input immediately, but the injection application needs to retry the same frame again for injection to succeed.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.historyCount">
            <summary>
            <para>Type: <b>UINT32</b> Count of inputs that were coalesced into this message. This count matches the total count of entries that can be returned by a call to <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerinfohistory">GetPointerInfoHistory</a>. If no coalescing occurred, this count is 1 for the single input represented by the message.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.InputData">
            <summary></summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.dwKeyStates">
            <summary>Type: <b>DWORD</b></summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.PerformanceCount">
            <summary>
            <para>Type: <b>UINT64</b> The value of the high-resolution performance counter when the pointer message was received (high-precision, 64 bit alternative to <b>dwTime</b>). The value can be calibrated when the touch digitizer hardware supports the scan timestamp information in its input report.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_INFO.ButtonChangeType">
            <summary>
            <para>Type: <b>POINTER_BUTTON_CHANGE_TYPE</b> A value from the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/ne-winuser-pointer_button_change_type">POINTER_BUTTON_CHANGE_TYPE</a> enumeration that specifies the change in button state between this input and the previous input.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO">
            <summary>Defines basic pen information common to all pointer types.</summary>
            <remarks>Applications can retrieve this information using the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerpeninfo">GetPointerPenInfo</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerframepeninfo">GetPointerFramePenInfo</a>, <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerpeninfohistory">GetPointerPenInfoHistory</a> and <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getpointerframepeninfohistory">GetPointerFramePenInfoHistory</a> API functions.</remarks>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO.pointerInfo">
            <summary>
            <para>Type: <b>POINTER_INFO</b> An embedded <a href="https://docs.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_info">POINTER_INFO</a> structure.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_pen_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO.penFlags">
            <summary>
            <para>Type: <b>PEN_FLAGS</b> The pen flag. This member can be zero or any reasonable combination of the values from the <a href="https://docs.microsoft.com/windows/win32/inputmsg/pen-flags-constants">Pen Flags</a> constants.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_pen_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO.penMask">
            <summary>
            <para>Type: <b>PEN_MASK</b> The pen mask. This member can be zero or any reasonable combination of the values from the <a href="https://docs.microsoft.com/windows/win32/inputmsg/pen-mask-constants">Pen Mask</a> constants.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_pen_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO.pressure">
            <summary>
            <para>Type: <b>UINT32</b> A pen pressure normalized to a range between 0 and 1024. The default is 0 if the device does not report pressure.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_pen_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO.rotation">
            <summary>
            <para>Type: <b>UINT32</b> The clockwise rotation, or twist, of the pointer normalized in a range of 0 to 359. The default is 0.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_pen_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO.tiltX">
            <summary>
            <para>Type: <b>INT32</b> The angle of tilt of the pointer along the x-axis in a range of -90 to +90, with a positive value indicating a tilt to the right. The default is 0.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_pen_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_PEN_INFO.tiltY">
            <summary>
            <para>Type: <b>INT32</b> The angle of tilt of the pointer along the y-axis in a range of -90 to +90, with a positive value indicating a tilt toward the user. The default is 0.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_pen_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO">
            <summary>Defines basic touch information common to all pointer types.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_touch_info">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO.pointerInfo">
            <summary>
            <para>Type: **[POINTER_INFO](ns-winuser-pointer_info.md)** An embedded [POINTER_INFO](ns-winuser-pointer_info.md) header structure.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_touch_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO.touchFlags">
            <summary>
            <para>Type: **[Touch Flags](/windows/win32/inputmsg/touch-flags-constants)** Currently none.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_touch_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO.touchMask">
            <summary>
            <para>Type: **[Touch Mask](/windows/win32/inputmsg/touch-mask-constants)** Indicates which of the optional fields contain valid values. The member can be zero or any combination of the values from the [Touch Mask](/windows/win32/inputmsg/touch-mask-constants) constants.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_touch_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO.rcContact">
            <summary>
            <para>Type: **RECT** The predicted screen coordinates of the contact area, in pixels. By default, if the device does not report a contact area, this field defaults to a 0-by-0 rectangle centered around the pointer location. The predicted value is based on the pointer position reported by the digitizer and the motion of the pointer. This correction can compensate for visual lag due to inherent delays in sensing and processing the pointer location on the digitizer. This is applicable to  pointers of type [PT_TOUCH](ne-winuser-tagpointer_input_type.md).</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_touch_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO.rcContactRaw">
            <summary>
            <para>Type: **RECT** The raw screen coordinates of the contact area, in pixels. For adjusted screen coordinates, see **rcContact**.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_touch_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO.orientation">
            <summary>
            <para>Type: **UINT32** A pointer orientation, with a value between 0 and 359, where 0 indicates a touch pointer aligned with the x-axis and pointing from left to right; increasing values indicate degrees of rotation in the clockwise direction. This field defaults to 0 if the device does not report orientation. > [!NOTE] > Some touchscreen devices that support orientation will only report half-range (0-180°) values, while other devices will only report full-range (0-359°) values.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_touch_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.UI.Input.Pointer.POINTER_TOUCH_INFO.pressure">
            <summary>
            <para>Type: **UINT32** A pen pressure normalized to a range between 0 and 1024. The default is 512.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-pointer_touch_info#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="T:Windows.Win32.DestroyCursorSafeHandle">
            <summary>
            Represents a Win32 handle that can be closed with <see cref="M:Windows.Win32.PInvoke.DestroyCursor(Windows.Win32.UI.WindowsAndMessaging.HCURSOR)"/>.
            </summary>
        </member>
        <member name="T:Windows.Win32.FreeLibrarySafeHandle">
            <summary>
            Represents a Win32 handle that can be closed with <see cref="M:Windows.Win32.PInvoke.FreeLibrary(Windows.Win32.Foundation.HMODULE)"/>.
            </summary>
        </member>
        <member name="T:Windows.Win32.Graphics.Gdi.MONITORINFO">
            <summary>The MONITORINFO structure contains information about a display monitor.The GetMonitorInfo function stores information in a MONITORINFO structure or a MONITORINFOEX structure.The MONITORINFO structure is a subset of the MONITORINFOEX structure.</summary>
            <remarks>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-monitorinfo">Learn more about this API from docs.microsoft.com</see>.</para>
            </remarks>
        </member>
        <member name="F:Windows.Win32.Graphics.Gdi.MONITORINFO.cbSize">
            <summary>
            <para>The size of the structure, in bytes. Set this member to <c>sizeof ( MONITORINFO )</c> before calling the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-getmonitorinfoa">GetMonitorInfo</a> function. Doing so lets the function determine the type of structure you are passing to it.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-monitorinfo#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="F:Windows.Win32.Graphics.Gdi.MONITORINFO.rcMonitor">
            <summary>A <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure that specifies the display monitor rectangle, expressed in virtual-screen coordinates. Note that if the monitor is not the primary display monitor, some of the rectangle's coordinates may be negative values.</summary>
        </member>
        <member name="F:Windows.Win32.Graphics.Gdi.MONITORINFO.rcWork">
            <summary>A <a href="https://docs.microsoft.com/windows/desktop/api/windef/ns-windef-rect">RECT</a> structure that specifies the work area rectangle of the display monitor, expressed in virtual-screen coordinates. Note that if the monitor is not the primary display monitor, some of the rectangle's coordinates may be negative values.</summary>
        </member>
        <member name="F:Windows.Win32.Graphics.Gdi.MONITORINFO.dwFlags">
            <summary>
            <para>A set of flags that represent attributes of the display monitor. The following flag is defined. </para>
            <para>This doc was truncated.</para>
            <para><see href="https://learn.microsoft.com/windows/win32/api/winuser/ns-winuser-monitorinfo#members">Read more on docs.microsoft.com</see>.</para>
            </summary>
        </member>
        <member name="P:Windows.Win32.IComIID.Guid">
            <summary>The IID guid for this interface.</summary>
            <remarks>The <see cref="P:Windows.Win32.IComIID.Guid" /> reference that is returned comes from a permanent memory address, and is therefore safe to convert to a pointer and pass around or hold long-term.</remarks>
        </member>
        <member name="T:Windows.Win32.IVTable">
            <summary>
            Non generic interface that allows constraining against a COM wrapper type directly. COM structs should
            implement <see cref="T:Windows.Win32.IVTable`2"/>.
            </summary>
        </member>
        <member name="T:Windows.Win32.SysFreeStringSafeHandle">
            <summary>
            Represents a Win32 handle that can be closed with <see cref="M:Windows.Win32.PInvoke.SysFreeString(Windows.Win32.Foundation.BSTR)"/>.
            </summary>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeComp_Extensions.Bind(Windows.Win32.System.Com.ITypeComp.Interface,Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt16,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.DESCKIND@,Windows.Win32.System.Com.BINDPTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeComp.Interface.Bind(Windows.Win32.Foundation.PWSTR,System.UInt32,System.UInt16,Windows.Win32.System.Com.ITypeInfo**,Windows.Win32.System.Com.DESCKIND*,Windows.Win32.System.Com.BINDPTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetTypeAttr(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.TYPEATTR*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetTypeAttr(Windows.Win32.System.Com.TYPEATTR**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetFuncDesc(Windows.Win32.System.Com.ITypeInfo.Interface,System.UInt32,Windows.Win32.System.Com.FUNCDESC*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetFuncDesc(System.UInt32,Windows.Win32.System.Com.FUNCDESC**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetVarDesc(Windows.Win32.System.Com.ITypeInfo.Interface,System.UInt32,Windows.Win32.System.Com.VARDESC*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetVarDesc(System.UInt32,Windows.Win32.System.Com.VARDESC**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetNames(Windows.Win32.System.Com.ITypeInfo.Interface,System.Int32,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetNames(System.Int32,Windows.Win32.Foundation.BSTR*,System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetRefTypeOfImplType(Windows.Win32.System.Com.ITypeInfo.Interface,System.UInt32,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetRefTypeOfImplType(System.UInt32,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetImplTypeFlags(Windows.Win32.System.Com.ITypeInfo.Interface,System.UInt32,Windows.Win32.System.Com.IMPLTYPEFLAGS@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetImplTypeFlags(System.UInt32,Windows.Win32.System.Com.IMPLTYPEFLAGS*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetIDsOfNames(Windows.Win32.System.Com.ITypeInfo.Interface,System.ReadOnlySpan{Windows.Win32.Foundation.PWSTR},System.Span{System.Int32})">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetIDsOfNames(Windows.Win32.Foundation.PWSTR*,System.UInt32,System.Int32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.Invoke(Windows.Win32.System.Com.ITypeInfo.Interface,System.Void*,System.Int32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS@,Windows.Win32.System.Variant.VARIANT@,Windows.Win32.System.Com.EXCEPINFO@,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.Invoke(System.Void*,System.Int32,Windows.Win32.System.Com.DISPATCH_FLAGS,Windows.Win32.System.Com.DISPPARAMS*,Windows.Win32.System.Variant.VARIANT*,Windows.Win32.System.Com.EXCEPINFO*,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetDocumentation(Windows.Win32.System.Com.ITypeInfo.Interface,System.Int32,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetDllEntry(Windows.Win32.System.Com.ITypeInfo.Interface,System.Int32,Windows.Win32.System.Com.INVOKEKIND,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt16@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetDllEntry(System.Int32,Windows.Win32.System.Com.INVOKEKIND,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt16*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.AddressOfMember(Windows.Win32.System.Com.ITypeInfo.Interface,System.Int32,Windows.Win32.System.Com.INVOKEKIND,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.AddressOfMember(System.Int32,Windows.Win32.System.Com.INVOKEKIND,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.CreateInstance(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.IUnknown*,System.Guid@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.CreateInstance(Windows.Win32.System.Com.IUnknown*,System.Guid*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetMops(Windows.Win32.System.Com.ITypeInfo.Interface,System.Int32,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetMops(System.Int32,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.GetContainingTypeLib(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.ITypeLib**,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.GetContainingTypeLib(Windows.Win32.System.Com.ITypeLib**,System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.ReleaseTypeAttr(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.TYPEATTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.ReleaseTypeAttr(Windows.Win32.System.Com.TYPEATTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.ReleaseFuncDesc(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.FUNCDESC@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.ReleaseFuncDesc(Windows.Win32.System.Com.FUNCDESC*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeInfo_Extensions.ReleaseVarDesc(Windows.Win32.System.Com.ITypeInfo.Interface,Windows.Win32.System.Com.VARDESC@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeInfo.Interface.ReleaseVarDesc(Windows.Win32.System.Com.VARDESC*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.GetTypeInfoType(Windows.Win32.System.Com.ITypeLib.Interface,System.UInt32,Windows.Win32.System.Com.TYPEKIND@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.GetTypeInfoType(System.UInt32,Windows.Win32.System.Com.TYPEKIND*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.GetTypeInfoOfGuid(Windows.Win32.System.Com.ITypeLib.Interface,System.Guid@,Windows.Win32.System.Com.ITypeInfo**)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.GetTypeInfoOfGuid(System.Guid*,Windows.Win32.System.Com.ITypeInfo**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.GetLibAttr(Windows.Win32.System.Com.ITypeLib.Interface,Windows.Win32.System.Com.TLIBATTR*@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.GetLibAttr(Windows.Win32.System.Com.TLIBATTR**)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.GetDocumentation(Windows.Win32.System.Com.ITypeLib.Interface,System.Int32,Windows.Win32.SysFreeStringSafeHandle@,Windows.Win32.SysFreeStringSafeHandle@,System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.GetDocumentation(System.Int32,Windows.Win32.Foundation.BSTR*,Windows.Win32.Foundation.BSTR*,System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.IsName(Windows.Win32.System.Com.ITypeLib.Interface,System.Span{System.Char}@,System.UInt32,Windows.Win32.Foundation.BOOL@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.IsName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.Foundation.BOOL*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.FindName(Windows.Win32.System.Com.ITypeLib.Interface,System.Span{System.Char}@,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,System.Int32*,System.UInt16@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.FindName(Windows.Win32.Foundation.PWSTR,System.UInt32,Windows.Win32.System.Com.ITypeInfo**,System.Int32*,System.UInt16*)"/>
        </member>
        <member name="M:Windows.Win32.System_Com_ITypeLib_Extensions.ReleaseTLibAttr(Windows.Win32.System.Com.ITypeLib.Interface,Windows.Win32.System.Com.TLIBATTR@)">
            <inheritdoc cref="M:Windows.Win32.System.Com.ITypeLib.Interface.ReleaseTLibAttr(Windows.Win32.System.Com.TLIBATTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetGuid(Windows.Win32.System.Ole.IRecordInfo.Interface,System.Guid@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetGuid(System.Guid*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetName(Windows.Win32.System.Ole.IRecordInfo.Interface,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetName(Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetSize(Windows.Win32.System.Ole.IRecordInfo.Interface,System.UInt32@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetSize(System.UInt32*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetField(Windows.Win32.System.Ole.IRecordInfo.Interface,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetField(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetFieldNoCopy(Windows.Win32.System.Ole.IRecordInfo.Interface,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetFieldNoCopy(System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.PutField(Windows.Win32.System.Ole.IRecordInfo.Interface,System.UInt32,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.PutField(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.PutFieldNoCopy(Windows.Win32.System.Ole.IRecordInfo.Interface,System.UInt32,System.Void*,System.String,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.PutFieldNoCopy(System.UInt32,System.Void*,Windows.Win32.Foundation.PCWSTR,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.GetFieldNames(Windows.Win32.System.Ole.IRecordInfo.Interface,System.UInt32@,Windows.Win32.SysFreeStringSafeHandle@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.GetFieldNames(System.UInt32*,Windows.Win32.Foundation.BSTR*)"/>
        </member>
        <member name="M:Windows.Win32.System_Ole_IRecordInfo_Extensions.RecordCreateCopy(Windows.Win32.System.Ole.IRecordInfo.Interface,System.Void*,System.Void*@)">
            <inheritdoc cref="M:Windows.Win32.System.Ole.IRecordInfo.Interface.RecordCreateCopy(System.Void*,System.Void**)"/>
        </member>
        <member name="M:Windows.Win32.UI_Accessibility_IRawElementProviderSimple_Extensions.GetPropertyValue(Windows.Win32.UI.Accessibility.IRawElementProviderSimple.Interface,Windows.Win32.UI.Accessibility.UIA_PROPERTY_ID,Windows.Win32.System.Variant.VARIANT@)">
            <inheritdoc cref="M:Windows.Win32.UI.Accessibility.IRawElementProviderSimple.Interface.GetPropertyValue(Windows.Win32.UI.Accessibility.UIA_PROPERTY_ID,Windows.Win32.System.Variant.VARIANT*)"/>
        </member>
        <member name="T:Windows.Win32.UnhookWindowsHookExSafeHandle">
            <summary>
            Represents a Win32 handle that can be closed with <see cref="M:Windows.Win32.PInvoke.UnhookWindowsHookEx(Windows.Win32.UI.WindowsAndMessaging.HHOOK)"/>.
            </summary>
        </member>
        <member name="T:XamlGeneratedNamespace.GeneratedInternalTypeHelper">
            <summary>
            GeneratedInternalTypeHelper
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.CreateInstance(System.Type,System.Globalization.CultureInfo)">
            <summary>
            CreateInstance
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.GetPropertyValue(System.Reflection.PropertyInfo,System.Object,System.Globalization.CultureInfo)">
            <summary>
            GetPropertyValue
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.SetPropertyValue(System.Reflection.PropertyInfo,System.Object,System.Object,System.Globalization.CultureInfo)">
            <summary>
            SetPropertyValue
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.CreateDelegate(System.Type,System.Object,System.String)">
            <summary>
            CreateDelegate
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.AddEventHandler(System.Reflection.EventInfo,System.Object,System.Delegate)">
            <summary>
            AddEventHandler
            </summary>
        </member>
    </members>
</doc>
