Einzelnen Beitrag anzeigen

stalkingwolf

Registriert seit: 6. Mai 2011
547 Beiträge
 
#2

AW: Drag&Drop aus neuem Outlook

  Alt 17. Mär 2025, 17:44
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.
  Mit Zitat antworten Zitat