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