uses ... ShlObj
..
// in class
FTaskbarList: ITaskbarList;
FTaskbarList3: ITaskbarList3;
..
..
// in FormCreate or FormShow
if (CheckWin32Version(6, 1)) then begin
FTaskbarList := CreateComObject(CLSID_TaskbarList) as ITaskbarList;
FTaskbarList.HrInit;
if (Supports(FTaskbarList, ITaskbarList3, FTaskbarList3)) then begin
FTaskbarList3 := CreateComObject(CLSID_TaskbarList) as ITaskbarList3;
end;
end;
..
procedure TFormMain.PrcThumbButtons;
var
Buttons: array [1..2] of THUMBBUTTON;
i: Integer;
begin
Buttons[1].iId := 41;
if (FilePrior1.Enabled) then begin
Buttons[1].dwFlags := THBF_ENABLED;
Buttons[1].iBitmap := 0;
StrCopy(Buttons[1].szTip, 'Prior');
end else begin
Buttons[1].dwFlags := THBF_DISABLED;
Buttons[1].iBitmap := 1;
StrCopy(Buttons[1].szTip, '');
end;
Buttons[2].iId := 42;
if (FileNext1.Enabled) then begin
Buttons[2].dwFlags := THBF_ENABLED;
Buttons[2].iBitmap := 2;
StrCopy(Buttons[2].szTip, 'Next');
end else begin
Buttons[2].dwFlags := THBF_DISABLED;
Buttons[2].iBitmap := 3;
StrCopy(Buttons[2].szTip, '');
end;
{$IFDEF FPC}
if (FThumbButtonsFlag = '') then begin
FTaskbarList3.ThumbBarSetImageList(Application.Handle, ImageList2.Reference[0].Handle);
FTaskbarList3.ThumbBarAddButtons(Application.Handle, Length(Buttons), @Buttons);
end else
FTaskbarList3.ThumbBarUpdateButtons(Application.Handle, Length(Buttons), @Buttons);
{$ELSE}
if (FThumbButtonsFlag = '') then begin
FTaskbarList3.ThumbBarSetImageList(Handle, ImageList2.Handle);
FTaskbarList3.ThumbBarAddButtons(Handle, Length(Buttons), @Buttons);
end else
FTaskbarList3.ThumbBarUpdateButtons(Handle, Length(Buttons), @Buttons);
{$ENDIF}
FThumbButtonsFlag := NewFlag;
end;