Исходный код версии 2.0
This commit is contained in:
2022-05-04 07:31:33 +03:00
parent 977c4a728b
commit c585c2f0cb
1423 changed files with 593425 additions and 0 deletions

View File

@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="3">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
<Item3 Name="Lin64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Lin64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Lin64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="linux"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item3>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="FCL"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="2">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ANBSTCP"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win32\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MajorVersionNr Value="1"/>
<RevisionNr Value="1"/>
<BuildNr Value="100"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ANBSTCP"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win32\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MajorVersionNr Value="1"/>
<RevisionNr Value="1"/>
<BuildNr Value="100"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ANBSTCP"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win32\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MajorVersionNr Value="1"/>
<RevisionNr Value="1"/>
<BuildNr Value="100"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ANBSTCP"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win32\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MajorVersionNr Value="1"/>
<RevisionNr Value="1"/>
<BuildNr Value="100"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ANBSTCP"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win32\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MajorVersionNr Value="1"/>
<RevisionNr Value="1"/>
<BuildNr Value="100"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ANBSTCP"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win32\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,187 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="3">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
<Item3 Name="Lin64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Lin64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Lin64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="linux"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item3>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="FCL"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="2">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,196 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="3">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units;data\double_commander"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
<Item3 Name="Lin64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Lin64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units;data\double_commander"/>
<UnitOutputDirectory Value="data\lib\Lin64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="linux"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item3>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="FCL"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="data\double_commander"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units;data\double_commander"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="FCL"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="data\double_commander"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="FCL"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ANBSTCP"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ANBSTCP"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ANBSTCP"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<Flags>
<SaveClosedFiles Value="False"/>
<SaveOnlyProjectUnits Value="True"/>
<MainUnitHasCreateFormStatements Value="False"/>
<MainUnitHasTitleStatement Value="False"/>
<Runnable Value="False"/>
<AlwaysBuild Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="CD Ejecter"/>
<UseAppBundle Value="False"/>
<ResourceType Value="res"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<UseVersionInfo Value="True"/>
<MinorVersionNr Value="1"/>
<Language Value="0419"/>
<StringTable CompanyName="Alexander Babaev" FileDescription="CD Ejecter Library" InternalName="cdejecter" LegalCopyright="Alexander Babaev" LegalTrademarks="Alexander Babaev" OriginalFilename="cdejecter" ProductName="CD Ejecter" ProductVersion="2.0"/>
</VersionInfo>
<BuildModes Count="2">
<Item1 Name="Win32" Default="True"/>
<Item2 Name="Win64">
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win64\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win64"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="x86_64"/>
<TargetOS Value="win64"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
</Item2>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ANBSTCP"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
</Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\installed\Win32\bin\cdejecter"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);data"/>
<OtherUnitFiles Value="..\shared_units"/>
<UnitOutputDirectory Value="data\lib\Win32"/>
</SearchPaths>
<Parsing>
<SyntaxOptions>
<SyntaxMode Value="Delphi"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<RelocatableUnit Value="True"/>
<TargetCPU Value="i386"/>
<TargetOS Value="win32"/>
<Optimizations>
<OptimizationLevel Value="4"/>
</Optimizations>
<SmallerCode Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<StripSymbols Value="True"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<LinkSmart Value="True"/>
<Options>
<ExecutableType Value="Library"/>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@@ -0,0 +1,89 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Classes, windows, LazUTF8Classes, sysutils, mmsystem, cde_types;
{$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;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if GetDriveType(PChar(S)) = DRIVE_CDROM then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,89 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses LCLIntf, 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;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if GetDriveType(PChar(S)) = DRIVE_CDROM then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,89 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, 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;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if GetDriveType(PChar(S)) = DRIVE_CDROM then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,107 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADrive: PWideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADrive + ':\*.*', faAnyfile, SRec);
FindClose(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if GetDriveType(PChar(S)) = DRIVE_CDROM then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,107 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindClose(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if GetDriveType(PChar(S)) = DRIVE_CDROM then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,107 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if GetDriveType(PChar(S)) = DRIVE_CDROM then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,107 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if GetDriveType(PChar(S)) = DRIVE_CDROM then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,107 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,141 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,141 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,141 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,89 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Classes, windows, LazUTF8Classes, sysutils, mmsystem, cde_types;
{$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;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if GetDriveType(PChar(S)) = DRIVE_CDROM then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,141 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
if Res = 0 then
Exit;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) <> dsNIL);
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,142 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
Result:= True;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
if Res = 0 then
Exit;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) <> dsNIL);
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,141 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) and (GetDiscState(ADisc) <> dsNIL) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,141 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,141 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,141 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
//if Res = 0 then
//Exit;
//Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,141 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
//if Res = 0 then
//Exit;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
//if Res = 0 then
//Exit;
//Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,139 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
//if Res = 0 then
//Exit;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,137 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils;
{$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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,143 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils, LazUTF8SysUtils;
{$R *.res}
function DiskChar2Byte (const ADiskChar: PWideChar): Byte;
const ALetters: UTF8String = 'abcdefghijklmnopqrstuvwxyz';
begin
Result:= Utf8Pos();
end;
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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
diDiscSize:= DiskSize();
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,38 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Classes, LazUTF8Classes, sysutils, cde_types{$IFDEF WINDOWS}, windows, mmsystem{$ENDIF}{$IFDEF UNIX}, {$IFDEF UseCThreads}cthreads,{$ENDIF}udrive, umyunix{$ENDIF};
{$R *.res}
function GetCDDiscs: PWideChar;
{$IFDEF WINDOWS}
{$I wGetCDDiscs_vars.inc}
{$ENDIF}
var SL: TStringListUTF8;
DL: T
begin
{$IFDEF WINDOWS}
{$I wGetCDDiscs_core.inc}
{$ENDIF}
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
{$IFDEF WINDOWS}
{$I wGetVolumeInfo_vars.inc}
{$ENDIF}
begin
{$IFDEF WINDOWS}
{$I wGetVolumeInfo_core.inc}
{$ENDIF}
end;
function EjectCD (const ADisc: WideChar): Boolean;
{$IFDEF WINDOWS}
{$I wEjectCD_vars.inc}
{$ENDIF}
begin
{$IFDEF WINDOWS}
{$I wEjectCD_core.inc}
{$ENDIF}
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,143 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils, LazUTF8;
{$R *.res}
function DiskChar2Byte (const ADiskChar: PWideChar): Byte;
const ALetters: UTF8String = 'abcdefghijklmnopqrstuvwxyz';
begin
Result:= UTF8Pos(ADiskChar, ALetters);
end;
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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
diDiscSize:= DiskSize();
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,145 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils,
LazUTF8;
{$R *.res}
function DiskChar2Byte (const ADiskChar: PWideChar): Byte;
const ALetters: UTF8String = 'abcdefghijklmnopqrstuvwxyz';
begin
Result:= UTF8Pos(ADiskChar, ALetters);
end;
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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
diDiscSize:= DiskSize(DiskChar2Byte(ADisc));
diDiscFree:= DiskFree(DiskChar2Byte(ADisc));
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,145 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils,
LazUTF8;
{$R *.res}
function DiskChar2Byte (const ADiskChar: WideChar): Byte;
const ALetters: UTF8String = 'abcdefghijklmnopqrstuvwxyz';
begin
Result:= UTF8Pos(ADiskChar, ALetters);
end;
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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
diDiscSize:= DiskSize(DiskChar2Byte(ADisc));
diDiscFree:= DiskFree(DiskChar2Byte(ADisc));
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,149 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils,
LazUTF8;
{$R *.res}
function DiskChar2Byte (const ADiskChar: WideChar): Byte;
const ALetters: UTF8String = 'abcdefghijklmnopqrstuvwxyz';
begin
Result:= UTF8Pos(ADiskChar, ALetters);
end;
function FiltreIt (const ADisc: WideChar): Boolean;
begin
Result:= False;
end;
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 GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
diDiscSize:= DiskSize(DiskChar2Byte(ADisc));
diDiscFree:= DiskFree(DiskChar2Byte(ADisc));
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,150 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils,
LazUTF8;
{$R *.res}
function DiskChar2Byte (const ADiskChar: WideChar): Byte;
const ALetters: UTF8String = 'abcdefghijklmnopqrstuvwxyz';
begin
Result:= UTF8Pos(ADiskChar, ALetters);
end;
function FiltreIt (const ADisc: WideChar): Boolean;
begin
Result:= False;
end;
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
if not FiltreIt(WideChar(AnsiLowerCase(String(Buf[i*4]))));
SL.Add(AnsiLowerCase(String(Buf[i*4])) + ':\');
end;
SL.Delimiter:= ';';
Result:= PWideChar(SL.DelimitedText);
SL.Clear;
SL.Free;
end;
function GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
diDiscSize:= DiskSize(DiskChar2Byte(ADisc));
diDiscFree:= DiskFree(DiskChar2Byte(ADisc));
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,150 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils,
LazUTF8;
{$R *.res}
function DiskChar2Byte (const ADiskChar: WideChar): Byte;
const ALetters: UTF8String = 'abcdefghijklmnopqrstuvwxyz';
begin
Result:= UTF8Pos(ADiskChar, ALetters);
end;
function FiltreIt (const ADisc: WideChar): Boolean;
begin
Result:= False;
end;
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
if not FiltreIt(WideChar(AnsiLowerCase(String(Buf[i*4])))) then
SL.Add(AnsiLowerCase(String(Buf[i*4])) + ':\');
end;
SL.Delimiter:= ';';
Result:= PWideChar(SL.DelimitedText);
SL.Clear;
SL.Free;
end;
function GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
diDiscSize:= DiskSize(DiskChar2Byte(ADisc));
diDiscFree:= DiskFree(DiskChar2Byte(ADisc));
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,151 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils, LazUTF8,
SimplyJSON;
{$R *.res}
function DiskChar2Byte (const ADiskChar: WideChar): Byte;
const ALetters: UTF8String = 'abcdefghijklmnopqrstuvwxyz';
begin
Result:= UTF8Pos(ADiskChar, ALetters);
end;
function FiltreIt (const ADisc: WideChar): Boolean;
begin
Result:= False;
end;
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
if not FiltreIt(WideChar(AnsiLowerCase(String(Buf[i*4])))) then
SL.Add(AnsiLowerCase(String(Buf[i*4])) + ':\');
end;
SL.Delimiter:= ';';
Result:= PWideChar(SL.DelimitedText);
SL.Clear;
SL.Free;
end;
function GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
diDiscSize:= DiskSize(DiskChar2Byte(ADisc));
diDiscFree:= DiskFree(DiskChar2Byte(ADisc));
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,171 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Interfaces, Classes, LazUTF8Classes, sysutils, cde_types, windows, mmsystem, LazFileUtils, LazUTF8, cde_dir,
SimplyJSON;
{$R *.res}
function DiskChar2Byte (const ADiskChar: WideChar): Byte;
const ALetters: UTF8String = 'abcdefghijklmnopqrstuvwxyz';
begin
Result:= UTF8Pos(ADiskChar, ALetters);
end;
function FiltreIt (const ADisc: WideChar): Boolean;
var ConfigFile: String;
SL: TStringListUTF8;
i: Integer;
begin
Result:= False;
ConfigFile:= GetCDEPath + 'configs\configs.json';
SL:= TStringListUTF8.Create;
SL.Delimiter:= ';';
SL.Sorted:= True;
case JSReadInteger('/filter/type', 0, ConfigFile) of
0: ;
1: begin
SL.DelimitedText:= JSReadString('/filter/whitelist', '', ConfigFile);
SL.Sort;
Result:= not (SL.Find(ADisc, i));
end;
2: begin
SL.DelimitedText:= JSReadString('/filter/blacklist', '', ConfigFile);
SL.Sort;
Result:= SL.Find(ADisc, i);
end;
end;
FreeAndNil(SL);
end;
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
if not FiltreIt(WideChar(AnsiLowerCase(String(Buf[i*4])))) then
SL.Add(AnsiLowerCase(String(Buf[i*4])) + ':\');
end;
SL.Delimiter:= ';';
Result:= PWideChar(SL.DelimitedText);
SL.Clear;
SL.Free;
end;
function GetDiscState (const ADisc: WideChar): TDiscState;
var sRec: TSearchRec;
res: Integer;
begin
Result:= dsNIL;
SetErrorMode(SEM_FAILCRITICALERRORS);
{$I-}
res:= FindFirstUTF8(ADisc + ':\*.*', faAnyfile, SRec);
FindCloseUTF8(SRec);
{$I+}
case res of
0: Result:= dsNormal;
2,18: Result:= dsEmpty;
21,3: Result:= dsNIL;
else
Result:= dsUnFormatted;
end;
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
diDiscSize:= DiskSize(DiskChar2Byte(ADisc));
diDiscFree:= DiskFree(DiskChar2Byte(ADisc));
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
Result:= (GetDiscState(ADisc) = dsNIL);
end;
function CloseCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if (GetDriveType(PChar(S)) = DRIVE_CDROM) {and (GetDiscState(ADisc) <> dsNIL)} then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetDiscState, GetVolumeInfo, EjectCD, CloseCD;
begin
end.

View File

@@ -0,0 +1,42 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Classes, LazUTF8Classes, sysutils, cde_types{$IFDEF WINDOWS}, windows, mmsystem{$ENDIF}{$IFDEF UNIX}, {$IFDEF UseCThreads}cthreads,{$ENDIF}udrive, umyunix{$ENDIF};
{$R *.res}
function GetCDDiscs: PWideChar;
{$IFDEF WINDOWS}
{$I wGetCDDiscs_vars.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lGetCDDiscs_vars.inc}
{$ENDIF}
begin
{$IFDEF WINDOWS}
{$I wGetCDDiscs_core.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lGetCDDiscs_core.inc}
{$ENDIF}
end;
function GetVolumeInfo (const ADisc: WideChar): TDiscInfo;
{$IFDEF WINDOWS}
{$I wGetVolumeInfo_vars.inc}
{$ENDIF}
begin
{$IFDEF WINDOWS}
{$I wGetVolumeInfo_core.inc}
{$ENDIF}
end;
function EjectCD (const ADisc: WideChar): Boolean;
{$IFDEF WINDOWS}
{$I wEjectCD_vars.inc}
{$ENDIF}
begin
{$IFDEF WINDOWS}
{$I wEjectCD_core.inc}
{$ENDIF}
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,48 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Classes, LazUTF8Classes, sysutils, cde_types{$IFDEF WINDOWS}, windows, mmsystem{$ENDIF}{$IFDEF UNIX}, {$IFDEF UseCThreads}cthreads,{$ENDIF}udrive, umyunix{$ENDIF};
{$R *.res}
function GetCDDiscs: PWideChar;
{$IFDEF WINDOWS}
{$I wGetCDDiscs_vars.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lGetCDDiscs_vars.inc}
{$ENDIF}
begin
{$IFDEF WINDOWS}
{$I wGetCDDiscs_core.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lGetCDDiscs_core.inc}
{$ENDIF}
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}
begin
{$IFDEF WINDOWS}
{$I wEjectCD_core.inc}
{$ENDIF}
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,54 @@
library cdejecter;
{$mode delphi}
{$codepage UTF8}
uses Classes, LazUTF8Classes, sysutils, cde_types{$IFDEF WINDOWS}, windows, mmsystem{$ENDIF}{$IFDEF UNIX}, {$IFDEF UseCThreads}cthreads,{$ENDIF}udrive, umyunix{$ENDIF};
{$R *.res}
function GetCDDiscs: PWideChar;
{$IFDEF WINDOWS}
{$I wGetCDDiscs_vars.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lGetCDDiscs_vars.inc}
{$ENDIF}
begin
{$IFDEF WINDOWS}
{$I wGetCDDiscs_core.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lGetCDDiscs_core.inc}
{$ENDIF}
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.

View File

@@ -0,0 +1,51 @@
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
{$IFDEF WINDOWS}
{$I wGetCDDiscs_core.inc}
{$ENDIF}
{$IFDEF UNIX}
{$I lGetCDDiscs_core.inc}
{$ENDIF}
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.

View File

@@ -0,0 +1,59 @@
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.

View File

@@ -0,0 +1,89 @@
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;
var root: PChar;
res: LongBool;
VolumeNameBuffer, FileSystemNameBuffer: PChar;
VolumeNameSize,FileSystemNameSize: DWORD;
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
s: String;
begin
s:= ADisc + ':\';
root:= PChar(s);
GetMem(VolumeNameBuffer, 256);
Getmem(FileSystemNameBuffer, 256);
VolumeNameSize:= 255;
FileSystemNameSize:= 255;
res:= GetVolumeInformation(Root, VolumeNameBuffer, VolumeNameSize, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize);
with Result do
begin
diHasInfo:= res;
diDrive:= ADisc;
diVolumeName:= VolumeNameBuffer;
diFileSystem:= FileSystemNameBuffer;
diSerial:= VolumeSerialNumber;
end;
Freemem(VolumeNameBuffer, 256);
Freemem(FileSystemNameBuffer, 256);
end;
function EjectCD (const ADisc: WideChar): Boolean;
var Res: MciError;
OpenParm: TMCI_Open_Parms;
Flags: DWord;
S: String;
DeviceID: Word;
begin
Result:= False;
if ADisc = '' then
Abort;
S:= ADisc + ':';
if GetDriveType(PChar(S)) = DRIVE_CDROM then
begin
Flags:= mci_Open_Type or mci_Open_Element;
with OpenParm do
begin
dwCallback:= 0;
lpstrDeviceType:= 'CDAudio';
lpstrElementName:= PChar(S);
end;
Res:= mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
if Res <> 0 then
Exit;
DeviceID:= OpenParm.wDeviceID;
try
Res:= mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
if Res = 0 then
Exit;
Result:= True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
end;
exports GetCDDiscs, GetVolumeInfo, EjectCD;
begin
end.

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Lin64"/>
<Units Count="2">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="60"/>
<CursorPos X="5" Y="85"/>
<UsageCount Value="23"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Lin64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<CursorPos X="6" Y="18"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="30"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Lin64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="2"/>
<CursorPos X="6" Y="33"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="30"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Lin64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<TopLine Value="2"/>
<CursorPos X="12" Y="27"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="3"/>
<CursorPos X="7" Y="8"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Lin64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="17"/>
<CursorPos X="6" Y="48"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="7" Y="8"/>
<UsageCount Value="30"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="7" Y="84"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="7" Y="8"/>
<UsageCount Value="30"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win32"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="7" Y="84"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="7" Y="8"/>
<UsageCount Value="30"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win32"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="41" Y="4"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="7" Y="8"/>
<UsageCount Value="30"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win32"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<CursorPos X="41" Y="4"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="25" Y="5"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win32"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="14" Y="4"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="25" Y="5"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win32"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="16" Y="4"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="25" Y="5"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Lin64"/>
<Units Count="2">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="60"/>
<CursorPos X="5" Y="85"/>
<UsageCount Value="23"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win32"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="16" Y="4"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="25" Y="5"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="16" Y="4"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="25" Y="5"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="10"/>
<CursorPos X="26" Y="33"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="28" Y="9"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="19"/>
<CursorPos X="14" Y="34"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="28" Y="9"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="40"/>
<CursorPos X="14" Y="61"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="25" Y="9"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="40"/>
<CursorPos X="14" Y="61"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="25" Y="9"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="112"/>
<CursorPos X="66" Y="138"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="37" Y="7"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="24"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="24"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="91"/>
<CursorPos X="79" Y="115"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="37" Y="7"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="24"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="24"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="112"/>
<CursorPos X="2" Y="132"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="37" Y="7"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="24"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="24"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="82"/>
<CursorPos X="3" Y="102"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="37" Y="7"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="24"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="24"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="2">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="33" Y="50"/>
<UsageCount Value="23"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="78"/>
<CursorPos Y="96"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos X="37" Y="7"/>
<UsageCount Value="31"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="24"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="24"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="13" Y="9"/>
<UsageCount Value="32"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos Y="14"/>
<UsageCount Value="32"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="25"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="25"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="36"/>
<CursorPos X="62" Y="50"/>
<UsageCount Value="32"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos Y="14"/>
<UsageCount Value="32"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="25"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="25"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win32"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="36"/>
<CursorPos X="62" Y="50"/>
<UsageCount Value="32"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="1"/>
<CursorPos Y="14"/>
<UsageCount Value="32"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="25"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="25"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="2">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="69" Y="4"/>
<UsageCount Value="27"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="27"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="2">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<CursorPos X="69" Y="4"/>
<UsageCount Value="27"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="27"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="2">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<CursorPos X="69" Y="4"/>
<UsageCount Value="27"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="27"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Win64"/>
<Units Count="2">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="51" Y="12"/>
<UsageCount Value="27"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="27"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Lin64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="10" Y="11"/>
<UsageCount Value="29"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="29"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="22"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="22"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Lin64"/>
<Units Count="4">
<Unit0>
<Filename Value="cdejecter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<CursorPos X="6" Y="18"/>
<UsageCount Value="30"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
<Unit1>
<Filename Value="..\shared_units\cde_types.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="26" Y="7"/>
<UsageCount Value="30"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
<Unit2>
<Filename Value="data\wGetCDDiscs_core.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
<Filename Value="data\wGetCDDiscs_vars.inc"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="23"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
</ProjectSession>
</CONFIG>