Outlook krasjer når du kaller IMAPIProp::GetProps på en foreldet MAPIOBJECT
Opprinnelig KB-nummer: 4131515
Symptomer
Vurder følgende scenario:
- Du oppretter en e-postmelding ved hjelp av Microsoft Outlook.
- Du legger ved en eksisterende e-postmelding i den nye meldingen.
- Du åpner den vedlagte meldingen for visning.
- Du bruker NewInspector-hendelsen til å få en referanse til gjeldende Outlook.MailItem som tilsvarer e-postvedlegget du nettopp åpnet.
- Fra MailItem-objektet får du en referanse til det underliggende MAPI-objektet ved å lese MAPIOBJECT-egenskapen i C++.
- Du lagrer meldingen, eller Outlook starter en automatisk lagringsoperasjon.
- Du starter GetProps-metoden på en IMAPIProp-referanse fra
MAPIOBJECT
referansen du fikk via NewInspector-hendelsen.
I dette scenarioet krasjer Outlook.
Årsak
MAPI-objektet du hentet fra MAPIOBJECT
egenskapen, er foreldet og kan ikke lenger brukes. Du bør ikke bruke egenskapen på nytt hvis det tilsvarende Outlook-elementet er endret.
Løsning
Hver gang du må kjøre en operasjon på MAPI-objektet som tilordnes til et Outlook- eller Outlook Object Model-element, skal du få en ny referanse til det underliggende MAPI-objektet. Kjør deretter eventuelle MAPI-operasjoner på den nye referansen i stedet for på en foreldet referanse som kanskje ikke lenger er gyldig. Bruk av en foreldet referanse kan føre til uventet virkemåte og krasje Outlook-klienten.
Mer informasjon
Vi anbefaler at du ikke holder fast på noen MAPIOBJECT
referanser som du har hentet gjennom Outlook-objektmodellen lenger enn nødvendig. Dette er fordi det underliggende objektet ofte kan endres. Bruk av et foreldet underliggende objekt kan forårsake uventede feil.
Dette gjelder for alle scenarioer der du kanskje må få en MAPIOBJECT
referanse gjennom Outlook-objektmodellen, ikke bare scenarioet som nevnes i delen Symptomer.
Tilbakemeldinger
https://aka.ms/ContentUserFeedback.
Kommer snart: Gjennom 2024 faser vi ut GitHub Issues som tilbakemeldingsmekanisme for innhold, og erstatter det med et nytt system for tilbakemeldinger. Hvis du vil ha mer informasjon, kan du se:Send inn og vis tilbakemelding for