c# - COM接口(interface)指南

标签 c# .net com interface

我不太了解 COM 接口(interface),所以我有一个小问题,假设我有这段代码:

[Guid("148BD528-A2AB-11CE-B11F-00AA00530503"), 
 InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IEnumWorkItems {
    [PreserveSig()]
    int Next([In] uint RequestCount, [Out] out System.IntPtr Names, 
                       [Out] out uint Fetched);
    void Skip([In] uint Count);
    void Reset();
    void Clone([Out, MarshalAs(UnmanagedType.Interface)] 
                          out IEnumWorkItems EnumWorkItems);
}

我怎么知道“148BD528-A2AB-11CE-B11F-00AA00530503”对应于 IEnumWorkItems:http://msdn.microsoft.com/en-us/library/aa380706(VS.85).aspx

如果我想知道这个界面的 GUID:http://msdn.microsoft.com/en-us/library/aa381811(VS.85).aspx我在哪里可以找到它?

最佳答案

我从未遇到过正式文档 - 但是,有几种方法可以查找它:

  • 在 OLE 查看器(包含在 visual studio 工具中)中打开类型库(通常是服务器 DLL 本身)
  • 在 SDK .idl/.h 中查找
  • 编写简短的 VC++ 程序并使用 __uuidof(IInterface)
  • 在 HKCR\Interface 下查找(尽管并非所有接口(interface)都需要在那里注册)

关于c# - COM接口(interface)指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2631120/

相关文章:

c# - 在 Canvas 中放置对象

c# - .net中异步调用和异步io调用的区别

visual-c++ - COM 出站调用导致 "An outgoing call cannot be made since the application is dispatching an input-synchronous call."

c# - ftpe ://URI prefix is not recognized by FtpWebRequest

c# - 在 Sonar 中运行 Stylecop 时,如何让它分析识别为测试项目的项目?

c# - 如何在 Windows Universal 上流式传输视频种子?

WCF/.NET 中的 C# UTC 日期时间查询

c# - 如何在 C# 中查找 IIS 站点 ID?

c++ - 从 BHO ( C++ ) 向 CAxWindow 上的 JS 公开方法

带有 Jazzy UI 的 C# 应用程序