3

我正在尝试为 IConverterSession 接口创建 IDL,但我对MIMETOMAPI方法的定义感到困惑。它将LPMESSAGE pmsg参数指定为 [out] 但注释声明它指向要加载的 MAPI 消息的指针。

我不清楚这些函数是否分配了 MAPI 消息对象并设置了指针,在这种情况下它不应该是指向 MESSAGE 指针的指针吗?或者调用代码是否应该已经实例化了消息对象,在这种情况下为什么标记为 [out] 而不是 [in]?

Utlitmately 这个接口将从 VB6 代码中使用,因此它必须是 [in] 或 [in, out] 但我确实需要知道是否在我使用的 IDL 中:-

[in] IMessage pmsg* 

或者

[in, out] IMessage pmsg**
4

3 回答 3

2

我认为在这种情况下,文档将参数标记为 [out] 时会产生误导。您必须将有效的 LPMESSAGE 传递给该方法,这就是为什么不是双指针。所以我会在你的 idl 定义中使用 [in]。

于 2008-09-19T16:06:03.877 回答
1

请参阅 MFCMapi 源 (http://mfcmapi.codeplex.com/) 中的 MAPIMime.h 作为权威来源。

于 2011-12-07T16:37:34.423 回答
0

正确的文档可以在这里找到:https ://docs.microsoft.com/en-us/office/client-developer/outlook/mapi/iconvertersession-mimetomapi 。调用者必须提供要填写的 API 消息,因此对象必须进入 [in]。

于 2019-09-06T22:28:30.350 回答