2010-04-13 69 views
10

我没有太多成COM接口,所以我有一个小问题,说我有这样的代码:COM接口的GUID

[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我在哪里可以找到它?

回答

7

我从来没有遇到过一个正式文件 - 有,但是,有几个方式来看待它:

  • 打开IIb型在OLE查看器(通常是服务器DLL本身)(包含在Visual Studio工具)
  • 寻找它在SDK的.idl的/ .H的
  • 写短的VC++程序,并使用__uuidof(IInterface)
  • 寻找它下HKCR \接口(虽然不是所有的接口需要得到那里注册)
+1

是,该SDK。 MSTask.idl声明它们。 – 2010-04-13 17:46:30

3

在注册表中,做在HKEY_CLASSES_ROOT类名称的搜索,你会发现GUID