I am creating a desktop virtualization capture driver. Basically, the driver opens a virtualized desktop and captures the screen into a bitmap buffer and sends it to the client which then gets drawn onto their screen (GetDIBits
/SetDIBits
).
The problem is, the problem is with PrintWindow
in Windows 7. In Windows 8.1+ there was an extra flag added to this function PW_RENDERFULLCONTENT
which draws the entire desktop in one go, however in Windows 7 this flag doesn't exist.
My question is, how can I properly emulate this flags behaviour in Windows 7 such that all windows are drawn properly. For example, without this flag, when the host machine opens Chrome in their virtualized desktop, the PrintWindow
call fails since Chrome is rendered with Aura and PrintWindow
isn't built to handle this functionality, hence chrome is drawn with a black square in the middle: