Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Delphi Taskbarlist (IID_ITaskbarList3) Win7 (https://www.delphipraxis.net/146589-taskbarlist-iid_itaskbarlist3-win7.html)

EWeiss 23. Jan 2010 07:36


Taskbarlist (IID_ITaskbarList3) Win7
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab das hier zufällig im Net gefunden ohne copyright oder anderer infos.
Vielleicht kann es ja jemand brauchen.

In VB hab ich es schon realisiert.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShlObj, ActiveX, ComObj, ExtCtrls, StdCtrls;

const
  CLSID_TaskbarList: TGUID = '{56fdf344-fd6d-11d0-958a-006097c9a090}';
  IID_ITaskbarList: TGUID = '{56FDF342-FD6D-11d0-958A-006097C9A090}';
  IID_ITaskbarList2: TGUID = '{602D4995-B13A-429b-A66E-1935E44F4317}';
  IID_ITaskbarList3: TGUID = '{ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf}';

type
  TBPF = (TBPF_NOPROGRESS = 0,
          TBPF_INDETERMINATE = 1,
          TBPF_NORMAL = 2,
          TBPF_ERROR = 4,
          TBPF_PAUSED = 8);
  TBATF = (TBATF_USEMDITHUMBNAIL = 1,
           TBATF_USEMDILIVEPREVIEW = 2);

   ITaskbarList = interface(IUnknown)
      ['{56FDF342-FD6D-11d0-958A-006097C9A090}']
      function HrInit : HResult; stdcall;
      function AddTab(hWndOwner : HWND) : HResult; stdcall;
      function DeleteTab(hWndOwner : HWND) : HResult; stdcall;
      function ActivateTab(hWndOwner : HWND) : HResult; stdcall;
      function SetActiveAlt(hWndOwner : HWND) : HResult; stdcall;
   end; { ITaskbarList }

  ITaskbarList2 = interface(ITaskbarList)
    ['{602D4995-B13A-429b-A66E-1935E44F4317}']
    function MarkFullscreenWindow(wnd : HWND; fFullscreen : bool) : HResult; stdcall;
  end;

  ITaskbarList3 = interface (ITaskbarList2)
  ['{ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf}']
    function SetProgressValue (hWnd: HWND; ullCompleted: int64; ullTotal: int64): HResult; stdcall;
    function SetProgressState (hWnd: HWND; tbpFlags: TBPF): HResult; stdcall;
    function RegisterTab (hwndTab: HWND; hwndMDI: HWND): HResult; stdcall;
    function UnregisterTab (hwndTab: HWND): HResult; stdcall;
    function SetTabOrder (hwndTab: HWND; hwndInsertBefore: HWND): HResult; stdcall;
    function SetTabActive (hwndTab: HWND; hwndMDI: HWND; tbatFlags: TBATF): HResult; stdcall;
    function ThumbBarAddButtons (hWnd: HWND; cButtons: integer; pButtons: pointer): HResult; stdcall;
    function ThumbBarUpdateButtons (hWnd: HWND; cButtons: cardinal; pButtons: pointer): HResult; stdcall;
    function ThumbBarSetImageList (hWnd: HWND; himl: pointer): HResult; stdcall;
    function SetOverlayIcon (hWnd: HWND; hIcon: HICON; pszDescription: PWideChar): HResult; stdcall;
    function SetThumbnailTooltip (hWnd: HWND; pszTip: PWideChar): HResult; stdcall;
    function SetThumbnailClip (hWnd: HWND; prcClip: PRect): HResult; stdcall;
  end;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations } 
    FTaskBarList : ITaskbarList3;
  public
    { Public declarations } 
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  FTaskBarList.SetProgressState(form1.handle, TBPF_ERROR);
  FTaskBarList.SetProgressValue(form1.handle, 45, 100);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FTaskBarList := CreateComObject(CLSID_TaskbarList) as    ITaskbarList3;
end;

end.
gruss

fkerber 23. Jan 2010 08:13

Re: Taskbarlist Win7
 
Hi!

Könntest du vielleicht auch etwas beschreiben, um was es hier geht?
Eine Quellenangabe, wo du es her hast, wäre auch nett ;)


Grüße, Frederic

EWeiss 23. Jan 2010 09:20

Re: Taskbarlist Win7
 
Zitat:

Zitat von fkerber
Hi!

Könntest du vielleicht auch etwas beschreiben, um was es hier geht?
Eine Quellenangabe, wo du es her hast, wäre auch nett ;)


Grüße, Frederic

Ich hab doch geschrieben das ich es zufällig gefunden habe ich merk mir nicht jede Quelle.
Such doch mal mit Google "Taskbarlist" und oder "IID_ITaskbarList3" dann wirst du herausfinden um was es geht.

Zudem habe ich ein Pic angehängt.

markus5766h 23. Jan 2010 10:14

Re: Taskbarlist Win7
 
Hallo
... funktioniert (Win 7 - 64bit)

Vielleicht im Titel noch "IID_ITaskbarList3" anhängen, dann wird's deutlicher.

Links :
msdn, ITaskbarList3 Interface

vlc_windows_interfaces.h

:zwinker:

EWeiss 24. Jan 2010 05:38

Re: Taskbarlist Win7
 
Zitat:

Zitat von markus5766h
Hallo
... funktioniert (Win 7 - 64bit)

Vielleicht im Titel noch "IID_ITaskbarList3" anhängen, dann wird's deutlicher.

Links :
msdn, ITaskbarList3 Interface

vlc_windows_interfaces.h

:zwinker:

Dann war es doch für was gut :)

gruss

DP-Maintenance 24. Jan 2010 12:03

DP-Maintenance
 
Dieses Thema wurde von "MrSpock" von "Windows API / MS.NET Framework API" nach "Neuen Beitrag zur Code-Library hinzufügen" verschoben.
Vorschlag von Frederic, es hierher zu schieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz