uses MMSystem;
var
Buffer: array [0..31] of Char;
Open: TMCI_Open_Parms = (lpstrDeviceType: 'CDAudio');
Info: TMCI_Info_Parms = (lpstrReturn: @Buffer; dwRetSize: SizeOf(Buffer));
function GetUPC(Drive: Char): string;
begin
Result := '';
Open.lpstrElementName := PChar(string(Drive + ':'));
if mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE or MCI_OPEN_ELEMENT, Longint(@Open)) <> 0 then Exit;
mciSendCommand(Open.wDeviceID, MCI_INFO, MCI_INFO_MEDIA_UPC, Longint(@Info));
mciSendCommand(Open.wDeviceID, MCI_CLOSE, MCI_OPEN_TYPE or MCI_OPEN_ELEMENT, Longint(@Open));
Result := Buffer;
end;