【问题标题】:How do I marshal a stream for COM如何为 COM 编组流
【发布时间】:2011-10-21 13:00:12
【问题描述】:

我正在使用一个用 Delphi 编写的需要 Stream 的 COM 对象。

VS生成的接口请求一个“object”类型的参数

comReader.LoadFromStream(object stream)

当我使用 FileStream 或 MemoryStream 时,我得到一个“无效参数”异常。

如何为 COM 完成编组流?

【问题讨论】:

  • 根据COM类型库参数是什么类型

标签: c# .net delphi com


【解决方案1】:

我认为您应该为实现 COM IStream 接口的 .Net Stream 创建包装器

article(有部分实现)

【讨论】:

    【解决方案2】:

    编辑我发现了这个有趣的答案: How do I declare an IStream in idl so visual studio maps it to s.w.interop.comtypes?

    基本上你想做的是实现System.Runtime.InteropServices.ComTypes.IStream或使用现有的实现类。

    如果一切都失败了,您应该能够使用 UnmanagedMemoryStream 编组任意数据。 (MSDN page)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      • 2010-12-05
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      相关资源
      最近更新 更多