質問

IConverterSession インターフェイスの IDL を作成しようとしていますが、 ミメトマピ 方法。それは、 LPMESSAGE pmsg パラメータは [out] ですが、コメントにはロードされる MAPI メッセージへのポインタが記載されています。

関数が MAPI メッセージ オブジェクトを割り当ててポインターを設定するかどうかは不明ですが、その場合、MESSAGE のポインターへのポインターではないでしょうか。または、呼び出し元のコードはすでにメッセージ オブジェクトをインスタンス化していると予想されますが、その場合、[in] ではなく [out] とマークされるのはなぜですか?

厳密には、このインターフェイスは VB6 コードから消費されるため、[in] または [in, out] のいずれかである必要がありますが、使用した IDL 内にあるかどうかを知る必要があります。

[in] IMessage pmsg* 

または

[in, out] IMessage pmsg**
役に立ちましたか?

解決

この場合、ドキュメントでパラメータを [out] とマークしているのは誤解を招くものだと思います。有効な LPMESSAGE をメソッドに渡す必要があるため、ダブル ポインターではありません。したがって、idl 定義では [in] を使用します。

他のヒント

確実なソースとして、MFCMapi ソース (http://mfcmapi.codeplex.com/) の MAPIMime.h を参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top