/// No specific property values are specified. The default behavior is used: the tab window provides a thumbnail and peek image, either live or
/// static as appropriate.
/// </summary>
STPF_NONE=0,
/// <summary>
/// Always use the thumbnail provided by the main application frame window rather than a thumbnail provided by the individual tab window. Do not
/// combine this value with STPF_USEAPPTHUMBNAILWHENACTIVE; doing so will result in an error.
/// </summary>
STPF_USEAPPTHUMBNAILALWAYS=1,
/// <summary>
/// When the application tab is active and a live representation of its window is available, use the main application's frame window thumbnail. At
/// other times, use the tab window thumbnail. Do not combine this value with STPF_USEAPPTHUMBNAILALWAYS; doing so will result in an error.
/// </summary>
STPF_USEAPPTHUMBNAILWHENACTIVE=2,
/// <summary>
/// Always use the peek image provided by the main application frame window rather than a peek image provided by the individual tab window. Do not
/// combine this value with STPF_USEAPPPEEKWHENACTIVE; doing so will result in an error.
/// </summary>
STPF_USEAPPPEEKALWAYS=4,
/// <summary>
/// When the application tab is active and a live representation of its window is available, show the main application frame in the peek feature. At
/// other times, use the tab window. Do not combine this value with STPF_USEAPPPEEKALWAYS; doing so will result in an error.
/// </summary>
STPF_USEAPPPEEKWHENACTIVE=8,
}
/// <summary>
/// Flags that control the current state of the progress button. Specify only one of the following flags; all states are mutually exclusive of all others.
/// The progress indicator turns red to show that an error has occurred in one of the windows that is broadcasting progress. This is a determinate
/// state. If the progress indicator is in the indeterminate state, it switches to a red determinate display of a generic percentage not indicative
/// of actual progress.
/// </summary>
TBPF_ERROR=4,
/// <summary>
/// The progress indicator does not grow in size, but cycles repeatedly along the length of the taskbar button. This indicates activity without
/// specifying what proportion of the progress is complete. Progress is taking place, but there is no prediction as to how long the operation will take.
/// </summary>
TBPF_INDETERMINATE=1,
/// <summary>
/// Stops displaying progress and returns the button to its normal state. Call this method with this flag to dismiss the progress bar when the
/// operation is complete or canceled.
/// </summary>
TBPF_NOPROGRESS=0,
/// <summary>
/// The progress indicator grows in size from left to right in proportion to the estimated amount of the operation completed. This is a determinate
/// progress indicator; a prediction is being made as to the duration of the operation.
/// </summary>
TBPF_NORMAL=2,
/// <summary>
/// The progress indicator turns yellow to show that progress is currently stopped in one of the windows but can be resumed by the user. No error
/// condition exists and nothing is preventing the progress from continuing. This is a determinate state. If the progress indicator is in the
/// indeterminate state, it switches to a yellow determinate display of a generic percentage not indicative of actual progress.
/// </summary>
TBPF_PAUSED=8
}
/// <summary>Used by THUMBBUTTON to control specific states and behaviors of the button.</summary>
/// <summary>The button is disabled. It is present, but has a visual state that indicates that it will not respond to user action.</summary>
THBF_DISABLED=1,
/// <summary>When the button is clicked, the taskbar button's flyout closes immediately.</summary>
THBF_DISMISSONCLICK=2,
/// <summary>The button is active and available to the user.</summary>
THBF_ENABLED=0,
/// <summary>The button is not shown to the user.</summary>
THBF_HIDDEN=8,
/// <summary>Do not draw a button border, use only the image.</summary>
THBF_NOBACKGROUND=4,
/// <summary>
/// The button is enabled but not interactive; no pressed button state is drawn. This value is intended for instances where the button is used in a notification.
/// </summary>
THBF_NONINTERACTIVE=0x10
}
/// <summary>Used by the THUMBBUTTON structure to specify which members of that structure contain valid data.</summary>
/// <summary>The iBitmap member contains valid information.</summary>
THB_BITMAP=1,
/// <summary>The dwFlags member contains valid information.</summary>
THB_FLAGS=8,
/// <summary>The hIcon member contains valid information.</summary>
THB_ICON=2,
/// <summary>The szTip member contains valid information.</summary>
THB_TOOLTIP=4
}
/// <summary>Exposes methods that allow an application to provide a custom Jump List, including destinations and tasks, for display in the taskbar.</summary>
/// <summary>Specifies items to include in the Tasks category of a custom Jump List.</summary>
/// <param name="poa">
/// A pointer to an IObjectArray that represents one or more IShellLink (or, more rarely, IShellItem) objects that represent the tasks. <note>Any
/// IShellLink used here must declare an argument list through SetArguments. Adding an IShellLink object with no arguments to a custom category is
/// not supported. A user cannot pin or unpin this type of item from a Jump List, nor can they be added or removed.</note>
/// </param>
voidAddUserTasks(IObjectArraypoa);
/// <summary>Declares that the Jump List initiated by a call to ICustomDestinationList::BeginList is complete and ready for display.</summary>
voidCommitList();
/// <summary>
/// Retrieves the current list of destinations that have been removed by the user from the existing Jump List that this custom Jump List is meant to replace.
/// </summary>
/// <param name="riid">A reference to the IID of the interface to retrieve through ppv, typically IID_IObjectArray.</param>
/// <returns>
/// When this method returns, contains the interface pointer requested in riid. This is typically an IObjectArray, which represents a collection of
/// IShellItem or IShellLink objects that represent the items in the list of removed destinations.
/// <summary>Sets the type and state of the progress indicator displayed on a taskbar button.</summary>
/// <param name="hwnd">
/// The handle of the window in which the progress of an operation is being shown. This window's associated taskbar button will display the progress bar.
/// </param>
/// <param name="tbpFlags">
/// Flags that control the current state of the progress button. Specify only one of the following flags; all states are mutually exclusive of all others.
/// <summary>Informs the taskbar that a new tab or document thumbnail has been provided for display in an application's taskbar group flyout.</summary>
/// <param name="hwndTab">Handle of the tab or document window. This value is required and cannot be NULL.</param>
/// <param name="hwndMDI">
/// Handle of the application's main window. This value tells the taskbar which application's preview group to attach the new thumbnail to. This
/// value is required and cannot be NULL.
/// </param>
/// <remarks>
/// By itself, registering a tab thumbnail alone will not result in its being displayed. You must also call ITaskbarList3::SetTabOrder to instruct
/// <summary>Removes a thumbnail from an application's preview group when that tab or document is closed in the application.</summary>
/// <param name="hwndTab">
/// The handle of the tab window whose thumbnail is being removed. This is the same value with which the thumbnail was registered as part the group
/// through ITaskbarList3::RegisterTab. This value is required and cannot be NULL.
/// </param>
/// <remarks>
/// It is the responsibility of the calling application to free hwndTab through DestroyWindow. UnregisterTab must be called before the handle is freed.
/// Inserts a new thumbnail into a tabbed-document interface (TDI) or multiple-document interface (MDI) application's group flyout or moves an
/// existing thumbnail to a new position in the application's group.
/// </summary>
/// <param name="hwndTab">
/// The handle of the tab window whose thumbnail is being placed. This value is required, must already be registered through
/// ITaskbarList3::RegisterTab, and cannot be NULL.
/// </param>
/// <param name="hwndInsertBefore">
/// The handle of the tab window whose thumbnail that hwndTab is inserted to the left of. This handle must already be registered through
/// ITaskbarList3::RegisterTab. If this value is NULL, the new thumbnail is added to the end of the list.
/// </param>
/// <remarks>This method must be called for the thumbnail to be shown in the group. Call it after you have called ITaskbarList3::RegisterTab.</remarks>
/// <summary>Informs the taskbar that a tab or document window has been made the active window.</summary>
/// <param name="hwndTab">
/// Handle of the active tab window. This handle must already be registered through ITaskbarList3::RegisterTab. This value can be NULL if no tab is active.
/// </param>
/// <param name="hwndMDI">
/// Handle of the application's main window. This value tells the taskbar which group the thumbnail is a member of. This value is required and cannot
/// be NULL.
/// </param>
/// <param name="dwReserved">Reserved; set to 0.</param>
/// <summary>Applies an overlay to a taskbar button to indicate application status or a notification to the user.</summary>
/// <param name="hwnd">
/// The handle of the window whose associated taskbar button receives the overlay. This handle must belong to a calling process associated with the
/// button's application and must be a valid HWND or the call is ignored.
/// </param>
/// <param name="hIcon">
/// The handle of an icon to use as the overlay. This should be a small icon, measuring 16x16 pixels at 96 dpi. If an overlay icon is already applied
/// to the taskbar button, that existing overlay is replaced.
/// <para>This value can be NULL.How a NULL value is handled depends on whether the taskbar button represents a single window or a group of windows.</para>
/// <list type="bullet">
/// <item>
/// <term>If the taskbar button represents a single window, the overlay icon is removed from the display.</term>
/// </item>
/// <item>
/// <term>
/// If the taskbar button represents a group of windows and a previous overlay is still available (received earlier than the current overlay, but not
/// yet freed by a NULL value), then that previous overlay is displayed in place of the current overlay.
/// </term>
/// </item>
/// </list>
/// <para>
/// It is the responsibility of the calling application to free hIcon when it is no longer needed.This can generally be done after you call
/// SetOverlayIcon because the taskbar makes and uses its own copy of the icon.
/// </para>
/// </param>
/// <param name="pszDescription">
/// A pointer to a string that provides an alt text version of the information conveyed by the overlay, for accessibility purposes.
/// <summary>Extends ITaskbarList3 by providing a method that allows the caller to control two property values for the tab thumbnail and peek feature.</summary>
/// <summary>Sets the type and state of the progress indicator displayed on a taskbar button.</summary>
/// <param name="hwnd">
/// The handle of the window in which the progress of an operation is being shown. This window's associated taskbar button will display the progress bar.
/// </param>
/// <param name="tbpFlags">
/// Flags that control the current state of the progress button. Specify only one of the following flags; all states are mutually exclusive of all others.
/// <summary>Informs the taskbar that a new tab or document thumbnail has been provided for display in an application's taskbar group flyout.</summary>
/// <param name="hwndTab">Handle of the tab or document window. This value is required and cannot be NULL.</param>
/// <param name="hwndMDI">
/// Handle of the application's main window. This value tells the taskbar which application's preview group to attach the new thumbnail to. This
/// value is required and cannot be NULL.
/// </param>
/// <remarks>
/// By itself, registering a tab thumbnail alone will not result in its being displayed. You must also call ITaskbarList3::SetTabOrder to instruct
/// <summary>Removes a thumbnail from an application's preview group when that tab or document is closed in the application.</summary>
/// <param name="hwndTab">
/// The handle of the tab window whose thumbnail is being removed. This is the same value with which the thumbnail was registered as part the group
/// through ITaskbarList3::RegisterTab. This value is required and cannot be NULL.
/// </param>
/// <remarks>
/// It is the responsibility of the calling application to free hwndTab through DestroyWindow. UnregisterTab must be called before the handle is freed.
/// Inserts a new thumbnail into a tabbed-document interface (TDI) or multiple-document interface (MDI) application's group flyout or moves an
/// existing thumbnail to a new position in the application's group.
/// </summary>
/// <param name="hwndTab">
/// The handle of the tab window whose thumbnail is being placed. This value is required, must already be registered through
/// ITaskbarList3::RegisterTab, and cannot be NULL.
/// </param>
/// <param name="hwndInsertBefore">
/// The handle of the tab window whose thumbnail that hwndTab is inserted to the left of. This handle must already be registered through
/// ITaskbarList3::RegisterTab. If this value is NULL, the new thumbnail is added to the end of the list.
/// </param>
/// <remarks>This method must be called for the thumbnail to be shown in the group. Call it after you have called ITaskbarList3::RegisterTab.</remarks>
/// <summary>Informs the taskbar that a tab or document window has been made the active window.</summary>
/// <param name="hwndTab">
/// Handle of the active tab window. This handle must already be registered through ITaskbarList3::RegisterTab. This value can be NULL if no tab is active.
/// </param>
/// <param name="hwndMDI">
/// Handle of the application's main window. This value tells the taskbar which group the thumbnail is a member of. This value is required and cannot
/// be NULL.
/// </param>
/// <param name="dwReserved">Reserved; set to 0.</param>
/// <summary>Applies an overlay to a taskbar button to indicate application status or a notification to the user.</summary>
/// <param name="hwnd">
/// The handle of the window whose associated taskbar button receives the overlay. This handle must belong to a calling process associated with the
/// button's application and must be a valid HWND or the call is ignored.
/// </param>
/// <param name="hIcon">
/// The handle of an icon to use as the overlay. This should be a small icon, measuring 16x16 pixels at 96 dpi. If an overlay icon is already applied
/// to the taskbar button, that existing overlay is replaced.
/// <para>This value can be NULL.How a NULL value is handled depends on whether the taskbar button represents a single window or a group of windows.</para>
/// <list type="bullet">
/// <item>
/// <term>If the taskbar button represents a single window, the overlay icon is removed from the display.</term>
/// </item>
/// <item>
/// <term>
/// If the taskbar button represents a group of windows and a previous overlay is still available (received earlier than the current overlay, but not
/// yet freed by a NULL value), then that previous overlay is displayed in place of the current overlay.
/// </term>
/// </item>
/// </list>
/// <para>
/// It is the responsibility of the calling application to free hIcon when it is no longer needed.This can generally be done after you call
/// SetOverlayIcon because the taskbar makes and uses its own copy of the icon.
/// </para>
/// </param>
/// <param name="pszDescription">
/// A pointer to a string that provides an alt text version of the information conveyed by the overlay, for accessibility purposes.
/// Allows a tab to specify whether the main application frame window or the tab window should be used as a thumbnail or in the peek feature under
/// certain circumstances.
/// </summary>
/// <param name="hwndTab">The handle of the tab window that is to have properties set. This handle must already be registered through RegisterTab.</param>
/// <param name="stpFlags">
/// One or more members of the STPFLAG enumeration that specify the displayed thumbnail and peek image source of the tab thumbnail.
/// <summary>Used by methods of the ITaskbarList3 interface to define buttons used in a toolbar embedded in a window's thumbnail representation.</summary>