クリップボードではまってます。

var
i,n: integer;
hDrop: THandle;
szFile: array[0..MAX_PATH-1] of Char;
begin
if Clipboard.HasFormat(CF_HDROP) then begin
hDrop := Clipboard.GetAsHandle(CF_HDROP);
n := DragQueryFile(hDrop, $FFFFFFFF, szFile, SizeOf(szFile));
for i := 0 to n - 1 do begin
DragQueryFile(hDrop, i, szFile, MAX_PATH);
ListBox1.Items.Add(szFile);
end;
end;
end;

というようなコードを引用して、エクスプローラーでコピーしたファイル名の一覧を取得するところまでは、うまくいったんだけど、

ListBox1.Items.Add(szFile); を ShowMessage(szFile); にしたら、ループふた周り目でエラー。

ShowMessage(string(szFile));
これも駄目。

StringList.Add(string(szFile));
これも駄目。

何故!!!!!!!!!!!!!!!!