ITaskItem

The ITaskItem interface is implemented in EXPLORER.EXE by a class that is named internally as CTaskItem (which the Windows 10 implementation derives to CWindowTaskItem and CImmersiveTaskItem). The interface is thought to be used only within EXPLORER.

Please note that the interface is not only internal to EXPLORER.EXE but is highly variable from one Windows version to another. At least Microsoft has changed the IID each time the interface has changed substantively, which has not always been its practice with COM interfaces in the shell. Beware, however, that these notes have been prepared only from inspection of the original release of each version.

Interface IID Versions
ITaskItem {93179D36-69BA-4020-952E-1FDA5F0949A9} 6.1 only
{D81D7F0B-67FA-4FCC-98A6-956361DC3608} 6.2 to 6.3
{7541500A-8E26-45A9-B917-ECC3942192B4} 10.0 only

No evidence is known that Microsoft defines the conventional symbol IID_ITaskItem for this interface’s IID. Microsoft’s names and types for the ITaskItem methods are known from the public symbol files for EXPLORER.EXE. The presentation here follows the ordering of the virtual function table after the IUnknown methods.

Offset (x86) Offset (x64) Prototype Versions
0x0C (6.1 to 6.3) 0x18 (6.1 to 6.3)
HRESULT STDMETHODCALLTYPE Initialize (HWND);
6.1 to 6.3
0x10 (6.1 to 6.3);
0x0C
0x20 (6.1 to 6.3);
0x18
DWORD STDMETHODCALLTYPE GetFirstOpenedTime (VOID);
6.1 and higher
0x14 (6.1 to 6.3);
0x10
0x28 (6.1 to 6.3);
0x20
DWORD STDMETHODCALLTYPE GetLastActivatedTime (VOID);
6.1 and higher
0x18 (6.1 to 6.3);
0x14
0x30 (6.1 to 6.3);
0x28
HRESULT STDMETHODCALLTYPE UpdateLastActivatedTime (VOID);
6.1 and higher
0x1C (6.1 to 6.3);
0x18
0x38 (6.1 to 6.3);
0x30
DWORD STDMETHODCALLTYPE GetLastInteractiveStartTime (VOID);
6.1 and higher
0x20 (6.1 to 6.3);
0x1C
0x40 (6.1 to 6.3);
0x38
HRESULT STDMETHODCALLTYPE SetLastInteractiveStartTime (DWORD);
6.1 and higher
0x24 (6.1 to 6.3);
0x20
0x48 (6.1 to 6.3);
0x40
BOOL STDMETHODCALLTYPE HasBeenInteracted (VOID);
6.1 and higher
0x28 (6.1 to 6.3) 0x50 (6.1 to 6.3)
INT STDMETHODCALLTYPE GetIconPref (VOID);
6.1 to 6.3
0x2C (6.1 to 6.3) 0x58 (6.1 to 6.3)
HRESULT STDMETHODCALLTYPE SetIconPref (INT);
6.1 to 6.3
0x30 (6.1 to 6.3);
0x24
0x60 (6.1 to 6.3);
0x48
INT STDMETHODCALLTYPE GetIconId (VOID);
6.1 and higher
0x34 (6.1 to 6.3);
0x28
0x68 (6.1 to 6.3);
0x50
HRESULT STDMETHODCALLTYPE SetIconId (INT);
6.1 and higher
0x38 (6.1 to 6.3) 0x70 (6.1 to 6.3)
HRESULT STDMETHODCALLTYPE GetHotTrackColor (DWORD *);
6.1 to 6.3
0x3C (6.1 to 6.3) 0x78 (6.1 to 6.3)
HRESULT STDMETHODCALLTYPE SetHotTrackColor (DWORD);
6.1 to 6.3
0x40 (6.1 to 6.3);
0x2C
0x80 (6.1 to 6.3);
0x58
BOOL STDMETHODCALLTYPE IsMarkedFullscreen (VOID);
6.1 and higher
0x44 (6.1 to 6.3);
0x30
0x88 (6.1 to 6.3);
0x60
HRESULT STDMETHODCALLTYPE MarkFullscreen (BOOL);
6.1 and higher
0x48 (6.1 to 6.3);
0x34
0x90 (6.1 to 6.3);
0x68
HRESULT STDMETHODCALLTYPE SetWindow (HWND);
6.1 and higher
0x4C (6.1 to 6.3);
0x38
0x98 (6.1 to 6.3);
0x70
HWND STDMETHODCALLTYPE GetWindow (VOID);
6.1 and higher
0x50 (6.1 to 6.3);
0x3C
0xA0 (6.1 to 6.3);
0x78
HWND STDMETHODCALLTYPE GetThumbnailWindow (VOID);
6.1 and higher
0x54 (6.1 to 6.3);
0x40
0xA8 (6.1 to 6.3);
0x80
HWND STDMETHODCALLTYPE GetLivePreviewWindow (VOID);
6.1 and higher
0x44 0x88
VOID STDMETHODCALLTYPE SetLivePreviewWindow (HWND);
10.0 and higher
0x58 (6.1 to 6.3);
0x48
0xB0 (6.1 to 6.3);
0x90
DWORD STDMETHODCALLTYPE GetFlags (VOID);
6.1 to 6.2
DWORD STDMETHODCALLTYPE GetFlags (VOID) const;
6.3 and higher
0x5C (6.1 to 6.3);
0x4C
0xB8 (6.1 to 6.3);
0x98
HRESULT 
STDMETHODCALLTYPE 
UpdateFlags (
    DWORD, 
    DWORD);
6.1 and higher
0x60 (6.1 to 6.3);
0x50
0xC0 (6.1 to 6.3);
0xA0
BOOL STDMETHODCALLTYPE SetProgressValue (DWORD);
6.1 and higher
0x64 (6.1 to 6.3);
0x54
0xC8 (6.1 to 6.3);
0xA8
DWORD STDMETHODCALLTYPE GetProgressValue (VOID);
6.1 and higher
0x68 (6.1 to 6.3);
0x58
0xD0 (6.1 to 6.3);
0xB0
BOOL STDMETHODCALLTYPE SetProgressState (TBPSTATE);
6.1 and higher
0x6C (6.1 to 6.3);
0x5C
0xD8 (6.1 to 6.3);
0xB8
TBPSTATE STDMETHODCALLTYPE GetProgressState (VOID);
6.1 and higher
0x70 (6.1 to 6.3);
0x60
0xE0 (6.1 to 6.3);
0xC0
BOOL STDMETHODCALLTYPE ResetProgress (VOID);
6.1 and higher
0x74 (6.1 to 6.3);
0x64
0xE8 (6.1 to 6.3);
0xC8
HMONITOR STDMETHODCALLTYPE GetMonitor (VOID);
6.2 and higher
0x78 (6.1 to 6.3);
0x68
0xF0 (6.1 to 6.3);
0xD0
VOID STDMETHODCALLTYPE UpdateMonitor (VOID);
6.2 and higher
0x74 (6.1);
0x7C (6.2 to 6.3);
0x6C
0xE8 (6.1);
0xF8 (6.2 to 6.3);
0xD8
INT STDMETHODCALLTYPE GetNumTabs (VOID);
6.1 and higher
0x78 (6.1);
0x80 (6.2 to 6.3);
0x70
0xF0 (6.1);
0x0100 (6.2 to 6.3);
0xE0
HRESULT STDMETHODCALLTYPE AddTab (ITaskItem *);
6.1 and higher
0x7C (6.1);
0x84 (6.2 to 6.3);
0x74
0xF8 (6.1);
0x0108 (6.2 to 6.3);
0xE8
HRESULT STDMETHODCALLTYPE RemoveTab (ITaskItem *);
6.1 and higher
0x80 (6.1);
0x88 (6.2 to 6.3);
0x78
0x0100 (6.1);
0x0110 (6.2 to 6.3);
0xF0
HRESULT STDMETHODCALLTYPE SetActiveTabItem (ITaskItem *);
6.1 and higher
0x84 (6.1);
0x8C (6.2 to 6.3);
0x7C
0x0108 (6.1);
0x0118 (6.2 to 6.3);
0xF8
HRESULT STDMETHODCALLTYPE SetTabContainerItem (ITaskItem *);
6.1 and higher
0x88 (6.1);
0x90 (6.2 to 6.3);
0x80
0x0110 (6.1);
0x0120 (6.2 to 6.3);
0x0100
HRESULT STDMETHODCALLTYPE SetTabProperties (STPFLAG);
6.1 and higher
0x8C (6.1);
0x94 (6.2 to 6.3);
0x84
0x0118 (6.1);
0x0128 (6.2 to 6.3);
0x0108
ITaskItem * STDMETHODCALLTYPE GetActiveTabItem (VOID);
6.1 and higher
0x90 (6.1);
0x98 (6.2 to 6.3);
0x88
0x0120 (6.1);
0x0130 (6.2 to 6.3);
0x0110
ITaskItem * STDMETHODCALLTYPE GetTabContainerItem (VOID);
6.1 to 6.2
ITaskItem * STDMETHODCALLTYPE GetTabContainerItem (VOID) const;
6.3 and higher
0x94 (6.1);
0x9C (6.2 to 6.3);
0x8C
0x0128 (6.1);
0x0138 (6.2 to 6.3);
0x0118
BOOL STDMETHODCALLTYPE IsActiveTab (VOID);
6.1 and higher
0x98 (6.1);
0xA0 (6.2 to 6.3);
0x90
0x0130 (6.1);
0x0140 (6.2 to 6.3);
0x0120
HRESULT 
STDMETHODCALLTYPE 
ThumbBarAddButtons (
    THUMBBUTTON32 *, 
    DWORD);
6.1 to 6.3
HRESULT 
STDMETHODCALLTYPE 
ThumbBarAddButtons (
    THUMBBUTTON32 *, 
    DWORD, 
    UINT);
10.0 and higher
0x9C (6.1);
0xA4 (6.2 to 6.3);
0x94
0x0138 (6.1);
0x0148 (6.2 to 6.3);
0x0128
HRESULT STDMETHODCALLTYPE ThumbBarUpdateButton (THUMBBUTTON32 *);
6.1 and higher
0xA0 (6.1);
0xA8 (6.2 to 6.3);
0x98
0x0140 (6.1);
0x0150 (6.2 to 6.3);
0x0130
HRESULT STDMETHODCALLTYPE ThumbBarSetImageList (HIMAGELIST);
6.1 to 6.3
HRESULT 
STDMETHODCALLTYPE 
ThumbBarSetImageList (
    HIMAGELIST, 
    UINT);
10.0 and higher
0xA4 (6.1);
0xAC (6.2 to 6.3);
0x9C
0x0148 (6.1);
0x0158 (6.2 to 6.3);
0x0138
THUMBBUTTON32 *STDMETHODCALLTYPE GetThumbButtons (INT *);
6.1 and higher
0xA8 (6.1);
0xB0 (6.2 to 6.3);
0xA0
0x0150 (6.1);
0x0160 (6.2 to 6.3);
0x0140
HRESULT 
STDMETHODCALLTYPE 
GetThumbButtonById (
    UINT, 
    THUMBBUTTON32 *);
6.1 and higher
0xAC (6.1);
0xB4 (6.2 to 6.3);
0xA4
0x0158 (6.1);
0x0168 (6.2 to 6.3);
0x0148
HIMAGELIST STDMETHODCALLTYPE ThumbBarGetImageList (VOID);
6.1 and higher
0xB0 (6.1);
0xB8 (6.2 to 6.3);
0xA8
0x0160 (6.1);
0x0170 (6.2 to 6.3);
0x0150
BOOL STDMETHODCALLTYPE HasThumbBar (UINT *);
6.1 and higher
0xB4 (6.1);
0xBC (6.2 to 6.3);
0xAC
0x0168 (6.1);
0x0178 (6.2 to 6.3);
0x0158
UINT STDMETHODCALLTYPE GetThumbButtonThemePartById (UINT);
6.1 and higher
0xB0 0x0160
VOID STDMETHODCALLTYPE RemoveThumbBar (VOID);
10.0 and higher
0xC0 (6.2 to 6.3);
0xB4
0x0180 (6.2 to 6.3);
0x0168
VOID STDMETHODCALLTYPE ClearOverlayIconNoDestroy (VOID);
6.2 and higher
0xB8 (6.1);
0xC4 (6.2 to 6.3);
0xB8
0x0170 (6.1);
0x0188 (6.2 to 6.3);
0x0170
HRESULT STDMETHODCALLTYPE SetOverlayIcon (HICON);
6.1 to 6.3
HRESULT 
STDMETHODCALLTYPE 
SetOverlayIcon (
    HICON, 
    UINT);
10.0 and higher
0xBC (6.1);
0xC8 (6.2 to 6.3);
0xBC
0x0178 (6.1);
0x0190 (6.2 to 6.3);
0x0178
HRESULT STDMETHODCALLTYPE SetOverlayIconDescription (PCWSTR);
6.1 and higher
0xC0 (6.1);
0xCC (6.2 to 6.3);
0xC0
0x0180 (6.1);
0x0198 (6.2 to 6.3);
0x0180
HICON STDMETHODCALLTYPE GetOverlayIcon (VOID);
6.1 and higher
0xC4 (6.1);
0xD0 (6.2 to 6.3);
0xC4
0x0188 (6.1);
0x01A0 (6.2 to 6.3);
0x0188
PCWSTR STDMETHODCALLTYPE GetOverlayIconDescription (VOID);
6.1 and higher
0xC8 (6.1);
0xD4 (6.2 to 6.3);
0xC8
0x0190 (6.1);
0x01A8 (6.2 to 6.3);
0x0190
DWORD STDMETHODCALLTYPE GetOverlayIconTime (VOID);
6.1 and higher
0xCC (6.1);
0xD8 (6.2 to 6.3);
0xCC
0x0198 (6.1);
0x01B0 (6.2 to 6.3);
0x0198
HRESULT STDMETHODCALLTYPE SetThumbnailToolTip (PCWSTR);
6.1 and higher
0xD0 (6.1);
0xDC (6.2 to 6.3);
0xD0
0x01A0 (6.1);
0x01B8 (6.2 to 6.3);
0x01A0
PCWSTR STDMETHODCALLTYPE GetThumbnailToolTip (VOID);
6.1 and higher
0xD4 (6.1);
0xE0 (6.2 to 6.3);
0xD4
0x01A8 (6.1);
0x01C0 (6.2 to 6.3);
0x01A8
HRESULT STDMETHODCALLTYPE SetThumbnailClip (RECT *);
6.1 and higher
0xD8 (6.1);
0xE4 (6.2 to 6.3);
0xD8
0x01B0 (6.1);
0x01C8 (6.2 to 6.3);
0x01B0
HRESULT STDMETHODCALLTYPE GetThumbnailClip (RECT *);
6.1 and higher
0xE8 (6.2 to 6.3);
0xDC
0x01D0 (6.2 to 6.3);
0x01B8
DWORD STDMETHODCALLTYPE AddButtonRef (VOID);
6.2 and higher
0xEC (6.2 to 6.3);
0xE0
0x01D8 (6.2 to 6.3);
0x01C0
DWORD STDMETHODCALLTYPE RemoveButtonRef (VOID);
6.2 and higher
0xF0 (6.2 to 6.3);
0xE4
0x01E0 (6.2 to 6.3);
0x01C8
DWORD STDMETHODCALLTYPE GetButtonRef (VOID);
6.2 and higher
0xE8 0x01D0
bool STDMETHODCALLTYPE IsImmersive (VOID);
10.0 and higher
0xEC 0x01D8
IImmersiveApplication * STDMETHODCALLTYPE GetImmersiveApp (VOID);
10.0 and higher
0xF0 0x01E0
bool STDMETHODCALLTYPE IsVisibleOnCurrentVirtualDesktop (VOID);
10.0 and higher
0xF4 0x01E8
VOID STDMETHODCALLTYPE SetVisibleOnCurrentVirtualDesktop (bool);
10.0 and higher

Among the types that can be passed as arguments or be returned or be produced at addresses that are passed as arguments, an undocumented _TBPSTATE and tagTHUMBBUTTON32 are represented above by type definitions which follow age-old Microsoft conventions:

typedef enum _TBPSTATE TBPSTATE;
typedef struct tagTHUMBBUTTON32 THUMBBUTTON32;