Znane problemy dotyczące programu Outlook 2010 podczas korzystania z modelu obiektów

Oryginalny numer artykułu KB:   2265515

Podsumowanie

W tym artykule opisano znane problemy, które mogą wystąpić podczas korzystania z modelu obiektów programu Microsoft Outlook 2010.

Nie można utworzyć Outlook.Application obiektu z poziomu procesu z podwyższonym poziomem uprawnień

Nie można zautomatyzować programu Outlook za pomocą procesu z podwyższonym poziomem uprawnień w systemie Windows Vista, Windows 7 lub dowolnym innym systemie operacyjnym, który umożliwia uruchamianie procesów z podwyższonym poziomem uprawnień. Jest to podstawowe ograniczenie modelu COM. Zarówno program Outlook, jak i programy niestandardowe, które automatyzują program Outlook, muszą być uruchomione na tym samym poziomie integralności.

Nie występują zdarzenia BeforeItemMove i BeforeFolderMove

Istnieje wiele scenariuszy, w których BeforeItemMove BeforeFolderMove nie występują zdarzenia. Znane scenariusze obejmują usuwanie terminów z paska To-Do, usuwanie spotkań z kalendarza i To-Do paska, implementowanie zdarzeń w folderach niedomyślnych i usuwanie elementów za pomocą polecenia Ignoruj konwersację. Te problemy rozwiązano w aktualizacji zbiorczej z grudnia 2010 dla programu Outlook 2010.

Niepowodzenie metody GetProperty w trybie online

Jeśli korzystasz z programu Microsoft Exchange 2010 w trybie online i używasz GetProperty metody pobierania właściwości z niezapisanego elementu, Metoda może się nie udać. Jest to spowodowane zmianą sposobu, w jaki program Exchange 2010 obsługuje nazwane właściwości. Program Outlook 2007 jest również dotknięty zmianą. Bieżące obejścia obejmują następujące rozwiązania:

  • Korzystanie z programu Outlook w trybie buforowanym.
  • Przed rozpoczęciem połączenia z tą metodą upewnij się, że element jest zapisany w stanie GetProperty .

Okno Inspektora może nie zostać zamknięte poprawnie

Jeśli ta funkcja zostanie zaimplementowana GetVisibleCallback w programie Microsoft Visual Studio Tools dla pakietu Microsoft Office (VSTO), użytkownik może nie być w stanie zamknąć okna inspektora poprawnie. Ten problem został rozwiązany w aktualizacji zbiorczej z lutego 2011 dla programu Outlook 2010.

Zdarzenie BeforeCheckNames występuje w innym czasie niż w programie Outlook 2007

W programie Outlook 2010 zdarzenie BeforeCheckNames występuje po rozwiązaniu adresatów, a nie przed ich rozłączeniem. Oznacza to, że anulowanie zdarzenia nie ma żadnego skutku. Ten problem został rozwiązany w aktualizacji zbiorczej programu Outlook 2010 luty 2011.

Model obiektu widoki może nie odpowiadać widokowi rzeczywistemu w interfejsie użytkownika

Istnieją scenariusze, w których można programowo zmienić widoki lub pobrać ustawienia widoku, ustawienia w modelu obiektów mogą nie odpowiadać rzeczywistym ustawieniom widoku wyświetlanym w interfejsie użytkownika programu Outlook. W celu rozwiązania tego problemu wprowadzono ulepszenia w aktualizacji skumulowanej programu Outlook 2010 luty 2011.

Załączniki nie są zachowywane poprawnie po użyciu okna Wstawianie elementu

Jeśli do dodawania i usuwania załączników jest używany model obiektowy programu Outlook, może być konieczne dodanie dodatkowego załącznika, jeśli użytkownik wstawił załącznik elementu za pomocą polecenia Wstaw element. Wynika to z usterki w sposobie, w jaki to okno dialogowe traktuje wszystkie załączniki jako podejrzane, nawet jeśli nie są podejrzane. Dlatego dodatkowe załączniki są zapisywane razem z wiadomością. Ten problem został rozwiązany w aktualizacji zbiorczej z lutego 2010 dla programu Outlook 2010.

Nie można wstawiać załączników elementów przy użyciu konta POP/IMAP

Jeśli użyjesz Attachments.Add metody dodawania załączników elementów programu Outlook przy użyciu konta POP/IMAP, rozmowa nie powiedzie się. Ten problem został rozwiązany w aktualizacji zbiorczej z grudnia 2010 dla programu Outlook 2010.

MailItem.Recipients.ResolveAll Funkcja usuwa adresatów z pola do

Jeśli użytkownik doda nierozstrzygniętego adresata do wiadomości w trybie redagowania, a następnie Recipients.ResolveAll wywoływana jest metoda dla tego elementu, adresaci zostaną usunięci. Nie planuje się zmiany tego zachowania.

GetAssociatedAppointmentW przypadku wezwania na spotkanie w folderze Elementy wysłane nie powiodło się wykonanie tej metody

Jeśli spróbujesz pobrać termin z wezwania na spotkanie w folderze Elementy wysłane, rozmowa nie powiedzie się. Ten problem został rozwiązany w aktualizacji zbiorczej z lutego 2011 dla programu Outlook 2010.

Jeśli okno Inspektora jest otwarte, mogą nie zostać zaktualizowane dane dotyczące terminów

Ze względu na zmiany wewnętrzne w sposobie, w jaki program Outlook 2010 obsługuje i buforuje terminy, model obiektowy może nie udostępniać aktualnych informacji o wyjątkach od terminów, jeśli odpowiedni termin jest otwarty w oknie Inspektora. Takie zachowanie występuje nawet w przypadku nieodwołania i ponownego pobrania elementu ze sklepu. Aby obejść ten problem, upewnij się, że okno terminu jest zamknięte. Nie planuje się zmiany tego zachowania.

Jeśli spróbujesz uzyskać obiekt folderu z NavigationFolder obiektu, może zostać wyświetlony komunikat o błędzie "operacja nie powiodła się". Ten problem występuje w przypadku funkcji udostępnionego folderu Kalendarz, które są nowe w programie Outlook 2010. Pobranie NavigationFolder.Folder obiektu przed zainicjowaniem programu Outlook powoduje wystąpienie tego problemu. Ta Inicjalizacja nie jest domyślnie przeprowadzana. Aby obejść ten problem, najpierw odwołuje się do domyślnego folderu Kalendarz i wywoływana GetExplorer Metoda. To pośrednio powoduje, że program Outlook inicjuje Udostępnianie kalendarzy. Poniższy przykład kodu VBA w programie Outlook ilustruje ten problem i obejście tego problemu:

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