Oct
22
Written by:
Jeremiah Morrill
10/22/2007 3:28 AM

If you've messed with the DWM API for Vista you'll have already realized that it kinda sucks. There's only an API for creating live 2D thumbnails on hWnds. The DWM actually renders all Windows to Direct3D textures. If we had access to these textures, we'd be able to do some pretty wicked things with the desktop. Sadly these API calls are locked away from us and we can only gaze upon what Vista "could have been" via Flip3D.
I have been trying to hack away at the DWM API(dwmapi.dll) and I believe I have made some progress. I am able to get the Direct3D texture for and hWnd and use it within a Direct3D application. The problem is I seem to only be able to get hWnds that are using 3D, so GDI redirected windows render black.
Here is a video of my progress. It's not anything visually jaw dropping, but it shows one application rendering another application as a texture on a 3D surface...all through DWM!
Video linked below.
DWM Hack Video
Tags:
2 comments so far...
Re: DWM Hacking
Great job!!!!!!!!!!!! Currently I'm working on a Multitouch API for WPF. Also I'm working on a shell that uses Mutltitouch and completely replaces windows desktop. Before now I was using PrintWindow to get images from any non wpf application. This allows me to move, rotate and scale them. Also it is possible to send mouse input to this applications. But PrintWindow is limitted only to one window. That is why no PopUps are visible. But now you have found a better solution. Is it possible that you share source code? Thank you, Nesher
By Nesher on
2/3/2008 6:18 AM
|
Re: DWM Hacking
This is great work Jeremiah. I know its been a while since youve posted this but do you ever plan on releasing any of it? Im trying to capture the output of a fullscreen directx game and I would like to directly use the API rather than go down the root of hooking DWM.exe
By Jimmy on
8/5/2008 2:05 AM
|