2010-04-13 102 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