Program Outlook ulega awarii podczas połączenia z właściwością IMAPIProp::GetProps w nieaktualnym widoku MAPIOBJECT

Oryginalny numer KB:   4131515

Symptomy

Rozpatrzmy następujący scenariusz:

  • Do tworzenia wiadomości e-mail używa się programu Microsoft Outlook.
  • Dołączasz istniejącą wiadomość e-mail do nowej wiadomości.
  • Załączoną wiadomość można otworzyć do przeglądania.
  • Zdarzenie NewInspector umożliwia odwołanie do bieżącego pliku programu Outlook.MailItem odpowiadającego właśnie otwartemu załącznikowi wiadomości e-mail.
  • Z obiektu MailItem można uzyskać odwołanie do obiektu MAPI, czytając właściwość MAPIOBJECT w języku C++.
  • Zapisujesz wiadomość lub program Outlook inicjuje operację Autoza zapisu.
  • Metodę GetProps rozpoczyna się od odwołania IMAPIProp od odwołania uzyskanego za pośrednictwem MAPIOBJECT zdarzenia NewInspector.

W tym scenariuszu program Outlook ulega awarii.

Przyczyna

Obiekt MAPI uzyskany z tej właściwości stał MAPIOBJECT się nieaktualny i nie można go już używać. Nie należy ponownie używać tej właściwości, jeśli odpowiedni element programu Outlook uległ zmianie.

Rozwiązanie

Za każdym razem, gdy trzeba uruchomić operację na obiekcie MAPI, która mapuje się na element modelu obiektów programu Outlook lub Outlook, należy uzyskać nowe odwołanie do źródłowego obiektu MAPI. Następnie uruchom wszystkie operacje MAPI dla tego nowego odwołania, zamiast w nieaktualnym odwołaniu, które może już być nieprawidłowe. Używanie przestarzałego odwołania może powodować nieoczekiwane zachowanie i awarię klienta programu Outlook.

Więcej informacji

Zalecamy, aby nie przechowywać odwołań otrzymanych za pośrednictwem modelu obiektów programu MAPIOBJECT Outlook dłużej, niż to konieczne. Jest to spowodowane tym, że obiekt źródłowy często podlega zmianie. Używanie przestarzałego obiektu źródłowego może powodować nieoczekiwane błędy. Dotyczy to wszystkich scenariuszy, w których może być konieczne odwołanie się do modelu obiektów programu Outlook, a nie tylko do scenariusza wymienionego w MAPIOBJECT sekcji "Objawy".