Вопрос

Я пытаюсь создать IDL для интерфейса IConverterSession, и меня смущает определение МИМЕТОМАПИ метод.Он определяет LPMESSAGE pmsg параметр как [out], однако в комментариях указано, что это указатель на сообщение MAPI, которое необходимо загрузить.

Мне неясно, выделяют ли функции объект сообщения MAPI и устанавливают указатель, и в этом случае не должен ли он быть указателем на указатель MESSAGE?ИЛИ ожидается, что вызывающий код уже создал экземпляр объекта сообщения, и в этом случае почему помечен [out], а не [in]?

В конечном итоге этот интерфейс должен быть использован из кода VB6, поэтому он должен быть либо [in], либо [in, out], но мне нужно знать, находится ли в IDL, который я использовал: -

[in] IMessage pmsg* 

ИЛИ

[in, out] IMessage pmsg**
Это было полезно?

Решение

Я думаю, что в этом случае документация вводит в заблуждение, когда помечает параметр как [out].Вы должны передать методу действительный LPMESSAGE, поэтому он не является двойным указателем.Поэтому я бы выбрал [in] в вашем определении idl.

Другие советы

См. MAPIMime.h из источника MFCMapi (http://mfcmapi.codeplex.com/) в качестве окончательного источника.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top