|
1 | | ---- |
2 | | -title: "IUnknown Implementation Classes (ATL) | Microsoft Docs" |
3 | | -ms.custom: "" |
4 | | -ms.date: "11/04/2016" |
5 | | -ms.technology: ["cpp-atl"] |
6 | | -ms.topic: "reference" |
7 | | -f1_keywords: ["vc.atl.Iunknown"] |
8 | | -dev_langs: ["C++"] |
9 | | -helpviewer_keywords: ["IUnknown implementation classes"] |
10 | | -ms.assetid: 47b69bb5-69d8-4a9c-84a8-329bdde2bb3f |
11 | | -author: "mikeblome" |
12 | | -ms.author: "mblome" |
13 | | -ms.workload: ["cplusplus"] |
| 1 | +--- |
| 2 | +title: "IUnknown Implementation Classes (ATL) | Microsoft Docs" |
| 3 | +ms.custom: "" |
| 4 | +ms.date: "11/04/2016" |
| 5 | +ms.technology: ["cpp-atl"] |
| 6 | +ms.topic: "reference" |
| 7 | +f1_keywords: ["vc.atl.Iunknown"] |
| 8 | +dev_langs: ["C++"] |
| 9 | +helpviewer_keywords: ["IUnknown implementation classes"] |
| 10 | +ms.assetid: 47b69bb5-69d8-4a9c-84a8-329bdde2bb3f |
| 11 | +author: "mikeblome" |
| 12 | +ms.author: "mblome" |
| 13 | +ms.workload: ["cplusplus"] |
14 | 14 | --- |
15 | 15 | # IUnknown Implementation Classes |
16 | | -The following classes implement **IUnknown** and related methods: |
| 16 | +The following classes implement `IUnknown` and related methods: |
17 | 17 |
|
18 | 18 | - [CComObjectRootEx](../atl/reference/ccomobjectrootex-class.md) Manages reference counting for both aggregated and nonaggregated objects. Allows you to specify a threading model. |
19 | 19 |
|
20 | 20 | - [CComObjectRoot](../atl/reference/ccomobjectroot-class.md) Manages reference counting for both aggregated and nonaggregated objects. Uses the default threading model of the server. |
21 | 21 |
|
22 | | -- [CComAggObject](../atl/reference/ccomaggobject-class.md) Implements **IUnknown** for an aggregated object. |
| 22 | +- [CComAggObject](../atl/reference/ccomaggobject-class.md) Implements `IUnknown` for an aggregated object. |
23 | 23 |
|
24 | | -- [CComObject](../atl/reference/ccomobject-class.md) Implements **IUnknown** for a nonaggregated object. |
| 24 | +- [CComObject](../atl/reference/ccomobject-class.md) Implements `IUnknown` for a nonaggregated object. |
25 | 25 |
|
26 | | -- [CComPolyObject](../atl/reference/ccompolyobject-class.md) Implements **IUnknown** for aggregated and nonaggregated objects. Using `CComPolyObject` avoids having both `CComAggObject` and `CComObject` in your module. A single `CComPolyObject` object handles both aggregated and nonaggregated cases. |
| 26 | +- [CComPolyObject](../atl/reference/ccompolyobject-class.md) Implements `IUnknown` for aggregated and nonaggregated objects. Using `CComPolyObject` avoids having both `CComAggObject` and `CComObject` in your module. A single `CComPolyObject` object handles both aggregated and nonaggregated cases. |
27 | 27 |
|
28 | | -- [CComObjectNoLock](../atl/reference/ccomobjectnolock-class.md) Implements **IUnknown** for a nonaggregated object, without modifying the module lock count. |
| 28 | +- [CComObjectNoLock](../atl/reference/ccomobjectnolock-class.md) Implements `IUnknown` for a nonaggregated object, without modifying the module lock count. |
29 | 29 |
|
30 | | -- [CComTearOffObject](../atl/reference/ccomtearoffobject-class.md) Implements **IUnknown** for a tear-off interface. |
| 30 | +- [CComTearOffObject](../atl/reference/ccomtearoffobject-class.md) Implements `IUnknown` for a tear-off interface. |
31 | 31 |
|
32 | | -- [CComCachedTearOffObject](../atl/reference/ccomcachedtearoffobject-class.md) Implements **IUnknown** for a "cached" tear-off interface. |
| 32 | +- [CComCachedTearOffObject](../atl/reference/ccomcachedtearoffobject-class.md) Implements `IUnknown` for a "cached" tear-off interface. |
33 | 33 |
|
34 | | -- [CComContainedObject](../atl/reference/ccomcontainedobject-class.md) Implements **IUnknown** for the inner object of an aggregation or a tear-off interface. |
| 34 | +- [CComContainedObject](../atl/reference/ccomcontainedobject-class.md) Implements `IUnknown` for the inner object of an aggregation or a tear-off interface. |
35 | 35 |
|
36 | 36 | - [CComObjectGlobal](../atl/reference/ccomobjectglobal-class.md) Manages a reference count on the module to ensure your object won't be deleted. |
37 | 37 |
|
38 | | -- [CComObjectStack](../atl/reference/ccomobjectstack-class.md) Creates a temporary COM object, using a skeletal implementation of **IUnknown**. |
| 38 | +- [CComObjectStack](../atl/reference/ccomobjectstack-class.md) Creates a temporary COM object, using a skeletal implementation of `IUnknown`. |
39 | 39 |
|
40 | 40 | ## Related Articles |
41 | 41 | [Fundamentals of ATL COM Objects](../atl/fundamentals-of-atl-com-objects.md) |
|
0 commit comments