ShObjIdl.idl。HWND 改為 long 以利 Managed 互通。midl 編譯產生 ShObjIdl.tlb。tlbimp 產生 Managed DLL(ShObjIdl.dll),專案加入參考。// 進度狀態列舉
private enum TbpFlag {
TBPF_ERROR = 1,
TBPF_PAUSED = 2,
TBPF_NORMAL = 3,
TBPF_INDETERMINATE = 4
}
// 關鍵方法
ITaskbarList3.SetProgressState(hwnd, TbpFlag);
ITaskbarList3.SetProgressValue(hwnd, completed, total);
// 設定正常進度狀態
taskbarList.SetProgressState(this.Handle, TbpFlag.TBPF_NORMAL);
// 更新進度 50/100
taskbarList.SetProgressValue(this.Handle, 50, 100);
參考 PDC 2008 白皮書,同樣流程可實作 Jump List、縮圖工具列、覆疊圖示等工作列新功能。C++ 原生開發更簡直接,參考 SDK 範例 TaskbarIntegration\PeripheralStatus。