VSTO (Outlook 2007/2010) を使用して、C++ Outlook Addin アプリケーションを完全な .NET 表現に書き直しています。
書き換える機能の 1 つは、html フォームのレンダリングです。ユーザーは、メール作成モード (送信前) で、チェックボックスの選択、入力の提供、オプションの選択などを行うことができます。しかし、入力マークアップを HTMLBody プロパティに配置すると、期待どおりにレンダリングされません。代わりにhttp://postimage.org/image/jk9swfr2t/のようなものだけがレンダリングされます。解決策を探すのに非常に長い時間を費やしましたが、Word ベースの Outlook HTML レンダリング エンジンが原因で、最終的には常に不可能であることが判明しました。
私たちの C++ アドイン コード リポジトリは非常に大きく、レガシーです。私は C++ 開発者ではなく、COM と C++ Outlook に対応する API についてあまり知りません。目標は、既存の機能に従って書き直すことです。時間も時間もありません。レガシ コードを分析するためのリソース。
しかし、私にとって最も興味深いのは、C++ バージョンのソフトウェアがすべてをレンダリングすることです。入力、チェックボックス、選択オプションなど、すべてです! だから私はそれが可能だと推測し、回避策やあらゆる種類のハックを探し始めました.
OutlookSpy ツールを使用して古い C++ アドインを分析したところ、HTMLBody が満たされていないことがわかりました。部分的なレガシ コードを調べる必要があり、PR_HTML MAPI プロパティが設定されていることがわかりました。残念ながら、このプロパティは vsto では利用できないため、役立つかどうかを確認できません。
だから私の質問は:
- VSTO を使用して Outlook で HTML フォームをレンダリングするハックを知っていますか?
- 私の問題に影響を与える可能性のある item.HTMLBody または PR_HTML MAPI プロパティを使用する違いはありますか?
- はいの場合、C# を使用して PR_HTML を設定できますか? (無料のhttp://www.add-in-express.com/creating-addins-blog/2008/11/21/outlook-object-model-propertyaccessor-storageitem/を確認しましたが、うまくいきません- AddExpress.MAPI.dll を追加してもコードが実行されない)
すべてをプログラムで行う必要があるため、Outlook UI を使用した挿入や IE から Outlook へのエクスポートはカウントされません。また、Redemption や Add-in Express などの商用のサードパーティ ツールは使用できません。