Projekte > Optische Laufwerke > Anhang

DriveHandleReadWrite

In den Kapiteln sind Beispielfunktionen enthalten, welchen immer ein Handle übergeben wird. Dies erfolgt weil in den Demos mehrere Funktionen hintereinander ausgeführt werden und so nur einmal ein Handle geholt werden muss. Bei diesem Handle werden Lese- und Schreibrechte angefordert.

 
  functionDriveHandleReadWrite
  : THandle;
          

 

Parameter

Der Funktion wird kein Parameter übergeben, weil das Laufwerk innerhalb der Klasse eingestellt wird. Es wird in der Funktion die entsprechende Variable verwendet.

 

Rückgabewert

Der Rückgabewert ist das Handle auf das Laufwerk. Seine Gültigkeit wird nicht geprüft.

 

Der Quelltext der Funktion

 
  function TOptDrives.DriveHandleReadWrite: THandle;
  {*******************************************************************************
  *  Das Handle zum Lesen und Schreiben auf das aktive Laufwerk holen.
  }
  var
    dwDesiredAccess : Cardinal;
    dwShareMode     : Cardinal;
  begin
    dwDesiredAccess := GENERIC_READ or GENERIC_WRITE;
    dwShareMode     := FILE_SHARE_READ or FILE_SHARE_WRITE;

    Result := CreateFileA(PAnsiChar(Format('\\.\%s:', [fDrive[fActive].Letter])),
                          dwDesiredAccess, dwShareMode, nil, OPEN_EXISTING, 0, 0);
  end;
        

Wenn das Handle nicht mehr benötigt wird, wird es wieder geschlossen:

 
  CloseHandle(hDevice);