Udostępnij za pośrednictwem


Podstawy obiektów COM ATL

Następująca ilustracja przedstawia relację między klas i interfejsów, które służą do definiowania obiektu ATL COM.

Struktura ATL

[!UWAGA]

Schemat ten pokazuje, że CComObject jest pochodną CYourClass należy CComAggObject i CComPolyObject obejmują CYourClass jako zmienną.

Aby zdefiniować obiekt ATL COM na trzy sposoby.Opcja Standardowy jest użycie CComObject klasy pochodzącej od CYourClass.Druga opcja jest utworzenie zagregowane obiektu za pomocą CComAggObject klasy.Trzecia opcja, jest użycie CComPolyObject klasy.CComPolyObjectdziała jako mieszańca: może działać jako CComObject klasy lub jako CComAggObject klasy, w zależności od sposobu najpierw jest tworzony.Aby uzyskać więcej informacji na temat używania CComPolyObject klasy, zobacz Klasa CComPolyObject.

Standardowe ATL COM, można używać dwóch obiektów: obiekt zewnętrzne i wewnętrzne obiektu.Zewnętrznych klientów dostępu funkcje wewnętrzne obiektu poprzez funkcje otoki, które są zdefiniowane w obiekcie zewnętrznym.Typem obiektu zewnętrznego jest CComObject.

Użycie zagregowane obiektu zewnętrznego obiektu nie przewidują otok funkcje wewnętrzne obiektu.Zamiast tego zewnętrznego obiektu zawiera wskaźnik, który jest bezpośrednio dostępny przez klientów zewnętrznych.W tym scenariuszu zewnętrznego obiektu jest typu CComAggObject.Obiekt wewnętrzny jest zmienną obiektu zewnętrznego i jest typu CYourClass.

Ponieważ klient nie ma przechodzić zewnętrznego obiektu do interakcji z wewnętrznego obiektu, obiekty zagregowane są zwykle bardziej efektywne.Również obiektu zewnętrznego nie znać funkcjonalność obiektu zagregowane, zważywszy, że interfejs zagregowane obiektu jest dostępna bezpośrednio do klienta.Jednak nie wszystkie obiekty można agregować.Obiektu agregowane musi być zaprojektowane z agregacją pamiętać.

Implementuje ATL IUnknown w dwóch etapach:

Obiekt ATL COM inne aspekty są obsługiwane przez innych klas:

  • CComCoClass definiuje obiekt domyślnej klasy fabrycznej i agregacji modelu.

  • IDispatchImpl zawiera domyślną wykonania IDispatch Interface część dual interfejsami na obiekcie.

  • ISupportErrorInfoImpl implementuje ISupportErrorInfo interfejsu, który zapewnia informacje o błędach mogą być poprawnie propagowane łańcucha wywołania.

W tej sekcji

Sekcje pokrewne

  • Tworzenie projektu ATL
    Zawiera informacje dotyczące tworzenia obiektu ATL COM.

  • ATL
    Zawiera łącza do tematów koncepcyjne na temat programu przy użyciu biblioteki Active Template Library.

Zobacz też

Inne zasoby

Pojęcia biblioteki Active Template Library (ALT)