Bekannte Probleme in Outlook 2010 bei verwendung des Objektmodells
Ursprüngliche KB-Nummer: 2265515
Zusammenfassung
In diesem Artikel werden die bekannten Probleme beschrieben, die bei der Verwendung des Microsoft Outlook 2010-Objektmodells auftreten können.
Ein Objekt kann nicht aus einem Prozess mit erhöhten Rechten erstellt werden Outlook.Application
.
Sie können Outlook nicht automatisieren, indem Sie einen Prozess verwenden, der mit erhöhten Berechtigungen in Windows Vista, Windows 7 oder einem anderen Betriebssystem ausgeführt wird, das die Ausführung von Prozessen mit erhöhten Berechtigungen ermöglicht. Dies ist eine zugrunde liegende Einschränkung des COM. Sowohl Outlook als auch benutzerdefinierte Programme, die Outlook automatisieren, müssen auf der gleichen Integritätsebene ausgeführt werden.
Die BeforeItemMove- und BeforeFolderMove-Ereignisse treten nicht auf.
Es gibt mehrere Szenarien, in denen die BeforeItemMove
Ereignisse und BeforeFolderMove
nicht auftreten. Bekannte Szenarien umfassen das Löschen von Terminen aus der To-Do leiste, das Löschen von Besprechungen aus dem Kalender und To-Do Leiste, das Implementieren der Ereignisse in nicht standardmäßigen Ordnern und das Löschen von Elementen mithilfe des Befehls Unterhaltung ignorieren. Diese Probleme wurden im kumulativen Update von Dezember 2010 für Outlook 2010 behoben.
Fehler bei der GetProperty-Methode im Onlinemodus
Wenn Sie Microsoft Exchange 2010 im Onlinemodus verwenden und die GetProperty
-Methode verwenden, um eine Eigenschaft aus einem nicht gespeicherten Element abzurufen, schlägt die Methode möglicherweise fehl. Dies liegt an einer Änderung in der Art und Weise, wie Exchange 2010 benannte Eigenschaften behandelt. Outlook 2007 ist ebenfalls betroffen. Die aktuellen Problemumgehungen umfassen Folgendes:
- Verwenden Sie Outlook im Cachemodus.
- Stellen Sie sicher, dass sich das Element in einem gespeicherten Zustand befindet, bevor Sie die
GetProperty
-Methode aufrufen.
Das Inspektorfenster wird möglicherweise nicht ordnungsgemäß geschlossen.
Wenn Sie die GetVisibleCallback
Funktion in Microsoft Visual Studio-Tools für Microsoft Office (VSTO) implementieren, kann der Benutzer ein Inspektorfenster möglicherweise nicht ordnungsgemäß schließen. Dieses Problem wurde im kumulativen Update von Februar 2011 für Outlook 2010 behoben.
BeforeCheckNames-Ereignis tritt zu einem anderen Zeitpunkt ein als in Outlook 2007
In Outlook 2010 tritt das BeforeCheckNames-Ereignis auf, nachdem Empfänger aufgelöst wurden, anstatt vor der Auflösung. Dies bedeutet, dass das Abbrechen des Ereignisses keine Auswirkungen hat. Dieses Problem wurde im kumulativen Update von Outlook 2010 februar 2011 behoben.
Views-Objektmodell entspricht möglicherweise nicht der tatsächlichen Ansicht auf der Benutzeroberfläche.
Es gibt Szenarien, in denen beim programmgesteuerten Ändern von Ansichten oder Abrufen von Ansichtseinstellungen die Einstellungen im Objektmodell möglicherweise nicht den tatsächlichen Ansichtseinstellungen entsprechen, die Outlook auf der Benutzeroberfläche anzeigt. Im kumulativen Update von Outlook 2010 vom Februar 2011 wurden Verbesserungen vorgenommen, um dieses Problem zu beheben.
Anlagen werden nicht ordnungsgemäß verwaltet, wenn Sie das Fenster Element einfügen verwenden.
Wenn Sie das Outlook-Objektmodell zum Hinzufügen und Entfernen von Anlagen verwenden, haben Sie möglicherweise eine zusätzliche Anlage, wenn ein Benutzer eine Elementanlage mit dem Befehl Element einfügen einfügt. Dies liegt an einem Fehler in der Art und Weise, wie das Dialogfeld alle Anlagen als verdächtig behandelt, auch wenn sie nicht verdächtig sind. Daher werden zusätzliche Anlagen zusammen mit der Nachricht gespeichert. Dieses Problem wurde im kumulativen Update von Februar 2010 für Outlook 2010 behoben.
Elementanlagen können nicht mithilfe eines POP/IMAP-Kontos eingefügt werden
Wenn Sie die Attachments.Add
-Methode verwenden, um Outlook-Elementanlagen mithilfe eines POP/IMAP-Kontos hinzuzufügen, schlägt der Aufruf fehl. Dieses Problem wurde im kumulativen Update von Dezember 2010 für Outlook 2010 behoben.
MailItem.Recipients.ResolveAll
-Funktion entfernt Empfänger aus dem Feld An
Wenn der Benutzer einer Nachricht im Verfassenmodus einen nicht aufgelösten Empfänger hinzufügt und dann die Recipients.ResolveAll
-Methode für dieses Element aufgerufen wird, werden die Empfänger entfernt. Es gibt keine Pläne, dieses Verhalten zu ändern.
Die GetAssociatedAppointment
Methode schlägt für eine Besprechungsanfrage im Ordner "Gesendete Elemente" fehl.
Wenn Sie versuchen, einen Termin aus einer Besprechungsanfrage im Ordner Gesendete Elemente abzurufen, schlägt der Anruf fehl. Dieses Problem wurde im kumulativen Update von Februar 2011 für Outlook 2010 behoben.
Termindaten werden möglicherweise nicht aktualisiert, wenn ein Inspektorfenster geöffnet ist
Aufgrund interner Änderungen in der Art und Weise, wie Outlook 2010 Termine verarbeitet und zwischenspeichert, stellt das Objektmodell möglicherweise keine aktuellen Informationen zu Ausnahmen von Terminen bereit, wenn der entsprechende Termin in einem Inspektorfenster geöffnet ist. Dieses Verhalten tritt auch dann auf, wenn Sie den Verweis aufheben und das Element erneut aus dem Speicher abrufen. Um dieses Problem zu umgehen, stellen Sie sicher, dass das Terminfenster geschlossen ist. Es gibt keine Pläne, dieses Verhalten zu ändern.
NavigationFolder.Folder
generiert einen Fehler für den freigegebenen Ordner.
Wenn Sie versuchen, das Folder-Objekt aus einem NavigationFolder
Objekt abzurufen, erhalten Sie möglicherweise die Fehlermeldung "Vorgang fehlgeschlagen". Dieses Problem tritt bei features für freigegebene Kalenderordner auf, die in Outlook 2010 neu sind. Wenn Sie das NavigationFolder.Folder
Objekt abrufen, bevor Outlook es initialisiert hat, tritt dieses Problem auf. Diese Initialisierung erfolgt nicht standardmäßig. Um dieses Problem zu umgehen, verweisen Sie zuerst auf den Standardkalenderordner, und rufen Sie die -Methode auf GetExplorer
. Dies führt indirekt dazu, dass Outlook die freigegebenen Kalender initialisiert. Das folgende Outlook VBA-Codebeispiel veranschaulicht dieses Problem und die Problemumgehung:
Sub GetCalendars()
' Work around
Set oCalFolder = Session.GetDefaultFolder(olFolderCalendar)
Set oCalExp = oCalFolder.GetExplorer
Dim oModules As Outlook.CalendarModule
Dim oMyCalendarGroup As Outlook.NavigationGroup
Dim oPeopleNavGroup As Outlook.NavigationGroup
Set oModules = ActiveExplorer.NavigationPane.Modules.GetNavigationModule(OlNavigationModuleType.olModuleCalendar)
Set oMyCalendarGroup = oModules.NavigationGroups.GetDefaultNavigationGroup(OlGroupType.olMyFoldersGroup)
Set oPeopleNavGroup = oModules.NavigationGroups.GetDefaultNavigationGroup(OlGroupType.olPeopleFoldersGroup)
GetNavFolders oMyCalendarGroup
GetNavFolders oPeopleNavGroup
End Sub
Private Sub GetNavFolders(ByVal obj As Outlook.NavigationGroup)
Set oNavFolders = obj.NavigationFolders
Dim oNavFolder As Outlook.NavigationFolder
For Each oNavFolder In oNavFolders
Debug.Print oNavFolder.DisplayName & "==>" & oNavFolder.Folder ' <-- this errors
Next
End Sub