2010-04-13 12 views
10

Nie jestem dużo do interfejsów COM, więc mam małe pytanie, że mam tego kodu:COM Interfejs 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); 
} 

Skąd mam wiedzieć, że „148BD528-A2AB-11CE-B11F-00AA00530503 "odpowiada IEnumWorkItems: http://msdn.microsoft.com/en-us/library/aa380706(VS.85).aspx

Podoba mi się, jeśli chcę poznać identyfikator GUID tego interfejsu: http://msdn.microsoft.com/en-us/library/aa381811(VS.85).aspx gdzie mogę go znaleźć?

Odpowiedz

7

Nigdy nie spotkałem formalnej dokumentacji - istnieje jednak kilka sposobów, aby to sprawdzić:

  • Otwórz lib typu (zazwyczaj sam serwer DLL) w OLE Viewer (w visual studio narzędzia)
  • szuka go w programie .idl SDK/.h za
  • napisać krótkie VC++ i używać __uuidof (IInterface)
  • szuka go pod HKCR \ Interface (choć nie wszystkie interfejsy trzeba się tam dostać zarejestrowany)
+1

Tak, SDK. MSTask.idl deklaruje je. –

3

W rejestrze, nie szukaj nazwy klasy w HKEY_CLASSES_ROOT znajdziesz GUID