Guten Morgen,
erstmal vielen Dank für deine Hilfe.
Du hast vollkommen Recht, der Aufruf klappt auch, der Fehler liegt in der Delphi Funktion.
Die sieht momentan so aus:
Delphi-Quellcode:
procedure getProfile(Intf: IUnknown);
stdcall;
const
pbGlobalProfileSectionGuid : TMAPIUID = (ab:($13,$
DB,$B0,$C8,$AA,$05,$10,$1A,$9B,$B0,$00,$AA,$00,$2F,$C4,$5A));
var
lppprofsect : Iprofsect;
propProfile : PSPropValue;
value :
String;
hr : Hresult;
session : IMapiSession;
begin
value:='
';
Intf.QueryInterface(IID_IMAPISession, session);
hr:=session.OpenProfileSection(PMAPIUID(@pbGlobalProfileSectionGuid),IID_IProfSect,MAPI_MODIFY, lppProfSect);
if (hr = S_OK)
then
begin
propprofile:=nil;
if (S_OK = HrGetOneProp(lppprofsect, PR_PROFILE_NAME, propProfile))
then
value:=propprofile.value.lpsza;
if assigned(propprofile)
then
mapifreebuffer(propprofile);
propprofile:=nil;
end
else
if (hr<>S_OK)
then
begin
end;
lppProfSect:=nil;
ShowMessage(value);
end;
Problem ist das folgende Zeile NICHT die IMapiSession liefert.
Intf.QueryInterface(IID_IMAPISession, session);
Deswegen knallt es dann bei "OpenProfileSection" weil session nil ist.
Hast du da noch eine Idee woran das liegen könnte?
Ausserdem möchte ich eine andere Fragen nochmal wiederholen, ist es möglich
die Delphi
DLL zu debuggen? Es ist immer relativ umständlich zu Debugzwecken
immer MessageBoxen einzubauen.
Gruss Jonny