Einzelnen Beitrag anzeigen

Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#2

Re: DropStream als Datei speichern ?

  Alt 16. Mai 2005, 15:26
Hallo,
hier kommt meine Vermutung
Delphi-Quellcode:
OleCheck(dataObj.GetData(aFmtEtc, aStgMed));
  try
    pData := GlobalLock(aStgMed.stm); // <--- Schreib hier mal sStgMed.stm (Du forderst ja einen Stream an)
    SaveDropDataToFile(pData,'c:\stream.doc');
  finally
    GlobalUnlock(aStgMed.stm); // <--- Schreib hier mal sStgMed.stm
    ReleaseStgMedium(aStgMed);
  end;
Das Formular muss nur die Teile des IDropTarget implementieren, die noch nicht vorhanden sind.
Da alle Objekte ab TComponent das IUnknwon Interface unterstützen kannst Du Dir die Implementation AddRef und ReleaseRef sparen. Außdem sieht Deine Implentation der Methoden nicht so aus, als ob die einen Referenzzähler hoch oder runter zählen

Delphi-Quellcode:
procedure SaveDropDataToFile(Data:Pointer;Filename: String);
var
  fs: TFileStream;
  sa: IStream;
begin
  fs := TFileStream.Create(Filename,fmCreate);
  try
    sa := TStreamAdapter.Create(fs, soReference) as IStream;
    sa.Write(Data,SizeOf(Data),0); // <--- Hier sollte write stehen. Schließlich soll hier ja in den Stream geschrieben werden
  finally
    fs.Free;
  end;
end;
Evt solltest Du hier unter Registered Clipboard Formats nach schauen. CF_RIFF kommt mir irgendwie nicht ganz richtig vor.
I come from outer space to save the human race
  Mit Zitat antworten Zitat