Hi Leute,
kann mir jemand sagen, wie ich bei einer OleVariant-Variable überprüfen kann, ob wirklich ein Objekt zurückgegeben wurde? Also es geht um Outlook-Automation und bisher hab ich folgendes mal so zum Testen als Code fabriziert:
Quelltext
1: 2: 3: 4: 5:
| MyOutlook := CreateOleObject('Outlook.Application.9'); MyNameSpace := MyOutlook.GetNameSpace('MAPI'); MyCalendarFolder := MyNameSpace.GetDefaultFolder(olFolderCalendar); MeineTermine := MyCalendarFolder.Items; Termin := MeineTermine.Find('[subject] = "Tennis mit Boris"'); |
Und jetzt kommt's. Wenn der Termin gefunden wurde dann wird eine IDispatch größer als $000000 zurückgegeben, ansonsten eine IDispatch gleich $000000. Nur ich kann auf diesen Wert nicht überprüfen. Der =-Operator scheint mit DispatchVariant-Variablen nicht zu gehen und eine Funktion die das macht habe ich noch nicht gefunden.
Bei irgend nem Delphi-Typ würde ich jetzt sagen
Quelltext
1:
| if Termin = nil then ... |
aber das geht hier nicht. Auch funktioniert
Quelltext
1:
| if Termin = $000000 then ... |
nicht. Da meckert er von wegen ungültige Variant-Operation.
Ich habe keine Idee mehr, wie ich diesen Wert abfragen könnte. Habt Ihr eine?
Moderiert von
Tino: Code-Tags hinzugefügt.