Skip to content

Commit

Permalink
On Windows, check whether CoCreateInstance succeeds
Browse files Browse the repository at this point in the history
  • Loading branch information
WINSDK authored and kchibisov committed Mar 2, 2023
1 parent 2e4dafc commit 339d57b
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ And please only add new entries to the top of this list, right below the `# Unre
- Web: Added support for `Window::theme`.
- On Wayland, fix rounding issues when doing resize.
- On macOS, fix wrong focused state on startup.
- On Windows, fix crash on setting taskbar when using Visual Studio debugger.

# 0.28.1

Expand Down
14 changes: 10 additions & 4 deletions src/platform_impl/windows/window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1218,10 +1218,13 @@ unsafe fn taskbar_mark_fullscreen(handle: HWND, fullscreen: bool) {
&IID_ITaskbarList2,
&mut task_bar_list2 as *mut _ as *mut _,
);
if hr != S_OK {
// In visual studio retrieving the taskbar list fails
return;
}

let hr_init = (*(*task_bar_list2).lpVtbl).parent.HrInit;

if hr != S_OK || hr_init(task_bar_list2.cast()) != S_OK {
if hr_init(task_bar_list2.cast()) != S_OK {
// In some old windows, the taskbar object could not be created, we just ignore it
return;
}
Expand All @@ -1247,10 +1250,13 @@ pub(crate) unsafe fn set_skip_taskbar(hwnd: HWND, skip: bool) {
&IID_ITaskbarList,
&mut task_bar_list as *mut _ as *mut _,
);
if hr != S_OK {
// In visual studio retrieving the taskbar list fails
return;
}

let hr_init = (*(*task_bar_list).lpVtbl).HrInit;

if hr != S_OK || hr_init(task_bar_list.cast()) != S_OK {
if hr_init(task_bar_list.cast()) != S_OK {
// In some old windows, the taskbar object could not be created, we just ignore it
return;
}
Expand Down

0 comments on commit 339d57b

Please sign in to comment.