Znane problemy w programie Outlook 2010 podczas korzystania z modelu obiektów

Oryginalny numer KB: 2265515

Podsumowanie

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

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

Nie można zautomatyzować programu Outlook przy użyciu procesu z podwyższonym poziomem uprawnień w systemie Windows Vista, Windows 7 lub w 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 automatyzujące program Outlook muszą być uruchomione na tym samym poziomie integralności.

Zdarzenia BeforeItemMove i BeforeFolderMove nie występują

Istnieje wiele scenariuszy, w BeforeItemMove których zdarzenia i BeforeFolderMove nie występują. Znane scenariusze obejmują usuwanie terminów z paska To-Do, usuwanie spotkań z kalendarza i paska To-Do, implementowanie zdarzeń w folderach innych niżefault oraz usuwanie elementów za pomocą polecenia Ignoruj konwersację. Te problemy zostały rozwiązane w aktualizacji zbiorczej z grudnia 2010 r. dla programu Outlook 2010.

Metoda GetProperty kończy się niepowodzeniem w trybie online

Jeśli używasz programu Microsoft Exchange 2010 w trybie online i używasz GetProperty metody do pobrania właściwości z niezapisanego elementu, metoda może zakończyć się niepowodzeniem. Wynika to ze zmiany sposobu obsługi nazwanych właściwości przez program Exchange 2010. Dotyczy to również programu Outlook 2007. Bieżące obejścia obejmują następujące kwestie:

  • Użyj programu Outlook w trybie pamięci podręcznej.
  • Przed wywołaniem metody upewnij się, że element jest w zapisanym GetProperty stanie.

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

Jeśli zaimplementujesz funkcję GetVisibleCallback w usłudze Microsoft Visual Studio Tools dla Microsoft Office (VSTO), użytkownik może nie być w stanie poprawnie zamknąć okna inspektora. Ten problem został rozwiązany w aktualizacji zbiorczej z lutego 2011 r. 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 rozwiązaniem. Oznacza to, że anulowanie zdarzenia nie ma wpływu. Ten problem został rozwiązany w aktualizacji zbiorczej programu Outlook 2010 z lutego 2011 r.

Model obiektów widoków może nie odpowiadać rzeczywistemu widokowi w interfejsie użytkownika

Istnieją scenariusze, w których jeśli programowo zmienisz widoki lub pobierzesz ustawienia widoku, ustawienia w modelu obiektów mogą nie odpowiadać rzeczywistym ustawieniu widoku wyświetlanym przez program Outlook w interfejsie użytkownika. Wprowadzono ulepszenia w aktualizacji zbiorczej programu Outlook 2010 z lutego 2011 r., aby rozwiązać ten problem.

Załączniki nie są zachowywane poprawnie podczas korzystania z okna Wstawianie elementu

Jeśli używasz modelu obiektów programu Outlook do dodawania i usuwania załączników, możesz mieć dodatkowy załącznik, jeśli użytkownik wstawi załącznik elementu za pomocą polecenia Wstaw element. Wynika to z usterki w sposobie, w jaki okno dialogowe traktuje wszystkie załączniki jako podejrzane, nawet jeśli nie są podejrzane. W związku z tym dodatkowe załączniki są zapisywane razem z komunikatem. Ten problem został rozwiązany w aktualizacji zbiorczej z lutego 2010 r. dla programu Outlook 2010.

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

Jeśli użyjesz Attachments.Add metody , aby dodać załączniki elementów programu Outlook przy użyciu konta POP/IMAP, wywołanie zakończy się niepowodzeniem. Ten problem został rozwiązany w aktualizacji zbiorczej z grudnia 2010 r. dla programu Outlook 2010.

MailItem.Recipients.ResolveAll funkcja usuwa adresatów z pola Do

Jeśli użytkownik doda nierozwiązanego adresata do wiadomości w trybie redagowania, a następnie Recipients.ResolveAll zostanie wywołana metoda dla tego elementu, adresaci zostaną usunięci. Nie ma planów zmiany tego zachowania.

Metoda GetAssociatedAppointment kończy się niepowodzeniem dla żądania spotkania w folderze Elementy wysłane

Jeśli spróbujesz pobrać termin z żądania spotkania w folderze Elementy wysłane, wywołanie zakończy się niepowodzeniem. Ten problem został rozwiązany w aktualizacji zbiorczej z lutego 2011 r. dla programu Outlook 2010.

Dane terminu mogą nie zostać zaktualizowane, jeśli okno inspektora jest otwarte

Ze względu na wewnętrzne zmiany w sposobie, w jaki program Outlook 2010 obsługuje terminy i buforuje je, model obiektów może nie dostarczać aktualnych informacji o wyjątkach od terminów, jeśli odpowiedni termin jest otwarty w oknie inspektora. To zachowanie występuje nawet wtedy, gdy odwołujesz się do niego i ponownie pobierasz element ze sklepu. Aby obejść ten problem, upewnij się, że okno terminu jest zamknięte. Nie ma planów zmiany tego zachowania.

Jeśli spróbujesz pobrać obiekt Folder z obiektu NavigationFolder , może zostać wyświetlony komunikat o błędzie "Operacja nie powiodła się". Ten problem występuje w przypadku funkcji folderu kalendarza udostępnionego, które są nowe w programie Outlook 2010. Pobranie obiektu NavigationFolder.Folder przed zainicjowaniem programu Outlook powoduje wystąpienie tego problemu. Inicjowanie nie odbywa się domyślnie. Aby obejść ten problem, najpierw odwołaj się do domyślnego folderu kalendarza i wywołaj GetExplorer metodę . Pośrednio powoduje to, że program Outlook inicjuje kalendarze udostępnione. Poniższy przykład kodu VBA programu Outlook ilustruje ten problem i obejście 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