File: Windows.Win32.PInvoke.COMCTL32.dll.g.cs
Project: src\src\System.Windows.Forms.Primitives\src\System.Windows.Forms.Primitives.csproj (System.Windows.Forms.Primitives)
// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

#pragma warning disable CS1591,CS1573,CS0465,CS0649,CS8019,CS1570,CS1584,CS1658,CS0436,CS8981
using global::System;
using global::System.Diagnostics;
using global::System.Diagnostics.CodeAnalysis;
using global::System.Runtime.CompilerServices;
using global::System.Runtime.InteropServices;
using global::System.Runtime.Versioning;
using winmdroot = global::Windows.Win32;
namespace Windows.Win32
{

	/// <content>
	/// Contains extern methods from "COMCTL32.dll".
	/// </content>
	internal static partial class PInvoke
	{
		/// <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>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern winmdroot.Foundation.BOOL ImageList_Destroy(winmdroot.UI.Controls.HIMAGELIST himl);

		/// <summary>Adds an image or images to an image list. (ImageList_Add)</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_add#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="hbmImage">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HBITMAP</a></b> A handle to the bitmap that contains the image or images. The number of images is inferred from the width of the bitmap.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_add#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="hbmMask">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HBITMAP</a></b> A handle to the bitmap that contains the mask. If no mask is used with the image list, this parameter is ignored. This parameter can be <b>NULL</b>.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_add#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <returns>
		/// <para>Type: <b>int</b> Returns the index of the first new image if successful, or -1 otherwise.</para>
		/// </returns>
		/// <remarks>
		/// <para>The <b>ImageList_Add</b> function copies the bitmap to an internal data structure. Be sure to use the <a href="https://docs.microsoft.com/windows/desktop/api/wingdi/nf-wingdi-deleteobject">DeleteObject</a> function to delete <i>hbmImage</i> and <i>hbmMask</i> after the function returns.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_add#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern int ImageList_Add(winmdroot.UI.Controls.HIMAGELIST himl, winmdroot.Graphics.Gdi.HBITMAP hbmImage, winmdroot.Graphics.Gdi.HBITMAP hbmMask);

		/// <summary>Creates a new image list.</summary>
		/// <param name="cx">
		/// <para>Type: <b>int</b> The width, in pixels, of each image.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_create#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="cy">
		/// <para>Type: <b>int</b> The height, in pixels, of each image.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_create#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="flags">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">UINT</a></b> A set of bit flags that specify the type of image list to create. This parameter can be a combination of the <a href="https://docs.microsoft.com/windows/desktop/Controls/ilc-constants">Image List Creation Flags</a>.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_create#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="cInitial">
		/// <para>Type: <b>int</b> The number of images that the image list initially contains.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_create#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="cGrow">
		/// <para>Type: <b>int</b> The number of images by which the image list can grow when the system needs to make room for new images. This parameter represents the number of new images that the resized image list can contain.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_create#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <returns>
		/// <para>Type: <b>HIMAGELIST</b> Returns the handle to the image list if successful, or <b>NULL</b> otherwise.</para>
		/// </returns>
		/// <remarks>
		/// <para>When you finish using the image list, destroy it by calling the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-imagelist_destroy">ImageList_Destroy</a> function. <div class="alert"><b>Note</b>  Comctl32.dll version 6 is not redistributable but it is included in Windows or later. To use Comctl32.dll version 6, 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>.</div> <div> </div></para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_create#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern winmdroot.UI.Controls.HIMAGELIST ImageList_Create(int cx, int cy, winmdroot.UI.Controls.IMAGELIST_CREATION_FLAGS flags, int cInitial, int cGrow);

		/// <summary>Draws an image list item in the specified device context. (ImageList_Draw)</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_draw#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="i">
		/// <para>Type: <b>int</b> The zero-based index of the image to draw.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_draw#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="hdcDst">
		/// <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/nf-commctrl-imagelist_draw#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="x">
		/// <para>Type: <b>int</b> The x-coordinate at which to draw within the specified device context.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_draw#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="y">
		/// <para>Type: <b>int</b> The y-coordinate at which to draw within the specified device context.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_draw#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="fStyle">Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">UINT</a></b></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>An overlay image is drawn transparently over the primary image specified in the <i>i</i> parameter. To specify an overlay image in the <i>fStyle</i> parameter, use the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-indextooverlaymask">INDEXTOOVERLAYMASK</a> macro to shift the one-based index of the overlay image. Use the OR operator to logically combine the return value of the macro with the drawing style flags specified in the <i>fStyle</i> parameter. You must first specify this image as an overlay image by using the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-imagelist_setoverlayimage">ImageList_SetOverlayImage</a> function.</remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern winmdroot.Foundation.BOOL ImageList_Draw(winmdroot.UI.Controls.HIMAGELIST himl, int i, winmdroot.Graphics.Gdi.HDC hdcDst, int x, int y, winmdroot.UI.Controls.IMAGE_LIST_DRAW_STYLE fStyle);

		/// <summary>Draws an image list item in the specified device context. The function uses the specified drawing style and blends the image with the specified color.</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_drawex#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="i">
		/// <para>Type: <b>int</b> The index of the image to draw.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_drawex#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="hdcDst">
		/// <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/nf-commctrl-imagelist_drawex#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="x">
		/// <para>Type: <b>int</b> The x-coordinate at which to draw within the specified device context.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_drawex#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="y">
		/// <para>Type: <b>int</b> The y-coordinate at which to draw within the specified device context.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_drawex#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="dx">
		/// <para>Type: <b>int</b> The width of the portion of the image to draw relative to the upper-left corner of the image. If <i>dx</i> and <i>dy</i> are zero, the function draws the entire image. The function does not ensure that the parameters are valid.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_drawex#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="dy">
		/// <para>Type: <b>int</b> The height of the portion of the image to draw, relative to the upper-left corner of the image. If <i>dx</i> and <i>dy</i> are zero, the function draws the entire image. The function does not ensure that the parameters are valid.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_drawex#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="rgbBk">Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">COLORREF</a></b></param>
		/// <param name="rgbFg">Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">COLORREF</a></b></param>
		/// <param name="fStyle">Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">UINT</a></b></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>An overlay image is drawn transparently over the primary image specified in the <i>i</i> parameter. To specify an overlay image in the <i>fStyle</i> parameter, use the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-indextooverlaymask">INDEXTOOVERLAYMASK</a> macro to shift the one-based index of the overlay image. Use the OR operator to logically combine the return value of the macro with the drawing style flags specified in the <i>fStyle</i> parameter. You must first specify this image as an overlay image by using the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-imagelist_setoverlayimage">ImageList_SetOverlayImage</a> function.</remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern winmdroot.Foundation.BOOL ImageList_DrawEx(winmdroot.UI.Controls.HIMAGELIST himl, int i, winmdroot.Graphics.Gdi.HDC hdcDst, int x, int y, int dx, int dy, winmdroot.Foundation.COLORREF rgbBk, winmdroot.Foundation.COLORREF rgbFg, winmdroot.UI.Controls.IMAGE_LIST_DRAW_STYLE fStyle);

		/// <summary>Creates a duplicate of an existing image list.</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list to be duplicated. All information contained in the original image list for normal images is copied to the new image list. Overlay images are not copied.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_duplicate#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <returns>
		/// <para>Type: <b>HIMAGELIST</b> Returns the handle to the new duplicate image list if successful, or <b>NULL</b> otherwise.</para>
		/// </returns>
		/// <remarks>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_duplicate">Learn more about this API from docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern winmdroot.UI.Controls.HIMAGELIST ImageList_Duplicate(winmdroot.UI.Controls.HIMAGELIST himl);

		/// <summary>Retrieves the dimensions of images in an image list. All images in an image list have the same dimensions.</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_geticonsize#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="cx">
		/// <para>Type: <b>int*</b> A pointer to an integer variable that receives the width, in pixels, of each image.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_geticonsize#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="cy">
		/// <para>Type: <b>int*</b> A pointer to an integer variable that receives the height, in pixels, of each image.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_geticonsize#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_geticonsize">Learn more about this API from docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern unsafe winmdroot.Foundation.BOOL ImageList_GetIconSize(winmdroot.UI.Controls.HIMAGELIST himl, [Optional] int* cx, [Optional] int* cy);

		/// <summary>Retrieves the number of images in an image list.</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_getimagecount#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <returns>
		/// <para>Type: <b>int</b> Returns the number of images.</para>
		/// </returns>
		/// <remarks>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_getimagecount">Learn more about this API from docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern int ImageList_GetImageCount(winmdroot.UI.Controls.HIMAGELIST himl);

		/// <inheritdoc cref="ImageList_GetImageInfo(winmdroot.UI.Controls.HIMAGELIST, int, winmdroot.UI.Controls.IMAGEINFO*)"/>
		[SupportedOSPlatform("windows6.0.6000")]
		internal static unsafe winmdroot.Foundation.BOOL ImageList_GetImageInfo(winmdroot.UI.Controls.HIMAGELIST himl, int i, out winmdroot.UI.Controls.IMAGEINFO pImageInfo)
		{
			fixed (winmdroot.UI.Controls.IMAGEINFO* pImageInfoLocal = &pImageInfo)
			{
				winmdroot.Foundation.BOOL __result = PInvoke.ImageList_GetImageInfo(himl, i, pImageInfoLocal);
				return __result;
			}
		}

		/// <summary>Retrieves information about an image.</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_getimageinfo#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="i">
		/// <para>Type: <b>int</b> The index of the image.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_getimageinfo#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="pImageInfo">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/api/commoncontrols/ns-commoncontrols-imageinfo">IMAGEINFO</a>*</b> A pointer to an <a href="https://docs.microsoft.com/windows/desktop/api/commoncontrols/ns-commoncontrols-imageinfo">IMAGEINFO</a> structure that receives information about the image. The information in this structure can be used to directly manipulate the bitmaps for the image.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_getimageinfo#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>An application should not call <a href="https://docs.microsoft.com/windows/desktop/api/wingdi/nf-wingdi-deleteobject">DeleteObject</a> to destroy the bitmaps retrieved by <b>ImageList_GetImageInfo</b>. The system destroys the bitmaps when the application calls the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-imagelist_destroy">ImageList_Destroy</a> function.</remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern unsafe winmdroot.Foundation.BOOL ImageList_GetImageInfo(winmdroot.UI.Controls.HIMAGELIST himl, int i, winmdroot.UI.Controls.IMAGEINFO* pImageInfo);

		/// <summary>Reads an image list from a stream.</summary>
		/// <param name="pstm">
		/// <para>Type: <b>LPSTREAM</b> A pointer to the stream.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_read#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <returns>
		/// <para>Type: <b>HIMAGELIST</b> Returns the handle to the image list if successful, or <b>NULL</b> otherwise.</para>
		/// </returns>
		/// <remarks>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_read">Learn more about this API from docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern unsafe winmdroot.UI.Controls.HIMAGELIST ImageList_Read(winmdroot.System.Com.IStream* pstm);

		/// <summary>Removes an image from an image list. (ImageList_Remove)</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_remove#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="i">
		/// <para>Type: <b>int</b> The index of the image to remove. If this parameter is -1, the function removes all images.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_remove#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>When an image is removed, the indexes of the remaining images are adjusted so that the image indexes always range from zero to one less than the number of images in the image list. For example, if you remove the image at index 0, then image 1 becomes image 0, image 2 becomes image 1, and so on.</remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern winmdroot.Foundation.BOOL ImageList_Remove(winmdroot.UI.Controls.HIMAGELIST himl, int i);

		/// <summary>Replaces an image in an image list with a new image. (ImageList_Replace)</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_replace#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="i">
		/// <para>Type: <b>int</b> An index of the image to replace.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_replace#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="hbmImage">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HBITMAP</a></b> A handle to the bitmap that contains the image.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_replace#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="hbmMask">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HBITMAP</a></b> A handle to the bitmap that contains the mask. If no mask is used with the image list, this parameter is ignored.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_replace#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>The <b>ImageList_Replace</b> function copies the bitmap to an internal data structure. Be sure to use the <a href="https://docs.microsoft.com/windows/desktop/api/wingdi/nf-wingdi-deleteobject">DeleteObject</a> function to delete <i>hbmImage</i> and <i>hbmMask</i> after the function returns.</remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern winmdroot.Foundation.BOOL ImageList_Replace(winmdroot.UI.Controls.HIMAGELIST himl, int i, winmdroot.Graphics.Gdi.HBITMAP hbmImage, winmdroot.Graphics.Gdi.HBITMAP hbmMask);

		/// <summary>Replaces an image with an icon or cursor. (ImageList_ReplaceIcon)</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_replaceicon#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="i">
		/// <para>Type: <b>int</b> The index of the image to replace. If <i>i</i> is -1, the function appends the image to the end of the list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_replaceicon#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="hicon">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HICON</a></b> The handle to the icon or cursor that contains the bitmap and mask for the new image.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_replaceicon#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <returns>
		/// <para>Type: <b>int</b> Returns the index of the image if successful, or -1 otherwise.</para>
		/// </returns>
		/// <remarks>
		/// <para>Because the system does not save <i>hicon</i>, you can destroy it after the function returns if the icon or cursor was created by the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-createicon">CreateIcon</a> function. You do not need to destroy <i>hicon</i> if it was loaded by the <a href="https://docs.microsoft.com/windows/desktop/api/winuser/nf-winuser-loadicona">LoadIcon</a> function; the system automatically frees an icon resource when it is no longer needed.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_replaceicon#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern int ImageList_ReplaceIcon(winmdroot.UI.Controls.HIMAGELIST himl, int i, winmdroot.UI.WindowsAndMessaging.HICON hicon);

		/// <summary>Sets the background color for an image list. This function only works if you add an icon or use ImageList_AddMasked with a black and white bitmap. Without a mask, the entire image is drawn; hence the background color is not visible.</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_setbkcolor#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="clrBk">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">COLORREF</a></b> The background color to set. This parameter can be the CLR_NONE value; in that case, images are drawn transparently using the mask.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_setbkcolor#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">COLORREF</a></b> Returns the previous background color if successful, or CLR_NONE otherwise.</para>
		/// </returns>
		/// <remarks>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_setbkcolor">Learn more about this API from docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern winmdroot.Foundation.COLORREF ImageList_SetBkColor(winmdroot.UI.Controls.HIMAGELIST himl, winmdroot.Foundation.COLORREF clrBk);

		/// <summary>Writes an image list to a stream. (ImageList_Write)</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_write#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="pstm">
		/// <para>Type: <b>LPSTREAM</b> A pointer to the stream.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_write#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_write">Learn more about this API from docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern unsafe winmdroot.Foundation.BOOL ImageList_Write(winmdroot.UI.Controls.HIMAGELIST himl, winmdroot.System.Com.IStream* pstm);

		/// <summary>Writes an image list to a stream. (ImageList_WriteEx)</summary>
		/// <param name="himl">
		/// <para>Type: <b>HIMAGELIST</b> A handle to the image list.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_writeex#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="dwFlags">
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">DWORD</a></b> A flag that specifies how the stream is written.</para>
		/// <para></para>
		/// <para>This doc was truncated.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_writeex#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="pstm">
		/// <para>Type: <b>LPSTREAM</b> The address of the stream.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-imagelist_writeex#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 function succeeds, it returns <b>S_OK</b>. Otherwise, it returns an <b>HRESULT</b> error code.</para>
		/// </returns>
		/// <remarks>
		/// <para>You should not create an image list that is written with the ILP_DOWNLEVEL flag with <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-imagelist_create">ILC_COLOR32</a>.</para>
		/// <para>To use <b>ImageList_WriteEx</b>, the application must specify Comctl32.dll version 6 in the 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/nf-commctrl-imagelist_writeex#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern unsafe winmdroot.Foundation.HRESULT ImageList_WriteEx(winmdroot.UI.Controls.HIMAGELIST himl, winmdroot.UI.Controls.IMAGE_LIST_WRITE_STREAM_FLAGS dwFlags, winmdroot.System.Com.IStream* pstm);

		/// <summary>Registers and initializes certain common control window classes. This function is obsolete. New applications should use the InitCommonControlsEx function.</summary>
		/// <remarks>
		/// <para>Under Comctl32.dll version 5.x, only Windows 95 classes (ICC_WIN95_CLASSES) can be registered through <b>InitCommonControls</b>. Programs which require additional common control classes must use the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-initcommoncontrolsex">InitCommonControlsEx</a> function. Under Comctl32.dll version 6.0 and later, <b>InitCommonControls</b> does nothing. Applications must explicitly register all common controls through <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/nf-commctrl-initcommoncontrolsex">InitCommonControlsEx</a>.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-initcommoncontrols#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern void InitCommonControls();

		/// <inheritdoc cref="InitCommonControlsEx(winmdroot.UI.Controls.INITCOMMONCONTROLSEX*)"/>
		[SupportedOSPlatform("windows6.0.6000")]
		internal static unsafe winmdroot.Foundation.BOOL InitCommonControlsEx(in winmdroot.UI.Controls.INITCOMMONCONTROLSEX picce)
		{
			fixed (winmdroot.UI.Controls.INITCOMMONCONTROLSEX* picceLocal = &picce)
			{
				winmdroot.Foundation.BOOL __result = PInvoke.InitCommonControlsEx(picceLocal);
				return __result;
			}
		}

		/// <summary>Ensures that the common control DLL (Comctl32.dll) is loaded, and registers specific common control classes from the DLL. An application must call this function before creating a common control.</summary>
		/// <param name="picce">
		/// <para>Type: <b>const LPINITCOMMONCONTROLSEX</b> A pointer to an <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/ns-commctrl-initcommoncontrolsex">INITCOMMONCONTROLSEX</a> structure that contains information specifying which control classes will be registered.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-initcommoncontrolsex#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 <b>TRUE</b> if successful, or <b>FALSE</b> otherwise.</para>
		/// </returns>
		/// <remarks>The effect of each call to <b>InitCommonControlsEx</b> is cumulative. For example, if <b>InitCommonControlsEx</b> is called with the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/ns-commctrl-initcommoncontrolsex">ICC_UPDOWN_CLASS</a> flag, then is later called with the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/ns-commctrl-initcommoncontrolsex">ICC_HOTKEY_CLASS</a> flag, the result is that both the up-down and hot key common control classes are registered and available to the application.</remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern unsafe winmdroot.Foundation.BOOL InitCommonControlsEx(winmdroot.UI.Controls.INITCOMMONCONTROLSEX* picce);

		/// <inheritdoc cref="TaskDialogIndirect(winmdroot.UI.Controls.TASKDIALOGCONFIG*, int*, int*, winmdroot.Foundation.BOOL*)"/>
		[SupportedOSPlatform("windows6.0.6000")]
		internal static unsafe winmdroot.Foundation.HRESULT TaskDialogIndirect(in winmdroot.UI.Controls.TASKDIALOGCONFIG pTaskConfig, int* pnButton, int* pnRadioButton, winmdroot.Foundation.BOOL* pfVerificationFlagChecked)
		{
			fixed (winmdroot.UI.Controls.TASKDIALOGCONFIG* pTaskConfigLocal = &pTaskConfig)
			{
				winmdroot.Foundation.HRESULT __result = PInvoke.TaskDialogIndirect(pTaskConfigLocal, pnButton, pnRadioButton, pfVerificationFlagChecked);
				return __result;
			}
		}

		/// <summary>The TaskDialogIndirect function creates, displays, and operates a task dialog.</summary>
		/// <param name="pTaskConfig">
		/// <para>Type: <b>const <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/ns-commctrl-taskdialogconfig">TASKDIALOGCONFIG</a>*</b> Pointer to a <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/ns-commctrl-taskdialogconfig">TASKDIALOGCONFIG</a> structure that contains information used to display the task dialog.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-taskdialogindirect#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="pnButton">
		/// <para>Type: <b>int*</b> Address of a variable that receives either: </para>
		/// <para>This doc was truncated.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-taskdialogindirect#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="pnRadioButton">
		/// <para>Type: <b>int*</b> Address of a variable that receives one of the button IDs specified in the <b>pRadioButtons</b> member of the <i>pTaskConfig</i> parameter. If this parameter is <b>NULL</b>, no value is returned.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-taskdialogindirect#parameters">Read more on docs.microsoft.com</see>.</para>
		/// </param>
		/// <param name="pfVerificationFlagChecked">Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">BOOL</a>*</b></param>
		/// <returns>
		/// <para>Type: <b><a href="https://docs.microsoft.com/windows/desktop/WinProg/windows-data-types">HRESULT</a></b> This function can return one of these values. </para>
		/// <para>This doc was truncated.</para>
		/// </returns>
		/// <remarks>
		/// <para>When you use a task dialog box to indicate that the system is low on memory, the strings pointed to by the various string and icon members in the <a href="https://docs.microsoft.com/windows/desktop/api/commctrl/ns-commctrl-taskdialogconfig">TASKDIALOGCONFIG</a> structure should not be taken from a resource file since an attempt to load the resource may fail. If you create a task dialog while a dialog box is present, use a handle to the dialog box as the <i>hWndParent</i> parameter. The <i>hWndParent</i> parameter should not identify a child window, such as a control in a dialog box. The parent window should not be hidden or disabled when this function is called.</para>
		/// <para></para>
		/// <para>This doc was truncated.</para>
		/// <para><see href="https://learn.microsoft.com/windows/win32/api/commctrl/nf-commctrl-taskdialogindirect#">Read more on docs.microsoft.com</see>.</para>
		/// </remarks>
		[DllImport("COMCTL32.dll", ExactSpelling = true),DefaultDllImportSearchPaths(DllImportSearchPath.System32)]
		[SupportedOSPlatform("windows6.0.6000")]
		internal static extern unsafe winmdroot.Foundation.HRESULT TaskDialogIndirect(winmdroot.UI.Controls.TASKDIALOGCONFIG* pTaskConfig, [Optional] int* pnButton, [Optional] int* pnRadioButton, [Optional] winmdroot.Foundation.BOOL* pfVerificationFlagChecked);
	}
}