Eski bir MAPıOBJECT üzerinde IMAPIProp:: GetProps 'i çağırdığınızda Outlook kilitleniyor

Özgün KB numarası:   4131515

Belirtiler

Aşağıdaki senaryoyu inceleyin:

  • Microsoft Outlook 'U kullanarak e-posta iletisi oluşturursunuz.
  • Var olan bir e-posta iletisini yeni iletiye ekleyin.
  • Ekli iletiyi görüntülemek için açarsınız.
  • Yeni açtığınız e-posta ekine karşılık gelen geçerli Outlook. MailItem öğesine başvuru almak Için Newwınspector olayını kullanırsınız.
  • MailItem nesnesinden, C++ ' da mapıobject özelliğini okuyarak temeldeki MAPI nesnesine başvuru alırsınız.
  • İletiyi kaydedersiniz veya Outlook otomatik kaydetme işlemini başlatır.
  • GetProps yöntemini, IMAPIProp MAPIOBJECT NewInspector olayından aldığınız başvurudan bir IMAPIProp başvurusunda başlatırsınız.

Bu senaryoda, Outlook kilitlenir.

Neden

Özellikten aldığınız MAPI nesnesi MAPIOBJECT eski hale geldi ve artık kullanılamaz. İlgili Outlook öğesi değiştiyse özelliği yeniden kullanmamalısınız.

Çözüm

Bir Outlook veya Outlook nesne modeli öğesiyle eşleşen MAPI nesnesinde bir işlemi çalıştırmanız gerektiğinde, temeldeki MAPI nesnesine yeni bir başvuru almalısınız. Ardından, artık geçerli olmayan eski bir başvuru yerine bu yeni başvurudaki tüm MAPI işlemlerini çalıştırabilirsiniz. Eski bir başvuru kullanmak, beklenmeyen davranışa neden olabilir ve Outlook istemcisini boztabilir.

Daha fazla bilgi

MAPIOBJECTOutlook nesne modeli aracılığıyla, gerekenden daha uzun süre boyunca aldığınız hiçbir başvuruya sahip olmanız önerilmez. Bunun nedeni, temel nesnenin genellikle değişmekle ilgili olmamasıdır. Eski temel nesnenin kullanımı beklenmeyen hatalara neden olabilir. Bu, MAPIOBJECT yalnızca "Belirtiler" bölümünde açıklanan senaryoyu değil, Outlook nesne modeli aracılığıyla başvuru almanız gerekebilecek tüm senaryolar için geçerlidir.