Auch das wird bei Overlays (was u.a.
DirectX teilweise nutzt) nicht immer zum gewünschten Ergebnis führen. Man muss einfach bedenken, dass Windows an und für sich im Normalfall überhaupt keine Kenne von dem Dargestellten hat, da es an sämtlichen "normalen" APIs für die Anzeige vorbei geführt wird, und in der Folge
DirectX->Treiber->Hardware kommuniziert wird, nicht wie sonst
WinAPI->
GDI->HAL->Treiber->Hardware. Wenn man nun also Ergebnisse aus
WinAPI/
GDI Calls bekommt, liegt das nur daran, dass irgendwo mitten drin Spiel oder Windows selbst irgendwo auf diese zurückgegriffen haben.
Ein Beispiel: Ich habe von World of Warcraft mit der
DC(0)-Methode problemlos Screenshots machen können - solange es im Windowed-Mode lief! Sobald es in Vollbild war, sind offenbar ein paar Umwege über die
WinAPI weg gefallen, und alles was dann noch kam war schwarz, oder manchmal irgendwelche Reste die noch im Framebuffer rumlagen.
Daher: Der
einzig sicher zum Ziel führende Weg ist das Hooking. Alles was irgendwie über "normale" Windows-Calls läuft
kann klappen, wird es aber nicht immer bzw. selten.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)