Again, I'm not a Win32 expert, but can't you get a handle to any open window on the system (given appropriately privileges) and capture its contents? I suppose this depends on what you are trying to do. If this is your application that you coded, I would program it better to support multiple targets for rendering. If it's a 3rd party app, you can go for that "screenshot"-like approach, although that probably only works well if you know when to capture and the contents are not changing too quickly.