Alexander c585c2f0cb Initial
Исходный код версии 2.0
2022-05-04 07:31:33 +03:00

60 lines
1.1 KiB
Plaintext

library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem;
{$R *.res}
function GetCDDiscs: PWideChar;
var i, j : Integer;
Buf : array [0..95] of Char;
SL: TStringListUTF8;
begin
GetLogicalDriveStrings(96, Buf);
for j:=0 to 25 do
if Buf[j*4+2] <> #92 then
Break;
SL:= TStringListUTF8.Create;
for i:=0 to j-1 do
begin
if GetDriveType(@Buf[i*4])= DRIVE_CDROM then
SL.Add(AnsiLowerCase(String(Buf[i*4])) + ':\');
end;
SL.Delimiter:= ';';
Result:= PWideChar(SL.DelimitedText);
SL.Clear;
SL.Free;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
{$IFDEF WINDOWS}
{$I wGetVolumeInfo_vars.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lGetVolumeInfo_vars.inc}
{$ENDIF}
begin
{$IFDEF WINDOWS}
{$I wGetVolumeInfo_core.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lGetVolumeInfo_core.inc}
{$ENDIF}
end;
function EjectCD (const ADisc: WideChar): Boolean;
{$IFDEF WINDOWS}
{$I wEjectCD_vars.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lEjectCD_vars.inc}
{$ENDIF}
begin
{$IFDEF WINDOWS}
{$I wEjectCD_core.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lEjectCD_core.inc}
{$ENDIF}
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.