/// <summary>
/// Extends ITaskbarList2 by exposing methods that support the unified launching and switching taskbar button
/// functionality added in Windows 7. This functionality includes thumbnail representations and switch
/// targets based on individual tabs in a tabbed application, thumbnail toolbars, notification and
/// status overlays, and progress indicators.
/// </summary>
[ComImport,
Guid("ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface ITaskbarList3 : ITaskbarList2
{
/// <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>
void RegisterTab([In] IntPtr hWndTab, [In] IntPtr hWndMDI);
/// <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 dots per inch (dpi). If an overlay icon is already applied to the
/// taskbar button, that existing overlay is replaced.</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.</param>
void SetOverlayIcon([In] IntPtr hWnd, [In] IntPtr hIcon, [In] string pszDescription);
/// <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.</param>
void SetProgressState([In] IntPtr hWnd, TBPFLAG tbpFlags);
/// <summary>
/// Displays or updates a progress bar hosted in a taskbar button to show the specific percentage
/// completed of the full operation.
/// </summary>
/// <param name="hWnd">The handle of the window whose associated taskbar button is being used as
/// a progress indicator.</param>
/// <param name="ullCompleted">An application-defined value that indicates the proportion of the
/// operation that has been completed at the time the method is called.</param>
/// <param name="ullTotal">An application-defined value that specifies the value ullCompleted will
/// have when the operation is complete.</param>
void SetProgressValue([In] IntPtr hWnd, ulong ullCompleted, ulong ullTotal);
/// <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="tbatFlags">None, one, or both of the following values that specify a thumbnail
/// and peek view to use in place of a representation of the specific tab or document.</param>
void SetTabActive([In] IntPtr hWndTab, IntPtr hWndMDI, TBATFLAG tbatFlags);
/// <summary>
/// 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>
void SetTabOrder([In] IntPtr hWndTab, [In] IntPtr hWndInsertBefore);
/// <summary>
/// Selects a portion of a window's client area to display as that window's thumbnail in the taskbar.
/// </summary>
/// <param name="hWnd">The handle to a window represented in the taskbar.</param>
/// <param name="prcClip">A pointer to a RECT structure that specifies a selection within the window's
/// client area, relative to the upper-left corner of that client area. To clear a clip that is already
/// in place and return to the default display of the thumbnail, set this parameter to NULL.</param>
void SetThumbnailClip([In] IntPtr hWnd, [In] RECT prcClip);
/// <summary>
/// Specifies or updates the text of the tooltip that is displayed when the mouse pointer rests on an
/// individual preview thumbnail in a taskbar button flyout.
/// </summary>
/// <param name="hWnd">The handle to the window whose thumbnail displays the tooltip. This handle must
/// belong to the calling process.</param>
/// <param name="pszTip">The pointer to the text to be displayed in the tooltip. This value can be NULL,
/// in which case the title of the window specified by hwnd is used as the tooltip.</param>
void SetThumbnailTooltip([In] IntPtr hWnd, [In] string pszTip);
/// <summary>
/// Adds a thumbnail toolbar with a specified set of buttons to the thumbnail image of a window in a
/// taskbar button flyout.
/// </summary>
/// <param name="hWnd">The handle of the window whose thumbnail representation will receive the toolbar.
/// This handle must belong to the calling process.</param>
/// <param name="cButtons">The number of buttons defined in the array pointed to by pButton. The maximum
/// number of buttons allowed is 7.</param>
/// <param name="pButton">A pointer to an array of THUMBBUTTON structures. Each THUMBBUTTON defines an
/// individual button to be added to the toolbar. Buttons cannot be added or deleted later, so this must
/// be the full defined set. Buttons also cannot be reordered, so their order in the array, which is the
/// order in which they are displayed left to right, will be their permanent order.</param>
void ThumbBarAddButtons([In] IntPtr hWnd, [In] uint cButtons, [In] THUMBBUTTON pButton);
/// <summary>
/// Specifies an image list that contains button images for a toolbar embedded in a thumbnail image of a
/// window in a taskbar button flyout.
/// </summary>
/// <param name="hWnd">The handle of the window whose thumbnail representation contains the toolbar to be
/// updated. This handle must belong to the calling process.</param>
/// <param name="himl">The handle of the image list that contains all button images to be used in the toolbar.</param>
void ThumbBarSetImageList([In] IntPtr hWnd, [In] IntPtr himl);
/// <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>
void UnregisterTab([In] IntPtr hWndTab);
}
Declare Function ITaskbarList3 Lib "shell32.dll" (TODO) As TODO
Structures:
enum THUMBBUTTONMASK{
THB_BITMAP = 0x1,
THB_ICON = 0x2,
THB_TOOLTIP = 0x4,
THB_FLAGS = 0x8
}
struct THUMBBUTTON{
THUMBBUTTONMASK dwMask;
UINT iId;
UINT iBitmap;
HICON hIcon;
WCHAR szTip[ 260 ];
THUMBBUTTONFLAGS dwFlags;
}
enum THUMBBUTTONFLAGS{
THBF_ENABLED = 0,
THBF_DISABLED = 0x1,
THBF_DISMISSONCLICK = 0x2,
THBF_NOBACKGROUND = 0x4,
THBF_HIDDEN = 0x8,
THBF_NONINTERACTIVE = 0x10
}
http://code.msdn.microsoft.com/WindowsAPICodePack
None.
Please add some!
Please add some!
http://msdn.microsoft.com/en-us/library/dd391692(VS.85).aspx