IRunningObjectTable::GetObject
Determines whether
the object identified by the specified moniker is running, and if it is,
retrieves a pointer to that object. This method looks for the moniker in the
Running Object Table (ROT), and retrieves the pointer registered there.
HRESULT GetObject(
IMoniker *pmkObjectName, |
//Pointer to
the moniker on the object |
IUnknown
**ppunkObject |
//Indirect
pointer to the object |
); |
|
Parameters
pmkObjectName
[in] Pointer
to the moniker to search for in the Running Object Table.
ppunkObject
[out] When
successful. indirect pointer to the IUnknown interface on the running
object. In this case, the implementation calls IUnknown::AddRef on the parameter; it is
the caller s responsibility to call IUnknown::Release
Return Values
S_OK
Indicates
that pmkObjectName was found in the ROT and a pointer was returned.
S_FALSE
There is no
entry for pmkObjectName in the ROT, or that the object it identifies is
no longer running (in which case, the entry is revoked).
Remarks
This method
checks the ROT for the moniker specified by pmkObjectName. If that
moniker had previously been registered with a call to IRunningObjectTable::Register
Notes to Callers
Generally,
you call the IRunningObjectTable::GetObject method only if you are
writing your own moniker class (that is, implementing the IMoniker
However, note
that not all implementations of IMoniker::BindToObject need to call this
method. If you expect your moniker to have a prefix (indicated by a non-NULL pmkToLeft
parameter to IMoniker::BindToObject), you should not check the ROT. The
reason for this is that only complete monikers are registered with the ROT, and
if your moniker has a prefix, your moniker is part of a composite and thus not
complete. Instead, your moniker should request services from the object
identified by the prefix (for example, the container of the object identified by
your moniker).
See Also