Sdílet prostřednictvím


Základy objektů COM ATL

Následující obrázek znázorňuje vztah mezi třídy a rozhraní, které slouží k definování objektu ATL COM.

Struktura ATL

[!POZNÁMKA]

Tento diagram ukazuje, že CComObject je odvozen od CYourClass že CComAggObject a CComPolyObject zahrnují CYourClass jako členské proměnné.

Objekt ATL COM definovat třemi způsoby.Standardní možností je použití CComObject třídy odvozené od CYourClass .Druhou možností je vytvořit pomocí agregovaný objekt CComAggObject třídy.Třetí možností je použít CComPolyObject třídy.CComPolyObjectfunguje jako hybrid: může pracovat jako CComObject třídy nebo jako CComAggObject třídy podle toho, jak je poprvé vytvořena.Další informace o použití CComPolyObject třídy naleznete v tématu Třída CComPolyObject.

Při použití standardních ATL COM použít dva objekty: objekt vnější a vnitřní objekt.Externí klienti přístup pomocí funkce souhrnného seznamu stop, které jsou definovány v objektu vnější funkce vnitřní objekt.Vnější objekt je typu CComObject .

Při použití objektu agregované neposkytuje vnější objekt obálky pro funkce vnitřní objekt.Místo toho vnější objekt obsahuje ukazatel, který je externím klientům přistupovat přímo.V tomto scénáři je vnější objekt typu CComAggObject .Vnitřní objekt je členské proměnné vnější objektu a je typu CYourClass .

Agregované objekty jsou obvykle efektivnější, protože klient nemá vnější objekt s vnitřní objekt projít.Také vnější objekt nemá vědět funkce agregovaný objekt vzhledem k tomu, že je rozhraní agregovaný objekt přímo klientovi k dispozici.Všechny objekty však lze agregovat.Objektu sečtou musí být navrženy s agregací nezapomeňte.

Implementuje ATL IUnknown ve dvou fázích:

Další aspekty objekt ATL COM zpracovávány jiných tříd:

  • CComCoClass definuje model objektu výchozí třídu factory a agregace.

  • IDispatchImpl poskytuje výchozí provádění IDispatch Interface část jakékoliv duální rozhraní objektu.

  • ISupportErrorInfoImpl implementuje ISupportErrorInfo rozhraní, které zajišťuje informace o chybě můžete nahoru v řetězu volání správně šířeny.

V tomto oddíle

Související oddíly

  • Vytvoření projektu ATL
    Obsahuje informace o vytvoření objektu ATL COM.

  • ATL
    Obsahuje odkazy na pojmy program pomocí knihovny aktivní šablony.

Viz také

Další zdroje

Koncepty knihovny ATL (Active Template Library)