/
githubmirror
/
Files
Обзор
Документация
Войти
/
githubmirror
/
Files
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Files.App.Storage/Windows/Managers/TaskbarManager.cs
44 строки
1 KB
0x5bfa
Code Quality: Replace raw ABI pointers with ComObject instances for safer disposal (#18684)
16 июл 2026, 18:32
Не верифицирован
16 июл 2026, 18:32
93dfb04
Код
Авторство
О чём код?
// Copyright (c) Files Community // SPDX-License-Identifier: MPL-2.0 using Windows.Win32; using Windows.Win32.Foundation; using Windows.Win32.System.Com; using Windows.Win32.UI.Shell; namespace Files.App.Storage { public unsafe class TaskbarManager : IDisposable { private ITaskbarList3? taskbarList; private static TaskbarManager? _Default = null; public static TaskbarManager Default { get; } = _Default ??= new TaskbarManager(); public TaskbarManager() { Guid CLSID_TaskbarList = typeof(TaskbarList).GUID; HRESULT hr = PInvoke.CoCreateInstance(CLSID_TaskbarList, null, CLSCTX.CLSCTX_INPROC_SERVER, out ITaskbarList3? pTaskbarList); if (hr.ThrowIfFailedOnDebug().Succeeded) hr = pTaskbarList!.HrInit().ThrowIfFailedOnDebug(); taskbarList = pTaskbarList; } public HRESULT SetProgressValue(HWND hwnd, ulong ullCompleted, ulong ullTotal) { return taskbarList?.SetProgressValue(hwnd, ullCompleted, ullTotal) ?? HRESULT.E_FAIL; } public HRESULT SetProgressState(HWND hwnd, TBPFLAG tbpFlags) { return taskbarList?.SetProgressState(hwnd, tbpFlags) ?? HRESULT.E_FAIL; } public void Dispose() { taskbarList = null; } } }