Windows 如何在Rust中创建从C+中定义的COM对象继承的COM对象+;?

Windows 如何在Rust中创建从C+中定义的COM对象继承的COM对象+;?,windows,rust,com,directshow,Windows,Rust,Com,Directshow,我正在尝试制作一个模拟网络摄像头的Rust程序。这表明最好的方法是创建DirectShow源过滤器。基于Windows SDK中的示例和上的一些C#实现,实现这一点的标准方法似乎是扩展Windows SDK中提供的DirectShow。然而,这是我的理解崩溃的地方 我找到了板条箱,能够将基类中的类输入到我的程序中,但是我如何从它们继承或实例化它们呢?这个板条箱似乎不是为COM设计的,也不清楚如何调用类的构造函数 完成第一部分后,如何将新类公开为COM组件?我找到了板条箱,但它似乎希望我使用基类

我正在尝试制作一个模拟网络摄像头的Rust程序。这表明最好的方法是创建DirectShow源过滤器。基于Windows SDK中的示例和上的一些C#实现,实现这一点的标准方法似乎是扩展Windows SDK中提供的DirectShow。然而,这是我的理解崩溃的地方

  • 我找到了板条箱,能够将基类中的类输入到我的程序中,但是我如何从它们继承或实例化它们呢?这个板条箱似乎不是为COM设计的,也不清楚如何调用类的构造函数
  • 完成第一部分后,如何将新类公开为COM组件?我找到了板条箱,但它似乎希望我使用基类的guid导入基类。然而,我不知道如何弄清楚他们的guid可能是什么

好吧,我建议用另一种方式来思考。您不能以这种方式“继承”另一个COM类。考虑DirectShow基类是用什么语言编写的,这甚至可能是错误的。相反,您希望实现支持接口的新对象。您可以重用已经通过COM包含或聚合生成的对象。关于这个问题的其他思考方式,请看这个答案:@JosephWillcoxson很酷,谢谢!