Einzelnen Beitrag anzeigen

Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#1

[Korrektur] Das Handle eines Fensters herausfinden

  Alt 26. Okt 2009, 20:37
Da ich keinen besseren Ort gefunden habe hier eine kleine Korrektur zum Thread Das Handle eines Fensters herausfinden. Bitte nach Bearbeitung löschen/verschieben.

Wie an unzähligen anderen Stellen (sei es die Demokomponente TShellTreeView oder diverse C- oder Delphi-Quelltexte die man im Internet findet) wurde INVALID_HANDLE_VALUE mit ERROR_INVALID_HANDLE vertauscht. Wie mir scheint ein "Standart Fehler"

ERROR_INVALID_HANDLE wird von GetLastError geliefert, wenn man einer Funktion wie GetFileInformationByHandle() ein ungültiges Handle übergibt. Es beschreibt also den Grund für den Fehlschlag. (Result = 0, GetLastError = ERROR_INVALID_HANDLE). Die Funktion braucht ein Handle und liefert bei Erfolg eine zugehörige Datenstruktur zurück.

INVALID_HANDLE_VALUE wird als wie der Name schon sagt fehlerhaftes(ungültiges) Handle zurückgegeben wenn eine Funktion wie CreateToolHelp32Snapshot() fehlschlägt, d.h. wenn sie kein gültiges Handle zurückgibt. GetLastError liefert dann einen Grund dafür dass kein Handle geliefert werden konnte (ERROR_LUNCH_HOUR..).
Der Wert ERROR_INVALID_HANDLE könnte durchaus solch ein gültiges Handle sein welcher verarbeitet werden kann und mit CloseHandle() geschlossen werden muss!

Der Fehler tritt leider selten auf da die Funktionsaufrufe bei sauberer Programmierung ja meist erfolgreich sind.

Grüsse, Dirk
  Mit Zitat antworten Zitat