--- description: "Learn more about: _com_ptr_t::Attach" title: "_com_ptr_t::Attach" ms.date: "11/04/2016" f1_keywords: ["_com_ptr_t::Attach"] helpviewer_keywords: ["COM interfaces, attach pointer", "Attach method [C++]"] ms.assetid: 94c18e0a-06be-4ca7-bdaf-cd54ec0a645e --- # _com_ptr_t::Attach **Microsoft Specific** Encapsulates a raw interface pointer of this smart pointer's type. ## Syntax ```cpp void Attach( Interface* pInterface ) throw( ); void Attach( Interface* pInterface, bool fAddRef ) throw( ); ``` #### Parameters *pInterface*
A raw interface pointer. *fAddRef*
If it is **`true`**, then `AddRef` is called. If it is **`false`**, the `_com_ptr_t` object takes ownership of the raw interface pointer without calling `AddRef`. ## Remarks - **Attach(** *pInterface* **)** `AddRef` is not called. The ownership of the interface is passed to this `_com_ptr_t` object. `Release` is called to decrement the reference count for the previously encapsulated pointer. - **Attach(** *pInterface* **,** *fAddRef* **)** If *fAddRef* is **`true`**, `AddRef` is called to increment the reference count for the encapsulated interface pointer. If *fAddRef* is **`false`**, this `_com_ptr_t` object takes ownership of the raw interface pointer without calling `AddRef`. `Release` is called to decrement the reference count for the previously encapsulated pointer. **END Microsoft Specific** ## See also [_com_ptr_t Class](../cpp/com-ptr-t-class.md)