Я использую 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 (), что-то, что-то еще);
Первая ошибка, которую я получаю: «Не удалось преобразовать строку» в «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
);
Реальная проблема здесь в том, что я не понимаю, что / как нужно делать с вводом и выводом этого метода.