---
description: "Learn more about: _com_ptr_t::GetActiveObject"
title: "_com_ptr_t::GetActiveObject"
ms.date: "11/04/2016"
f1_keywords: ["_com_ptr_t::GetActiveObject"]
helpviewer_keywords: ["GetActiveObject method [C++]"]
ms.assetid: 2fa94853-0410-4620-91f2-136dae923f9f
---
# _com_ptr_t::GetActiveObject
**Microsoft Specific**
Attaches to an existing instance of an object given a `CLSID` or `ProgID`.
## Syntax
```
HRESULT GetActiveObject(
const CLSID& rclsid
) throw( );
HRESULT GetActiveObject(
LPCWSTR clsidString
) throw( );
HRESULT GetActiveObject(
LPCSTR clsidStringA
) throw( );
```
#### Parameters
*rclsid*
The `CLSID` of an object.
*clsidString*
A Unicode string that holds either a `CLSID` (starting with "**{**") or a `ProgID`.
*clsidStringA*
A multibyte string, using the ANSI code page, that holds either a `CLSID` (starting with "**{**") or a `ProgID`.
## Remarks
These member functions call **GetActiveObject** to retrieve a pointer to a running object that has been registered with OLE and then queries for this smart pointer's interface type. The resulting pointer is then encapsulated within this `_com_ptr_t` object. `Release` is called to decrement the reference count for the previously encapsulated pointer. This routine returns the HRESULT to indicate success or failure.
- **GetActiveObject(** `rclsid` **)** Attaches to an existing instance of an object given a `CLSID`.
- **GetActiveObject(** `clsidString` **)** Attaches to an existing instance of an object given a Unicode string that holds either a `CLSID` (starting with "**{**") or a `ProgID`.
- **GetActiveObject(** `clsidStringA` **)** Attaches to an existing instance of an object given a multibyte character string that holds either a `CLSID` (starting with "**{**") or a `ProgID`. Calls [MultiByteToWideChar](/windows/win32/api/stringapiset/nf-stringapiset-multibytetowidechar), which assumes that the string is in the ANSI code page rather than an OEM code page.
**END Microsoft Specific**
## See also
[_com_ptr_t Class](../cpp/com-ptr-t-class.md)