2016-07-21 26 views
-2

Anforderung: Wir müssen eine DLL erstellen, die meine E-Mail in Outlook mithilfe von MAPIDEFS in C++ entschlüsselt. Unser Produktteam wird IMessage an die DLL übergeben und ich muss die entschlüsselte E-Mail in Form von IMessage als Ausgabe entschlüsseln und übergeben. Diese DLL wird auf verschiedenen Client-Rechnern ausgeführt.Outlook-Objektmodell MailItemPtr in MAPI konvertieren IMessage in C++

Aber ich konnte nicht entschlüsseln mit Mapidefs und versuchte mit OOM und ich war erfolgreich. Mein OOM-Programm übernimmt und gibt MailItemPtr als Ausgabe zurück. Jetzt muss ich das MailItemPtr in IMessage konvertieren. Ich habe viele Wege versucht, aber ich konnte es nicht erreichen.

Frage: - Objekt, um es zurückzugibt IMessage MAPI Brauchen

+0

Es scheint, dass Sie ein Problem mit Ihrem Code haben. Wir können jedoch nicht helfen, wenn wir nicht [Code oder Informationen haben, die das Problem reproduzieren können] (// stackoverflow.com/help/mcve). Ansonsten raten wir nur blindlings. – kayess

+0

Hallo Kayess, Vielen Dank für Ihr Interesse. Wir können eine E-Mail entschlüsseln und sie als MailItemPtr zurückgeben, aber wir müssen sie als IMessage ausgeben. Wir suchen nach einer Methode, die das MailItemPtr in IMessage – Sravan

Antwort

0

Lesen Sie die MailItem.MAPIOBJECT Eigenschaft MailItemPtr MAPI-IMessage und viceversa

Dank der Umstellung hilft für Ihre Hilfe.

+0

konvertiert Vielen Dank für die Antwort. Ich habe versucht, MailItem.MAPIOBJECT zu verwenden, aber ich konnte ein Problem sehen. Unten ist das Snippet, das ich verwende, um in IMessage zu konvertieren IUnknownPtr u = oMsg-> GetMAPIOBJECT(); IMessage * msg = NULL; msg = (IMessage *) (IUnknown *) u; SizedSPropTagArray (1, mcols) = {1, {PR_SENDER_NAME}}; hr = msg-> GetProps ((SPropTagArray *) & mcols, 0, & pcount, & Requisiten); Mein Programm wird abrupt geschlossen, wenn es die GetProps-Methode erreicht. Scheint, als ob die Konvertierung nicht ordnungsgemäß ausgeführt wird. Wir sind seit vielen Tagen damit beschäftigt und jede Hilfe wird sehr geschätzt. – Sravan

+0

Sie müssen QI zuerst die zurückgegebene IUnknown-Schnittstelle für IID_IMessage eingeben. –

+0

Ich habe versucht mit Abfrage-Schnittstelle zuerst IUnknown und dann IMessage mit dieser IUnknown-Schnittstelle zu bekommen. Aber scheint das gleiche Problem. Können Sie auch einige Hinweise geben, wie IMessage in MailItem konvertiert werden kann – Sravan