I\'ve got DirectShow based screen capture software. Internally it calls CopyScreenToBitmap function to grab screen. Then the picture is compressed by ffdshow. It works fine
As I understand it, a change was made in Vista that moved services onto a separate desktop from the console user. While you have ticked the box that "allows access" to the desktop, I think you still have to pragmatically switch your service to use that desktop.
Here is a blog post with some useful info and examples.