我正在使用 VSTO(Outlook 2007/2010)将 C++ Outlook Addin 应用程序重写为完整的 .NET 表示。
要重写的功能之一是 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。