This library purpose is to extract a valid DirectX 10 texture from any window on Windows 7. Please note that I don't support it anymore, but I released the code for people to use.
How it works
The library injects itself system wide, but behaves differently depending on which process it's in.
If it's not in the DWM process, it will hook all draws and draw a special pixel in the center of the window containing the HWND encoded in RGB.
If the process is DWM, it will hook itself on DX10's drawing calls and look for this special pixel.
It will then maintain a
HWND <--> TextureHandle mapping, allowing the DWMaxx2
API to query it for the texture shared handle for a particular HWND.
How to use
Look at the code in
Tutorial07. This is the modified Tutorial 7 from the
DX10 SDK, modified to get the texture of a Chrome window (class
so it should be pretty simple for everyone.
HRESULT DwmaxxLoad(); HRESULT DwmaxxUnload(); BOOL DwmaxxIsLoaded(); HANDLE DwmaxxGetWindowSharedHandle(HWND hWnd); void DwmaxxGetWindowSharedHandleAsync(HWND hWnd, HWND callbackHwnd); void DwmaxxRemoveWindow(HWND hWnd);