VS 2008 C# Windows アプリケーションを使用しています。
使用しようとしているこの DLL インポートがあります。
[DllImport("Mapi32.dll", PreserveSig = true)]
private static extern void
WrapCompressedRTFStream(
[MarshalAs(UnmanagedType.Interface)]
UCOMIStream lpCompressedRTFStream,
uint ulflags,
[MarshalAs(UnmanagedType.Interface)]
out UCOMIStream lpUncompressedRTFStream
);
public const uint MAPI_MODIFY = 0x00000001;
public const uint STORE_UNCOMPRESSED_RTF = 0x00008000;
CompressedRFTFormat の圧縮文字列があります。
文字列を WrapCompressedRTFStream に渡すにはどうすればよいですか? メソッドが何を期待しているのかわかりません。
ボタンで使用しようとしています。
RichText1.text = WrapCompressedRTFStream(_CompressedRichText.ToString(),something,somethingelse);
最初に表示されるエラーは、「'string' から 'System.Runtime.InteropServices.UCOMIStream に変換できません」です。
これを理解している人が役立つ回答を投稿してくれることを願っています!
わかりましたので、IStream を使用すると同じ状況になります。
[DllImport("Msmapi32.dll", PreserveSig = true)]
private static extern void WrapCompressedRTFStream(
[MarshalAs(UnmanagedType.Interface)]
IStream lpCompressedRTFStream,
uint ulflags,
[MarshalAs(UnmanagedType.Interface)]
out IStream lpUncompressedRTFStream
);
ここでの本当の問題は、このメソッドの入力と出力を何をどのように処理するかを理解していないことです。