Einzelnen Beitrag anzeigen

Gebhard

Registriert seit: 28. Nov 2005
42 Beiträge
 
Delphi 7 Personal
 
#1

Speichern von Pointerinhalten in eine Datei

  Alt 8. Okt 2009, 13:49
Hallo,

ich habe ein Problem und bitte Euch um Hilfe. Vielleicht ist die Lösung einfach und ich habe mich beim lesen unterschiedlicher Foren und Quellcodes nur "verrannt".

Ich möchte gerne Informationen, die (vermutlich) im Arbeitsspeicher abgelegt wurden, in eine Datei speichern. Auf den Pointer kann ich mit dem Befehl "p:=Addr(x);" zugreifen. In diesem Fall handelt es sich um ein Email, welches ich unter Umgehung der Outlook - Sicherheitsabfrage speichern möchte. Leider fehlt es mit am Wissen mit dem Ungang mit Pointern.

Nach meiner Einschätzung muß ich den Pointerinhalt in einen TMemoryStream schreiben und dann mit einem "SaveAsFile" - Befehl speichern, aber wie komme ich an den Inhalt und an deren Größe?

Anbei ein Beispielcode. Weil es ausschließlich um den Umgang mit Pointern geht, habe ich den Inhalt von Mapi nach Outlook umgeändert und sehr viele Bestandteile (z.B. Freigabe des Speichers) weggelassen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var
    oOutlook:variant;
    oOrdner:variant;
    oMail:variant;
    p:Pointer;
  begin
    oOutlook:=CreateOleObject('Outlook.Application');
    oOrdner:=oOutlook.GetNamespace('MAPI').GetDefaultFolder(6);
    oMail:=oOrdner.Items[1];
    p:=Addr(oMail);

{
    ......
}


    end;
Vielen Dank für eure Hilfe.

Gebhard
Olli
  Mit Zitat antworten Zitat