Как использовать интерфейс VirtualDesktopManager?

Я пытаюсь выяснить, принадлежит ли окно текущему виртуальному рабочему столу.

Я обнаружил, что класс VirtualDesktopManager формирует winapi, но, хотя он должен находиться в заголовке "shobjidl.h", как показано здесь, когда я компилирую код, он выдает эту ошибку:

85:5: ошибка: VirtualDesktopManager не был объявлен в этой области

важный фрагмент моего кода:


    #include <shobjidl.h>

    ...

    BOOL is_on_current_desktop = FALSE;
    VirtualDesktopManager g_pvdm;
    g_pvdm.IsWindowOnCurrentVirtualDesktop(hwnd, &is_on_current_desktop);  // hwnd is a window handle acquired previously
    g_pvdm.Release();

Как я мог заставить это работать?

1 ответ

Решение

Очевидно, этот интерфейс не был включен в заголовок "shobjidl.h" в mingw64, который я использовал, запустив его в Visual Studio, он его обнаружит. Так что проблема была в шапке.

Другие вопросы по тегам