WinAPI

CloseHandle

  • 2006-08-13 21:54
  • 0 komentarzy
  • 969 odsłon
  • Oceń ten tekst jako pierwszy
//C
BOOL CloseHandle(
  HANDLE hObject
);

//Delphi
function CloseHandle(): BOOL;

Funkcja CloseHandle zamyka uchwyt obiektu.


Parametry
hObject
Otwarty uchwyt obiektu. Wartością może być również pseudo-uchwyt jak i INVALID_HANDLE_VALUE.


Wartość zwracana
Jeśli funkcja się powiedzie, zwraca wartość różną od 0 (True)

Jeśli funkcja się nie powiedzie, zwraca wartość 0 (False). Dodatkowe informacje o błędzie można pobrać za pomocą funkcji GetLastError..

Jeśli aplikacja pracuje pod kontrolą debuggera, funkcja rzuci wyjątek jeśli jej parametrem będzie niewłaściwy uchwyt lub pseudo-uchwyt. Może się to zdarzyć w przypadku wielokrotnego zamykania tego samego uchwytu lub próby zamknięcia uchwytu zwróconego przez funkcję FindFirstFile.


Uwagi
Funkcja CloseHandle zamyka uchwyty następujących obiektów:
  • Access token
  • Communications device
  • Console input
  • Console screen buffer
  • Event
  • File
  • File mapping
  • Job
  • Mailslot
  • Memory resource notification
  • Mutex
  • Named pipe
  • Pipe
  • Process
  • Semaphore
  • Socket
  • Thread
  • Waitable timer
Funkcja CloseHandle unieważnia określony uchwyt i zmniejsza ilość uchwytów danego obiektu. Obiekt jest usuwany gdy ostatni jego uchwyt zostanie zamknięty.

Zamknięcie uchwytu wątku nie powoduje zakończenia tego wątku. Aby usunąć wątek należy go zakończyć (np. funkcją TerminateThread) i zamknąć wszystkie jego uchwyty.

Uchwyt zwrócony funkcją CreateFile zamyka się za pomocą funkcji CloseHandle. Uchwyt zwrócony funkcją FindFirstFile zamyka się wywołując funkcję FindClose.


Zobacz też