我试图找出一个窗口是否属于当前的虚拟桌面。

我从winapi找到了VirtualDesktopManager类,但是即使根据here,它应该位于“shobjidl.h” header 中,当我编译代码时也会引发此错误:



我的代码的重要部分:


    #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();

我该如何进行这项工作?

最佳答案

显然,此接口(interface)未包含在我正在使用的mingw64的“shobjidl.h” header 中,在Visual Studio中运行它会找到它。因此,问题出在标题中。

10-08 16:05