IOleItemContainer::GetObject
Returns a
pointer to the object identified by the specified name.
HRESULT GetObject(
LPOLESTR pszItem, |
//Pointer to name of the object requested |
DWORD dwSpeedNeeded, |
//Speed requirements on binding |
IBindCtx *pbc, |
//Pointer to bind context object to be used |
REFIID riid, |
//Reference to the identifier of the interface
pointer desired |
void **ppvObject |
//Indirect pointer to interface |
); |
|
Parameters
pszItem
[in] Pointer
to a zero-terminated string containing the container s name for the requested
object. For Win32 applications, the LPOLESTR type indicates a wide
character string (two bytes per character); otherwise, the string has one byte
per character.
dwSpeedNeeded
[in]
Indicates approximately how long the caller will wait to get the object. The
legal values for dwSpeedNeeded are taken from the enumeration BINDSPEED
pbc
[in] Pointer
to the IBindCtx interface on the bind context object to be used in this
binding operation. The bind context caches objects bound during the binding
process, contains parameters that apply to all operations using the bind
context, and provides the means by which the binding implementation should
retrieve information about its environment. For more information, see IBindCtx
riid
[in]
Reference to the identifier of the interface pointer requested.
ppvObject
[out] When
successful, indirect pointer to the location of the interface specified in riid
on the object named by pszItem. In this case, the implementation must
call IUnknown::AddRef
Return Values
This method
supports the standard return value E_OUTOFMEMORY, as well as the following:
S_OK
The specified
object was successfully returned.
MK_E_EXCEEDEDDEADLINE
The binding
operation could not be completed within the time limit specified by the bind
context s BIND_OPTS
MK_E_NOOBJECT
The parameter
pszItem does not identify an object in this container.
E_NOINTERFACE
The requested
interface was not available.
Remarks
The item
moniker implementation of IMoniker::BindToObject
Notes to Implementers
Your
implementation of IOleItemContainer::GetObject should first determine
whether pszItem is a valid name for one of the container s objects. If
not, you should return MK_E_NOOBJECT.
If pszItem
names an embedded or linked object, your implementation must check the value of
the dwSpeedNeeded parameter. If the value is BINDSPEED_IMMEDIATE and the
object is not yet loaded, you should return MK_E_EXCEEDEDDEADLINE. If the
object is loaded, your implementation should determine whether the object is
running (for example, by calling the OleIsRunning
If pszItem
names a pseudo-object, your implementation can ignore the dwSpeedNeeded
parameter because a pseudo-object is running whenever its container is running.
In this case, your implementation can simply query for the requested interface.
If you want
more specific information about the time limit than is given by dwSpeedNeeded,
you can call IBindCtx::GetBindOptions
See Also