Initial
Исходный код версии 2.0
This commit is contained in:
186
sources/cdejecter_dll/__history/cdejecter.lpi;1
Normal file
186
sources/cdejecter_dll/__history/cdejecter.lpi;1
Normal 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>
|
160
sources/cdejecter_dll/__history/cdejecter.lpi;10
Normal file
160
sources/cdejecter_dll/__history/cdejecter.lpi;10
Normal 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>
|
162
sources/cdejecter_dll/__history/cdejecter.lpi;11
Normal file
162
sources/cdejecter_dll/__history/cdejecter.lpi;11
Normal 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>
|
162
sources/cdejecter_dll/__history/cdejecter.lpi;12
Normal file
162
sources/cdejecter_dll/__history/cdejecter.lpi;12
Normal 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>
|
162
sources/cdejecter_dll/__history/cdejecter.lpi;13
Normal file
162
sources/cdejecter_dll/__history/cdejecter.lpi;13
Normal 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>
|
162
sources/cdejecter_dll/__history/cdejecter.lpi;14
Normal file
162
sources/cdejecter_dll/__history/cdejecter.lpi;14
Normal 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>
|
162
sources/cdejecter_dll/__history/cdejecter.lpi;15
Normal file
162
sources/cdejecter_dll/__history/cdejecter.lpi;15
Normal 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>
|
187
sources/cdejecter_dll/__history/cdejecter.lpi;2
Normal file
187
sources/cdejecter_dll/__history/cdejecter.lpi;2
Normal 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>
|
196
sources/cdejecter_dll/__history/cdejecter.lpi;3
Normal file
196
sources/cdejecter_dll/__history/cdejecter.lpi;3
Normal 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>
|
157
sources/cdejecter_dll/__history/cdejecter.lpi;4
Normal file
157
sources/cdejecter_dll/__history/cdejecter.lpi;4
Normal 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>
|
157
sources/cdejecter_dll/__history/cdejecter.lpi;5
Normal file
157
sources/cdejecter_dll/__history/cdejecter.lpi;5
Normal 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>
|
160
sources/cdejecter_dll/__history/cdejecter.lpi;6
Normal file
160
sources/cdejecter_dll/__history/cdejecter.lpi;6
Normal 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>
|
160
sources/cdejecter_dll/__history/cdejecter.lpi;7
Normal file
160
sources/cdejecter_dll/__history/cdejecter.lpi;7
Normal 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>
|
160
sources/cdejecter_dll/__history/cdejecter.lpi;8
Normal file
160
sources/cdejecter_dll/__history/cdejecter.lpi;8
Normal 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>
|
160
sources/cdejecter_dll/__history/cdejecter.lpi;9
Normal file
160
sources/cdejecter_dll/__history/cdejecter.lpi;9
Normal 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>
|
89
sources/cdejecter_dll/__history/cdejecter.lpr;1
Normal file
89
sources/cdejecter_dll/__history/cdejecter.lpr;1
Normal 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.
|
||||
|
89
sources/cdejecter_dll/__history/cdejecter.lpr;10
Normal file
89
sources/cdejecter_dll/__history/cdejecter.lpr;10
Normal 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.
|
||||
|
89
sources/cdejecter_dll/__history/cdejecter.lpr;11
Normal file
89
sources/cdejecter_dll/__history/cdejecter.lpr;11
Normal 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.
|
||||
|
107
sources/cdejecter_dll/__history/cdejecter.lpr;12
Normal file
107
sources/cdejecter_dll/__history/cdejecter.lpr;12
Normal 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.
|
||||
|
107
sources/cdejecter_dll/__history/cdejecter.lpr;13
Normal file
107
sources/cdejecter_dll/__history/cdejecter.lpr;13
Normal 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.
|
||||
|
107
sources/cdejecter_dll/__history/cdejecter.lpr;14
Normal file
107
sources/cdejecter_dll/__history/cdejecter.lpr;14
Normal 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.
|
||||
|
107
sources/cdejecter_dll/__history/cdejecter.lpr;15
Normal file
107
sources/cdejecter_dll/__history/cdejecter.lpr;15
Normal 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.
|
||||
|
107
sources/cdejecter_dll/__history/cdejecter.lpr;16
Normal file
107
sources/cdejecter_dll/__history/cdejecter.lpr;16
Normal 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.
|
||||
|
141
sources/cdejecter_dll/__history/cdejecter.lpr;17
Normal file
141
sources/cdejecter_dll/__history/cdejecter.lpr;17
Normal 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.
|
||||
|
141
sources/cdejecter_dll/__history/cdejecter.lpr;18
Normal file
141
sources/cdejecter_dll/__history/cdejecter.lpr;18
Normal 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.
|
||||
|
141
sources/cdejecter_dll/__history/cdejecter.lpr;19
Normal file
141
sources/cdejecter_dll/__history/cdejecter.lpr;19
Normal 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.
|
||||
|
89
sources/cdejecter_dll/__history/cdejecter.lpr;2
Normal file
89
sources/cdejecter_dll/__history/cdejecter.lpr;2
Normal 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.
|
||||
|
141
sources/cdejecter_dll/__history/cdejecter.lpr;20
Normal file
141
sources/cdejecter_dll/__history/cdejecter.lpr;20
Normal 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.
|
||||
|
142
sources/cdejecter_dll/__history/cdejecter.lpr;21
Normal file
142
sources/cdejecter_dll/__history/cdejecter.lpr;21
Normal 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.
|
||||
|
141
sources/cdejecter_dll/__history/cdejecter.lpr;22
Normal file
141
sources/cdejecter_dll/__history/cdejecter.lpr;22
Normal 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.
|
||||
|
141
sources/cdejecter_dll/__history/cdejecter.lpr;23
Normal file
141
sources/cdejecter_dll/__history/cdejecter.lpr;23
Normal 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.
|
||||
|
141
sources/cdejecter_dll/__history/cdejecter.lpr;24
Normal file
141
sources/cdejecter_dll/__history/cdejecter.lpr;24
Normal 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.
|
||||
|
141
sources/cdejecter_dll/__history/cdejecter.lpr;25
Normal file
141
sources/cdejecter_dll/__history/cdejecter.lpr;25
Normal 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.
|
||||
|
141
sources/cdejecter_dll/__history/cdejecter.lpr;26
Normal file
141
sources/cdejecter_dll/__history/cdejecter.lpr;26
Normal 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.
|
||||
|
139
sources/cdejecter_dll/__history/cdejecter.lpr;27
Normal file
139
sources/cdejecter_dll/__history/cdejecter.lpr;27
Normal 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.
|
||||
|
137
sources/cdejecter_dll/__history/cdejecter.lpr;28
Normal file
137
sources/cdejecter_dll/__history/cdejecter.lpr;28
Normal 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.
|
||||
|
143
sources/cdejecter_dll/__history/cdejecter.lpr;29
Normal file
143
sources/cdejecter_dll/__history/cdejecter.lpr;29
Normal 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.
|
||||
|
38
sources/cdejecter_dll/__history/cdejecter.lpr;3
Normal file
38
sources/cdejecter_dll/__history/cdejecter.lpr;3
Normal 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.
|
||||
|
143
sources/cdejecter_dll/__history/cdejecter.lpr;30
Normal file
143
sources/cdejecter_dll/__history/cdejecter.lpr;30
Normal 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.
|
||||
|
145
sources/cdejecter_dll/__history/cdejecter.lpr;31
Normal file
145
sources/cdejecter_dll/__history/cdejecter.lpr;31
Normal 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.
|
||||
|
145
sources/cdejecter_dll/__history/cdejecter.lpr;32
Normal file
145
sources/cdejecter_dll/__history/cdejecter.lpr;32
Normal 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.
|
||||
|
149
sources/cdejecter_dll/__history/cdejecter.lpr;33
Normal file
149
sources/cdejecter_dll/__history/cdejecter.lpr;33
Normal 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.
|
||||
|
150
sources/cdejecter_dll/__history/cdejecter.lpr;34
Normal file
150
sources/cdejecter_dll/__history/cdejecter.lpr;34
Normal 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.
|
||||
|
150
sources/cdejecter_dll/__history/cdejecter.lpr;35
Normal file
150
sources/cdejecter_dll/__history/cdejecter.lpr;35
Normal 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.
|
||||
|
151
sources/cdejecter_dll/__history/cdejecter.lpr;36
Normal file
151
sources/cdejecter_dll/__history/cdejecter.lpr;36
Normal 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.
|
||||
|
171
sources/cdejecter_dll/__history/cdejecter.lpr;37
Normal file
171
sources/cdejecter_dll/__history/cdejecter.lpr;37
Normal 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.
|
||||
|
42
sources/cdejecter_dll/__history/cdejecter.lpr;4
Normal file
42
sources/cdejecter_dll/__history/cdejecter.lpr;4
Normal 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.
|
||||
|
48
sources/cdejecter_dll/__history/cdejecter.lpr;5
Normal file
48
sources/cdejecter_dll/__history/cdejecter.lpr;5
Normal 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.
|
||||
|
54
sources/cdejecter_dll/__history/cdejecter.lpr;6
Normal file
54
sources/cdejecter_dll/__history/cdejecter.lpr;6
Normal 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.
|
||||
|
51
sources/cdejecter_dll/__history/cdejecter.lpr;7
Normal file
51
sources/cdejecter_dll/__history/cdejecter.lpr;7
Normal 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.
|
||||
|
59
sources/cdejecter_dll/__history/cdejecter.lpr;8
Normal file
59
sources/cdejecter_dll/__history/cdejecter.lpr;8
Normal 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.
|
||||
|
89
sources/cdejecter_dll/__history/cdejecter.lpr;9
Normal file
89
sources/cdejecter_dll/__history/cdejecter.lpr;9
Normal 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.
|
||||
|
28
sources/cdejecter_dll/__history/cdejecter.lps;1
Normal file
28
sources/cdejecter_dll/__history/cdejecter.lps;1
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;10
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;10
Normal 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>
|
45
sources/cdejecter_dll/__history/cdejecter.lps;11
Normal file
45
sources/cdejecter_dll/__history/cdejecter.lps;11
Normal 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>
|
45
sources/cdejecter_dll/__history/cdejecter.lps;12
Normal file
45
sources/cdejecter_dll/__history/cdejecter.lps;12
Normal 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>
|
45
sources/cdejecter_dll/__history/cdejecter.lps;13
Normal file
45
sources/cdejecter_dll/__history/cdejecter.lps;13
Normal 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>
|
41
sources/cdejecter_dll/__history/cdejecter.lps;14
Normal file
41
sources/cdejecter_dll/__history/cdejecter.lps;14
Normal 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>
|
41
sources/cdejecter_dll/__history/cdejecter.lps;15
Normal file
41
sources/cdejecter_dll/__history/cdejecter.lps;15
Normal 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>
|
41
sources/cdejecter_dll/__history/cdejecter.lps;16
Normal file
41
sources/cdejecter_dll/__history/cdejecter.lps;16
Normal 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>
|
42
sources/cdejecter_dll/__history/cdejecter.lps;17
Normal file
42
sources/cdejecter_dll/__history/cdejecter.lps;17
Normal 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>
|
42
sources/cdejecter_dll/__history/cdejecter.lps;18
Normal file
42
sources/cdejecter_dll/__history/cdejecter.lps;18
Normal 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>
|
42
sources/cdejecter_dll/__history/cdejecter.lps;19
Normal file
42
sources/cdejecter_dll/__history/cdejecter.lps;19
Normal 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>
|
28
sources/cdejecter_dll/__history/cdejecter.lps;2
Normal file
28
sources/cdejecter_dll/__history/cdejecter.lps;2
Normal 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>
|
42
sources/cdejecter_dll/__history/cdejecter.lps;20
Normal file
42
sources/cdejecter_dll/__history/cdejecter.lps;20
Normal 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>
|
42
sources/cdejecter_dll/__history/cdejecter.lps;21
Normal file
42
sources/cdejecter_dll/__history/cdejecter.lps;21
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;22
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;22
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;23
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;23
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;24
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;24
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;25
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;25
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;26
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;26
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;27
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;27
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;28
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;28
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;29
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;29
Normal 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>
|
27
sources/cdejecter_dll/__history/cdejecter.lps;3
Normal file
27
sources/cdejecter_dll/__history/cdejecter.lps;3
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;30
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;30
Normal 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>
|
42
sources/cdejecter_dll/__history/cdejecter.lps;31
Normal file
42
sources/cdejecter_dll/__history/cdejecter.lps;31
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;32
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;32
Normal 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>
|
43
sources/cdejecter_dll/__history/cdejecter.lps;33
Normal file
43
sources/cdejecter_dll/__history/cdejecter.lps;33
Normal 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>
|
27
sources/cdejecter_dll/__history/cdejecter.lps;4
Normal file
27
sources/cdejecter_dll/__history/cdejecter.lps;4
Normal 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>
|
26
sources/cdejecter_dll/__history/cdejecter.lps;5
Normal file
26
sources/cdejecter_dll/__history/cdejecter.lps;5
Normal 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>
|
26
sources/cdejecter_dll/__history/cdejecter.lps;6
Normal file
26
sources/cdejecter_dll/__history/cdejecter.lps;6
Normal 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>
|
27
sources/cdejecter_dll/__history/cdejecter.lps;7
Normal file
27
sources/cdejecter_dll/__history/cdejecter.lps;7
Normal 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>
|
44
sources/cdejecter_dll/__history/cdejecter.lps;8
Normal file
44
sources/cdejecter_dll/__history/cdejecter.lps;8
Normal 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>
|
44
sources/cdejecter_dll/__history/cdejecter.lps;9
Normal file
44
sources/cdejecter_dll/__history/cdejecter.lps;9
Normal 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>
|
162
sources/cdejecter_dll/cdejecter.lpi
Normal file
162
sources/cdejecter_dll/cdejecter.lpi
Normal 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>
|
171
sources/cdejecter_dll/cdejecter.lpr
Normal file
171
sources/cdejecter_dll/cdejecter.lpr
Normal 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]))[1])) 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.
|
||||
|
26
sources/cdejecter_dll/data/__history/lEjectCD_core.inc;1
Normal file
26
sources/cdejecter_dll/data/__history/lEjectCD_core.inc;1
Normal file
@@ -0,0 +1,26 @@
|
||||
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;
|
5
sources/cdejecter_dll/data/__history/lEjectCD_vars.inc;1
Normal file
5
sources/cdejecter_dll/data/__history/lEjectCD_vars.inc;1
Normal file
@@ -0,0 +1,5 @@
|
||||
var Res: MciError;
|
||||
OpenParm: TMCI_Open_Parms;
|
||||
Flags: DWord;
|
||||
S: String;
|
||||
DeviceID: Word;
|
11
sources/cdejecter_dll/data/__history/lGetCDDiscs_core.inc;1
Normal file
11
sources/cdejecter_dll/data/__history/lGetCDDiscs_core.inc;1
Normal file
@@ -0,0 +1,11 @@
|
||||
Result:= '';
|
||||
DL:= TDrivesList.Create;
|
||||
SL:= TStringListUTF8.Create;
|
||||
if DL.Count > 0 then
|
||||
for Ind:= 0 to DL.Count - 1 do
|
||||
if DL.Items[Ind].DriveType = dtOptical then
|
||||
SL.Add(DL.Items[Ind].DriveLabel[1]);
|
||||
SL.Delimiter:= ';';
|
||||
Result:= SL.DelimitedText;
|
||||
FreeAndNil(SL);
|
||||
FreeAndNil(DL);
|
@@ -0,0 +1,17 @@
|
||||
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);
|
@@ -0,0 +1,2 @@
|
||||
DL:= TDrivesList.Create;
|
||||
|
@@ -0,0 +1,6 @@
|
||||
var root: PChar;
|
||||
res: LongBool;
|
||||
VolumeNameBuffer, FileSystemNameBuffer: PChar;
|
||||
VolumeNameSize,FileSystemNameSize: DWORD;
|
||||
VolumeSerialNumber, MaximumComponentLength, FileSystemFlags: DWORD;
|
||||
s: String;
|
@@ -0,0 +1 @@
|
||||
var DL: TDrivesList;
|
@@ -0,0 +1,3 @@
|
||||
var i, j : Integer;
|
||||
Buf : array [0..95] of Char;
|
||||
SL: TStringListUTF8;
|
161
sources/cdejecter_dll/data/double_commander/udrive.pas
Normal file
161
sources/cdejecter_dll/data/double_commander/udrive.pas
Normal file
@@ -0,0 +1,161 @@
|
||||
{
|
||||
Double Commander
|
||||
-------------------------------------------------------------------------
|
||||
Structures describing drives.
|
||||
|
||||
Copyright (C) 2006-2010 Koblov Alexander (Alexx2000@mail.ru)
|
||||
Copyright (C) 2010 Przemyslaw Nagay (cobines@gmail.com)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
}
|
||||
|
||||
unit uDrive;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes;
|
||||
|
||||
type
|
||||
TDriveType = (dtUnknown,
|
||||
dtFlash, // Flash drive
|
||||
dtFloppy, // 3.5'', ZIP drive, etc.
|
||||
dtHardDisk, // Hard disk drive
|
||||
dtNetwork, // Network share
|
||||
dtOptical, // CD, DVD, Blu-Ray, etc.
|
||||
dtRamDisk, // Ram-disk
|
||||
dtRemovable, // Drive with removable media
|
||||
dtRemovableUsb, // Drive connected via USB
|
||||
dtVirtual, // Virtual drive
|
||||
dtSpecial); // Special drive
|
||||
|
||||
{ TDrive }
|
||||
|
||||
// On Linux we also put here mount points other than drives.
|
||||
|
||||
TDrive = record
|
||||
DisplayName, //<en Name displayed to the user.
|
||||
Path, //<en Where this drive is or should be mounted (by /etc/fstab).
|
||||
DriveLabel, //<en Drive label if filesystem on the drive supports it.
|
||||
DeviceId: String; //<en Device ID that can be used for mounting, ejecting, etc.
|
||||
DriveType : TDriveType;
|
||||
FileSystem: String; //<en Filesystem on the drive
|
||||
IsMediaAvailable: Boolean; //<en Is media available in a drive with removable media.
|
||||
IsMediaEjectable: Boolean; //<en Can eject media by a command.
|
||||
IsMediaRemovable: Boolean; //<en If the drive has removable media.
|
||||
IsMounted: Boolean; //<en Is the drive mounted.
|
||||
AutoMount: Boolean; //<en Should the drive be automounted
|
||||
end;
|
||||
PDrive = ^TDrive;
|
||||
|
||||
{ TDrivesList }
|
||||
|
||||
TDrivesList = class
|
||||
private
|
||||
FList: TFPList;
|
||||
protected
|
||||
function Get(Index: Integer): PDrive;
|
||||
function GetCount: Integer;
|
||||
public
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
function Add(ADrive: PDrive): Integer;
|
||||
procedure Remove(Index: Integer);
|
||||
procedure RemoveAll;
|
||||
procedure Sort(Compare: TListSortCompare);
|
||||
property Items[Index: Integer]: PDrive read Get; default;
|
||||
property Count: Integer read GetCount;
|
||||
end;
|
||||
|
||||
{en
|
||||
Returns drive label or status description.
|
||||
}
|
||||
function GetDriveLabelOrStatus(Drive: PDrive): String;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
SysUtils;
|
||||
|
||||
function GetDriveLabelOrStatus(Drive: PDrive): String;
|
||||
begin
|
||||
if Drive^.DriveLabel <> EmptyStr then
|
||||
Result := Drive^.DriveLabel
|
||||
else if not Drive^.IsMediaAvailable then
|
||||
Result := 'No media'
|
||||
else
|
||||
Result := 'No label';
|
||||
end;
|
||||
|
||||
{ TDrivesList }
|
||||
|
||||
constructor TDrivesList.Create;
|
||||
begin
|
||||
FList := TFPList.Create;
|
||||
end;
|
||||
|
||||
destructor TDrivesList.Destroy;
|
||||
begin
|
||||
inherited Destroy;
|
||||
RemoveAll;
|
||||
FList.Free;
|
||||
end;
|
||||
|
||||
function TDrivesList.Add(ADrive: PDrive): Integer;
|
||||
begin
|
||||
Result := FList.Add(ADrive);
|
||||
end;
|
||||
|
||||
procedure TDrivesList.Remove(Index: Integer);
|
||||
begin
|
||||
if (Index >= 0) and (Index < FList.Count) then
|
||||
begin
|
||||
Dispose(PDrive(FList[Index]));
|
||||
FList.Delete(Index);
|
||||
end
|
||||
else
|
||||
raise ERangeError.Create('Invalid index');
|
||||
end;
|
||||
|
||||
procedure TDrivesList.RemoveAll;
|
||||
begin
|
||||
while FList.Count > 0 do
|
||||
Remove(0);
|
||||
end;
|
||||
|
||||
procedure TDrivesList.Sort(Compare: TListSortCompare);
|
||||
begin
|
||||
FList.Sort(Compare);
|
||||
end;
|
||||
|
||||
function TDrivesList.Get(Index: Integer): PDrive;
|
||||
begin
|
||||
if (Index >= 0) and (Index < FList.Count) then
|
||||
begin
|
||||
Result := PDrive(FList.Items[Index]);
|
||||
end
|
||||
else
|
||||
raise ERangeError.Create('Invalid index');
|
||||
end;
|
||||
|
||||
function TDrivesList.GetCount: Integer;
|
||||
begin
|
||||
Result := FList.Count;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
37
sources/cdejecter_dll/data/double_commander/umyunix.pas
Normal file
37
sources/cdejecter_dll/data/double_commander/umyunix.pas
Normal file
@@ -0,0 +1,37 @@
|
||||
unit uMyUnix;
|
||||
{$mode objfpc}{$H+}
|
||||
{$packrecords c}
|
||||
|
||||
{$IF NOT DEFINED(LINUX)}
|
||||
{$DEFINE FPC_USE_LIBC}
|
||||
{$ENDIF}
|
||||
interface
|
||||
uses
|
||||
Classes, SysUtils, BaseUnix, CTypes, uDrive;
|
||||
function fpSystemStatus(Command: string): cint;
|
||||
function EjectDrive(Drive: PDrive): Boolean;
|
||||
implementation
|
||||
|
||||
uses
|
||||
URIParser, Unix, Process, LazUTF8
|
||||
{$IF (NOT DEFINED(FPC_USE_LIBC)) or (DEFINED(BSD) AND NOT DEFINED(DARWIN))}
|
||||
, SysCall
|
||||
{$ENDIF}
|
||||
;
|
||||
|
||||
function fpSystemStatus(Command: string): cint;
|
||||
begin
|
||||
Result := fpSystem(UTF8ToSys(Command));
|
||||
if wifexited(Result) then
|
||||
Result := wexitStatus(Result);
|
||||
end;
|
||||
|
||||
function EjectDrive(Drive: PDrive): Boolean;
|
||||
begin
|
||||
{$IF DEFINED(DARWIN)}
|
||||
Result := fpSystemStatus('diskutil eject ' + Drive^.DeviceId) = 0;
|
||||
if not Result then
|
||||
{$ENDIF}
|
||||
Result := fpSystemStatus('eject ' + Drive^.DeviceId) = 0;
|
||||
end;
|
||||
end.
|
6
sources/cdejecter_dll/data/lEjectCD_core.inc
Normal file
6
sources/cdejecter_dll/data/lEjectCD_core.inc
Normal file
@@ -0,0 +1,6 @@
|
||||
DL:= TDrivesList.Create;
|
||||
if DL.Count > 0 then
|
||||
for Ind:= 0 to DL.Count - 1 do
|
||||
if (DL.Items[Ind].DriveType = dtOptical) and (DL.Items[Ind].DriveLabel[1] = ADisc) then
|
||||
EjectDrive(DL.Items[Ind]);
|
||||
FreeAndNil(DL);
|
2
sources/cdejecter_dll/data/lEjectCD_vars.inc
Normal file
2
sources/cdejecter_dll/data/lEjectCD_vars.inc
Normal file
@@ -0,0 +1,2 @@
|
||||
var DL: TDrivesList;
|
||||
Ind: Byte;
|
11
sources/cdejecter_dll/data/lGetCDDiscs_core.inc
Normal file
11
sources/cdejecter_dll/data/lGetCDDiscs_core.inc
Normal file
@@ -0,0 +1,11 @@
|
||||
Result:= '';
|
||||
DL:= TDrivesList.Create;
|
||||
SL:= TStringListUTF8.Create;
|
||||
if DL.Count > 0 then
|
||||
for Ind:= 0 to DL.Count - 1 do
|
||||
if DL.Items[Ind].DriveType = dtOptical then
|
||||
SL.Add(DL.Items[Ind].DriveLabel[1]);
|
||||
SL.Delimiter:= ';';
|
||||
Result:= PWideChar(SL.DelimitedText);
|
||||
FreeAndNil(SL);
|
||||
FreeAndNil(DL);
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user