【发布时间】:2012-09-12 13:06:38
【问题描述】:
目前正在使用 Add-in Express 开发 Outlook 加载项,我必须恢复为一些纯 MAPI 函数来读取 MAPI 属性。
将这个 P/Invoke 包装器添加到 HrGetOneProp function:
[DllImport(@"MAPI32.DLL")]
static extern int HrGetOneProp(IntPtr pmp, uint ulPropTag, out IntPtr ppProp);
我正在尝试将 IMAPIProp 类型的 Outlook 附件对象作为第一个参数传递给函数。
我目前失败的是如何将该对象“转换”为IntPtr,以便我可以将它作为第一个参数传递给函数。我尝试使用Marshal.StructureToPtr,但显然这失败了一个异常,因为我没有传递一个结构,而只是一个对非托管 COM 对象的引用。
所以我的问题是:
如何通过传递COM对象成功调用HrGetOneProp方法?
【问题讨论】:
标签: c# .net pinvoke outlook-addin mapi