我不太了解 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/