Dostarczanie informacji o klasie
Często jest to przydatne dla klienta obiektu w celu zbadania informacji o typie obiektu. Biorąc pod uwagę identyfikator CLSID obiektu, klient może zlokalizować bibliotekę typów obiektu przy użyciu wpisów rejestru, a następnie może skanować bibliotekę typów dla wpisu coclass w bibliotece zgodnej z CLSID.
Jednak nie wszystkie obiekty mają identyfikator CLSID, chociaż nadal muszą podać informacje o typie. Ponadto jest dla klienta wygodne, aby mógł po prostu poprosić obiekt o informacje o jego typie, zamiast tracić czas na wyodrębnianie tych samych informacji z wpisów rejestru. Ta funkcja jest ważna podczas pracy z interfejsami wychodzącymi w obiektach z możliwością łączenia. (Zobacz Using IProvideClassInfo ,aby uzyskać więcej informacji na temat sposobu zapewniania tej możliwości przez obiekty połączone).
W takich przypadkach klient może wysłać zapytanie do obiektu IProvideClassInfo lub IProvideClassInfo2. Jeśli te interfejsy istnieją, klient wywołuje metodę GetClassInfo, aby uzyskać informacje o typie interfejsu.
Implementując IProvideClassInfo lub IProvideClassInfo2, obiekt określa, że może udostępniać informacje o typie dla całej klasy; oznacza to, co zostałoby opisane w sekcji wspólnej klasy biblioteki typów, jeśli ma ją. GetClassInfo zwraca wskaźnik ITypeInfo odpowiadający informacji o coklasie obiektu. Za pomocą tego wskaźnika ITypeInfo klient może przeanalizować wszystkie definicje interfejsów wejściowych i wyjściowych obiektu.
Obiekt może również udostępnić IProvideClassInfo2. Interfejs IProvideClassInfo2 to proste rozszerzenie do IProvideClassInfo, które ułatwia szybkie i łatwe pobieranie identyfikatorów interfejsu wychodzącego obiektu dla domyślnego zestawu zdarzeń. IProvideClassInfo2 pochodzi z IProvideClassInfo.
Tematy pokrewne