The Vista DWM API is pretty weak in terms of what you are allowed to do (Maybe Windows 7 will be better??). For the most part you can only put a live dwm thumbnail on a 2d hwnd, which is pretty boring. With a bit of hacking, I got a couple undocumented dwm api methods ported to .NET that let you tap a little closer into the dwm. Now with any hWnd that is using Direct3D (Dx9, Dx10, WPF), I can render the hWnd to any WPF surface (thanks D3DImage).
In this video, the window on the right is a DX10 sample from the DX SDK, on the left is a WPF window, rendering the contents of the DX10 window.
http://www.youtube.com/watch?v=tD9FjFVC5aI
Here are the undocumented dwm API calls. There's a little more code for the "magic"...but it's documented in the 9Ex so I'll leave that stuff out.
[PreserveSig]
[DllImport("dwmapi.dll", EntryPoint="#101")]
public static extern int UpdateWindowShared(IntPtr hWnd, int one, int two, int three, IntPtr hMonitor, IntPtr unknown);
[PreserveSig]
[DllImport("dwmapi.dll", EntryPoint = "#100")]
public static extern int GetSharedSurface(IntPtr hWnd, Int64 adapterLuid, uint one, uint two, [In, Out]ref uint pD3DFormat, [Out]out IntPtr pSharedHandle, UInt64 unknownArg);
-Jer