Udostępnij przez


Korzystanie z elementu IProvideClassInfo

Obiekt łączący się może oferować interfejsy IProvideClassInfo i IProvideClassInfo2, aby jego klienci mogli łatwo badać informacje o typie. Ta funkcja jest ważna podczas pracy z interfejsami wychodzącymi, które z definicji są definiowane przez obiekt, ale implementowane przez klienta na własnym obiekcie ujścia. W niektórych przypadkach interfejs wychodzący jest znany w czasie kompilacji zarówno z obiektem połączonym, jak i obiektem ujścia; tak jest w przypadku IPropertyNotifySink.

W innych przypadkach jednak tylko obiekt połączony zna definicje interfejsu wychodzącego w czasie kompilacji. W takich przypadkach klient musi uzyskać informacje o typie dla interfejsu wychodzącego, aby mógł dynamicznie zapewnić ujście obsługujące odpowiednie punkty wejścia w następujący sposób:

  1. Klient wylicza punkty połączenia, a następnie, aby uzyskać identyfikatory IID interfejsów wychodzących obsługiwanych przez obiekt połączony, wywołuje IConnectionPoint::GetConnectionInterface dla każdego punktu połączenia.
  2. Klient pyta obiekt, z którym można się połączyć, o jeden z interfejsów IProvideClassInfo.
  3. Klient wywołuje metody w interfejsach , IProvideClassInfoi, aby uzyskać informacje o typie dla interfejsu wychodzącego.
  4. Klient tworzy obiekt ujścia obsługujący interfejs wychodzący.
  5. Proces jest kontynuowany, a klient wywołuje IConnectionPoint::Advise w celu połączenia ujścia z punktem połączenia.

W informacjach o typie atrybut źródłowy oznacza interfejs lub dispinterface wymienione w coclass jako interfejs wychodzący. Wymienione bez tego atrybutu są uznawane za interfejsy przychodzące.

interfejsy obiektów connectable

Dostarczanie informacji o klasie