我正在尝试在C#上加载ISearchManager2接口。
直到这一刻,一切都可以正常使用ISearchManager。我使用Microsoft.Search.Interop程序集来做到这一点。我可以设置目录,得到一些……
在.NET中声明继承的COM接口时,必须以递归方式声明所有继承的接口成员。例如,如果您将此作为基本接口:
[Guid("2cd90691-12e2-11dc-9fed-001143a055f9"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IBase { int Blabla(); }
然后一个 IDerived 定义将是这样的:
IDerived
[Guid("65019f75-8da2-497c-b32c-dfa34e48ede6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IDerived { // IBase methods int Blabla(); // IDerived methods ... }
或者更好,像这样,如果你想在.NET中保留继承层次结构:
[Guid("65019f75-8da2-497c-b32c-dfa34e48ede6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IDerived : IBase { // IBase methods new int Blabla(); // IDerived methods ... }