Als zusätzlichen Vortrag zu den anderen Antworten finden Sie diesen OldNewThing Blog-Eintrag über inkonsistente Handle-Rückgabewerte.
Wie von Microsoft in ihrer Dokumentation dargelegt (und demonstriert in der Beschreibung von Joshua ,) ist es implementierungsabhängig, also zu sprechen:
Es beschreibt das Format eines ungültigen Handles.
Zum Beispiel einige handles verwenden -1 als ungültigen Handle-Wert, andere verwenden 0 . Des Weiteren Ableitungen dieser Klasse (z. B. Datei- oder Registrierungshandles) können Spezialisieren Sie dies weiter . Ein Beispiel finden Sie in der SafeFileHandle-Klasse einer Klasse, die von SafeHandleZeroOrMinusOneIsInvalid abgeleitet ist.
Ich denke, Sie lesen zu viel in den Namen: Das bedeutet, dass einige APIs nach Konvention 0 zurückgeben, um Fehler anzuzeigen, andere geben -1 zurück. Für eine API, die -1 zurückgibt, bedeutet dies nicht, dass 0 jemals ein gültiger Handle sein wird, nur dass die API -1 zurückgibt, um einen Fehler anzuzeigen.
Es handelt sich also um den Wert, der normalerweise von einer API verwendet wird, um einen Fehler anzuzeigen. Es sagt nichts darüber aus, ob andere Handle-Werte für einen bestimmten Satz von APIs gültig sind oder nicht.