Sorry für Doppelpost, ich will aber dass es jeder mitbekommt. Ich habs geschafft! Der Beispielcode ist noch alles andere als sauber aber es funktioniert
Code: Alles auswählen
; Author: DarkDragon
Interface ITaskbarList3 Extends ITaskbarList2
SetProgressValue(hWnd, Completed.q, Total.q)
SetProgressState(hWnd, Flags.l)
RegisterTab(hWndTab, hWndMDI)
UnregisterTab(hWndTab)
SetTabOrder(hWndTab, hwndInsertBefore)
SetTabActive(hWndTab, hWndMDI, dwReserved.l)
ThumbBarAddButtons(hWnd, cButtons, *pButtons)
ThumbBarUpdateButtons(hWnd, cButtons, *pButtons)
ThumbBarSetImageList(hWnd, himl)
SetOverlayIcon(hWnd, hIcon, pszDescription.s)
SetThumbnailTooltip(hWnd, pszTip.s)
SetThumbnailClip(hWnd, *prcClip.RECT)
EndInterface
#TBPF_NoProgress = $00
#TBPF_Indeterminate = $01
#TBPF_Normal = $02
#TBPF_Error = $04
#TBPF_Paused = $08
#CLSCTX_INPROC_SERVER = 1
#CLSCTX_LOCAL_SERVER = 4
#CLSCTX_SERVER = #CLSCTX_INPROC_SERVER | #CLSCTX_LOCAL_SERVER
OpenWindow(0, 10, 0, 300, 50, "Test")
CoInitialize_(0)
*tb.ITaskbarList3
ret = CoCreateInstance_(?CLSID_TaskbarList, 0, #CLSCTX_SERVER, ?IID_ITaskbarList, @*tb)
If ret = 0
*tb\SetProgressState(WindowID(0), #TBPF_Normal)
Else
Debug "Error:"
Debug ret
EndIf
i = 0
Repeat
i + 1
*tb\SetProgressValue(WindowID(0), i % 1000, 1000)
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
Break
EndSelect
Delay(1)
ForEver
CoUninitialize_()
End
DataSection
CLSID_TaskbarList:
; 56FDF344-FD6D-11D0-958A-006097C9A090
Data.l $56FDF344
Data.w $FD6D, $11D0, $8A95
Data.b $00, $60, $97, $C9, $A0, $90
IID_ITaskbarList:
; {56FDF342-FD6D-11D0-958A-006097C9A090}
Data.l $56FDF342
Data.w $FD6D, $11D0, $8A95
Data.b $00, $60, $97, $C9, $A0, $90
EndDataSection
Da geht noch weitaus mehr wenn man sich da einarbeitet. Auch solche Buttons etc. macht man glaube ich damit ins Vorschaufenster.
[EDIT]
Code geupdated.