uses ActiveX; procedure TForm1.Button1Click(Sender: TObject); var S: string; FormatEtc: TFormatEtc; DataObject: IDataObject; EnumFormatEtc: IEnumFormatEtc; begin S := ''; if Succeeded(OleGetClipboard(DataObject)) then begin if Succeeded(DataObject.EnumFormatEtc(DATADIR_GET, EnumFormatEtc)) then while EnumFormatEtc.Next(1, FormatEtc, nil) = S_OK do S := S + IntToStr(FormatEtc.cfFormat) + sLineBreak; ShowMessage(S); end; end;