Mal etwas rumgespielt und man erhält folgende Formate :
- DragContext
- DragImageBits
- chromium/x-renderer-taint
- CF_HDROP
- Chromium Web Custom MIME Data Format
CF_HDROP bekomme ich nicht ausgelesen. Was normalerweise sonst immer funktioniert.
DataObj.GetData(FmtEtc, Medium) ist nicht S_OK
Code:
procedure GetFileListFromObj(const DataObj: IDataObject; FileList: TStringList);
var
FmtEtc: TFormatEtc; // specifies required data format
Medium: TStgMedium; // storage medium containing file list
DroppedFileCount: Integer; // number of dropped files
Count,I: Integer; // loops thru dropped files
FileNameLength: Integer; // length of a dropped file name
FileName: pchar; // name of a dropped file
begin
FmtEtc.cfFormat := CF_HDROP;
FmtEtc.ptd := nil;
FmtEtc.dwAspect := DVASPECT_CONTENT;
FmtEtc.lindex := -1;
FmtEtc.tymed := TYMED_HGLOBAL;
if DataObj.GetData(FmtEtc, Medium) = S_OK then begin
try
OleCheck(DataObj.GetData(FmtEtc, Medium));
try
DroppedFileCount := DragQueryFile(Medium.hGlobal, $FFFFFFFF, nil, 255);
for i := 0 to (DroppedFileCount - 1) do begin
FileNameLength := DragQueryFile(Medium.hGlobal, i , nil, 0) + 1;
FileName:= StrAlloc(FileNameLength);
DragQueryFile(Medium.hGlobal,i , FileName, FileNameLength);
FileList.Append( StrPas(FileName));
StrDispose(FileName);
end;
finally
DragFinish(Medium.hGlobal);
end;
finally
ReleaseStgMedium(Medium);
end;
end;
end;
Ein paar im Netz vermuten die Daten sind in Chromium Web Custom MIME Data Format.
Aber das ist nur immer um die 1500 Zeichen. Vermutlich nur Metadaten. Aber ich komme an die Infos nicht ran.