2012-11-28 2 views
2

Je réécris l'application C++ Outlook Addin en représentation complète .NET à l'aide de VSTO (Outlook 2007/2010).Outlook Addin ne restaure pas les formulaires HTML en utilisant VSTO mais en utilisant l'API C++

L'une des fonctionnalités à réécrire est le rendu de formulaires html. L'utilisateur peut sélectionner une case à cocher, fournir une entrée, sélectionner une option, etc. en mode composition de courrier (avant l'envoi). Mais lorsque je place un balisage d'entrée dans la propriété HTMLBody, il n'est pas rendu comme prévu. Au lieu de cela, seulement quelque chose comme http://postimage.org/image/jk9swfr2t/ est rendu. J'ai passé beaucoup de temps à chercher une solution, mais cela s'est finalement avéré impossible à cause du moteur de rendu HTML basé sur Word. Notre référentiel de code addin C++ est extrêmement large et est ancien - je ne suis pas un développeur C++ et je ne connais pas grand-chose aux API correspondantes de COM et C++ outlook, la cible est de réécrire selon les fonctionnalités existantes, il y a simplement pas de temps et pas de ressources pour analyser le code existant.

Mais le plus intéressant pour moi est que la version C++ du logiciel rende tout: entrées, case à cocher, option de sélection, juste tout! J'ai donc deviné que c'était possible et j'ai commencé à chercher une solution de contournement ou n'importe quel type de piratage.

J'ai analysé l'ancien addin C++ en utilisant l'outil OutlookSpy et il s'est avéré qu'il ne remplit pas HTMLBody. J'ai dû parcourir un code hérité partiel et trouvé qu'il a défini la propriété MAPI PR_HTML. Malheureusement j'ai trouvé aussi que cette propriété n'est pas disponible dans vsto donc je ne peux pas vérifier si cela aide.

Mes questions sont les suivantes:

Tout doit être fait afin d'insérer l'aide de programme interface utilisateur Outlook ou l'exportation vers Outlook de IE ne compte pas. De même, nous ne pouvons pas utiliser des outils tiers commerciaux tels que Redemption ou Add-in Express.

Répondre

0

Etes-vous sûr de que vous avez posté la bonne image? :-) Gardez à l'esprit qu'Outlook utilise Word pour afficher le code HTML, de sorte que les contrôles d'entrée et les scripts ne s'exécuteront pas.

+0

Dmitry, malgré le fait que l'image est petite est correcte :) Je sais que Word ne rendra pas le HTML et les scripts. Mais C++ et les API pertinentes en quelque sorte contourner cela et cela fonctionne dans Outlook 2007 et 2010. OutlookSpy montre que HtmlBody n'est pas défini, donc je soupçonne qu'il est piraté d'une autre manière. Le code C++ met html en utilisant la propriété PR_HTML donc je demande si cela peut être la différence et dans un tel cas, si et si je peux y parvenir en utilisant C#. –

Questions connexes