I don't have a whole lot of time, even for this post. Been bombarded with work. I still wanted to share my latest concoction.
Simply put, I am able to grab the Direct3D shared Surface the Vista DWM uses (undocumented API) to paint all Direct3D based windows. Once I have that, I am able to use it as a "VisualBrush" in WPF or I can copy the Direct3D Surface to system memory for very high frame rate captures.and you can stream it out too.to Silverlight even! This idea is similar in concept to Fraps, but Fraps uses DLL injection and method hooking (I suspect).
Here is a video showing a Direct3D sample application (lower left), also rendering to a WPF application (upper left, notice the cliché reflection), then you have it being streamed to a Silverlight MediaElement (wmv format), in real-time. (On a side note, SL streaming service is great compared to the quality of YouTube. Check it out in fullscreen!)
Here is a WPF application being streamed to Silverlight.
Here is the source for the application. It's very ugly code, but it's only a quick prototype I threw together. I use SlimDX, so if you have any issues using it, make sure to install the latest DX runtimes here.
http://jmorrill.hjtcentral.com/Portals/21/blog/DxCapture.zip
Note, if you wish to just render the DWM surface to the application, leave the output filename blank and do not select "network stream". If you wish to stream the application video, just check the network stream checkbox and you can open the video in Windows Media Player by opening the url: http://localhost:selectedport/
-Jer