没有桌面的内存 DC 的 CreateDC()、CreateCompatibleDC() 或类似的

CreateDC(), CreateCompatibleDC() or similar for a memory DC without a desktop

我想创建一个 Memory Device Context,我可以用它来调用 GDI 函数,从没有的程序中绘制 windows(使用 WM_PRINTCLIENT)等访问桌面(例如,从没有桌面权限或锁定屏幕的 windows 服务)。

通常,我会使用CreateCompatibleDC(),但它需要一个源hDC 来复制,因此如果调用程序没有桌面,则此功能不可用。 CreateDC("DISPLAY",...) 也会因为同样的原因在这里失败。

我需要的是一个 软件 设备上下文,能够 运行 任何正常的 DC 调用,但绑定到我可以用来从中获取结果的特定 BITMAP .

有办法解决吗?也许从打印机驱动程序借用? (我不需要高性能)。

我需要它在 Windows Server 2019 上工作,我可以使用 C#、C++ 等。

CreateCompatibleDC(nullptr) 将在这种情况下起作用。