2010-04-13 16 views
10

io non sono molto in interfacce COM, quindi ho una piccola domanda, dire che ho questo codice:COM Interfaccia 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); 
} 

Come faccio a sapere che "148BD528-A2AB-11CE-B11F-00AA00530503 "corrisponde a IEnumWorkItems: http://msdn.microsoft.com/en-us/library/aa380706(VS.85).aspx

Come se volessi conoscere il GUID di questa interfaccia: http://msdn.microsoft.com/en-us/library/aa381811(VS.85).aspx dove lo trovo?

risposta

7

Non ho mai incontrato una documentazione formale - ci sono, tuttavia, diversi modi di guardare in su:

  • Aprire il tipo lib (di solito il server DLL stesso) in OLE Viewer (incluso in Visual Studio strumenti)
  • guardare in su nel programma IDL SDK/di
  • scrivere brevi VC++ .he utilizzare __uuidof (IInterface)
  • guardando in su in HKCR \ Interface (anche se non tutte le interfacce bisogno di arrivare registrati)
+1

Sì, l'SDK. MSTask.idl li dichiara. –

3

Nel Registro di sistema, fare una ricerca per il nome della classe in HKEY_CLASSES_ROOT, si trova il GUID