@@ -6,30 +6,54 @@ namespace Hi3Helper.Win32.TaskbarListCOM
6
6
{
7
7
public class TaskbarList
8
8
{
9
- private ITaskbarList3 ? m_taskbarList ;
9
+ private readonly ITaskbarList3 ? m_taskbarList ;
10
10
11
11
public TaskbarList ( )
12
12
{
13
- ComMarshal . CreateInstance ( new Guid ( CLSIDGuid . CLSID_TaskbarList ) ,
14
- 0 ,
15
- CLSCTX . CLSCTX_INPROC_SERVER ,
16
- out ITaskbarList3 ? taskbarList ) . ThrowOnFailure ( ) ;
17
- m_taskbarList = taskbarList ;
13
+ try
14
+ {
15
+ ComMarshal . CreateInstance ( new Guid ( CLSIDGuid . CLSID_TaskbarList ) ,
16
+ 0 ,
17
+ CLSCTX . CLSCTX_INPROC_SERVER ,
18
+ out ITaskbarList3 ? taskbarList ) . ThrowOnFailure ( ) ;
19
+ m_taskbarList = taskbarList ;
20
+ }
21
+ catch ( Exception )
22
+ {
23
+ // ignore
24
+ }
18
25
}
19
26
20
27
~ TaskbarList ( )
21
28
{
22
- ComMarshal . FreeInstance ( m_taskbarList ) ;
29
+ if ( m_taskbarList != null )
30
+ {
31
+ ComMarshal . FreeInstance ( m_taskbarList ) ;
32
+ }
23
33
}
24
34
25
35
public int SetProgressState ( nint hwnd , TaskbarState state )
26
36
{
27
- return m_taskbarList ! . SetProgressState ( hwnd , state ) ;
37
+ try
38
+ {
39
+ return m_taskbarList ? . SetProgressState ( hwnd , state ) ?? 0 ;
40
+ }
41
+ catch ( Exception )
42
+ {
43
+ return 0 ;
44
+ }
28
45
}
29
46
30
47
public int SetProgressValue ( nint hwnd , ulong ullCompleted , ulong ullTotal )
31
48
{
32
- return m_taskbarList ! . SetProgressValue ( hwnd , ullCompleted , ullTotal ) ;
49
+ try
50
+ {
51
+ return m_taskbarList ? . SetProgressValue ( hwnd , ullCompleted , ullTotal ) ?? 0 ;
52
+ }
53
+ catch ( Exception )
54
+ {
55
+ return 0 ;
56
+ }
33
57
}
34
58
}
35
59
}
0 commit comments