Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Context Menu, Mehrere Filenames übergeben

  Alt 7. Sep 2005, 08:42
Auszug aus einer meiner Shell-Erweiterungen; mach was draus:
Delphi-Quellcode:
  if(lpdobj = nil) then
  begin
    Result := E_INVALIDARG;
    exit;
  end;

  with FormatEtc do
  begin
    cfFormat := CF_HDROP;
    ptd := nil;
    dwAspect := DVASPECT_CONTENT;
    lindex := -1;
    tymed := TYMED_HGLOBAL;
  end;

  Result := lpdobj.GetData(FormatEtc, StgMedium);
  if(failed(Result)) then exit;

  // how many files?
  iLen := DragQueryFile(StgMedium.hGlobal, $ffffffff, nil, 0);

  if(iLen >= 0) then
  begin
    // clean-up
    SetLength(dfl, iLen);

    for i := 0 to iLen - 1 do
    begin
      DragQueryFile(StgMedium.hGlobal, i, buf, sizeof(buf));
      dfl[i] := buf;
    end;

    Result := NOERROR;
  end;

  ReleaseStgMedium(StgMedium);
Das dynamische Array am Schluss auch wieder auf Null setzen.
  Mit Zitat antworten Zitat