HRESULT CALLBACK TaskDialogErrorProc( _In_ HWND hwndDlg, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam, _In_ LONG_PTR dwRefData ) { PUPLOAD_CONTEXT context = (PUPLOAD_CONTEXT)dwRefData; switch (uMsg) { case TDN_NAVIGATED: { if (context->TaskbarListClass) { ITaskbarList3_SetProgressValue(context->TaskbarListClass, PhMainWndHandle, 1, 1); ITaskbarList3_SetProgressState(context->TaskbarListClass, PhMainWndHandle, TBPF_ERROR); } } break; } return S_OK; }
static bool win32_set_window_progress(void *data, int progress, bool finished) { HWND hwnd = win32_get_window(); dispserv_win32_t *serv = (dispserv_win32_t*)data; if (serv) serv->progress = progress; #ifdef HAS_TASKBAR_EXT if (!g_taskbarList || !win32_taskbar_is_created()) return false; if (progress == -1) { if (ITaskbarList3_SetProgressState( g_taskbarList, hwnd, TBPF_INDETERMINATE) != S_OK) return false; } else if (finished) { if (ITaskbarList3_SetProgressState( g_taskbarList, hwnd, TBPF_NOPROGRESS) != S_OK) return false; } else if (progress >= 0) { if (ITaskbarList3_SetProgressState( g_taskbarList, hwnd, TBPF_NORMAL) != S_OK) return false; if (ITaskbarList3_SetProgressValue( g_taskbarList, hwnd, progress, 100) != S_OK) return false; } #endif return true; }