You can only do so much. Reading from a display adapter is slow no matter what you do. The best you could hope for is full read/write access directly to video RAM, which you're not going to get in a generic way that works on all machines. Your frame rate is pretty much unrealistic - especially for full screen. For example, just one of my screens at 30fps would require over 200MB of pixel data to be copied per second, and that's just getting the raw data. Then you probably need to do something with all that data. I've found GDI to be the most efficient, and the capture time is pretty insignificant compared with actually processing the data (compressing, saving, etc.). Good luck :) Mark
Mark Salsbery Microsoft MVP - Visual C++ :java: