3

IConverterSession インターフェイスの IDL を作成しようとしていますが、MIMETOMAPIメソッドの定義に混乱しています。パラメーターを [out] として指定しLPMESSAGE pmsgますが、コメントには、読み込まれる MAPI メッセージへのポインターが示されています。

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

最終的に、このインターフェイスは 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 に答える