Ve funkci GetCDInfo mne zaujalo toto:
(IntToHex(SerialNum shr 16, 3) + IntToHex((SerialNum shl 16) shr 16, 4))
Nevím, k čemu jsou ty závorky, ale když už, tak bych rozhodně místo (SerialNum shl 16) shr 16
použil normální SerialNum and $FFFF
ale ještě raději bych to celé udělal docela obyčejným:
Format('%x', [SerialNum])
a úplně celé by to mohlo vypadat:
Result := Format('%x - %s', [SerialNum, VolumeName]);
Kromě toho bych rozhodně doporučoval doplnit do hlavičky funkce "const":
function GetCDInfo(const WhichDrive: string): string;