IOleItemContainer::GetObjectStorage
Returns a pointer to the storage for the object identified by the specified
name.
HRESULT GetObjectStorage(
LPOLESTR pszItem,
|
//Name of the string containing the name of object whose storage is requested
|
IBindCtx *pbc,
|
//Pointer to bind context to be used
|
REFIID riid,
|
//Reference to the identifier of the interface pointer desired
|
void **ppvStorage
|
//Indirect pointer to object’s storage
|
);
|
|
Parameters
-
pszItem
-
[in] Pointer to a zero-terminated string containing the compound document’s
name for the object whose storage is requested. For Win32 applications, the LPOLESTR
type indicates a wide character string (two bytes per character); otherwise,
the string has one byte per character.
-
pbc
-
[in] Pointer to the IBindCtx interface on the bind context 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 to be used to communicate
with the object, usually IStorage.
-
ppvStorage
-
[out] When successful, indirect pointer to the location of the interface
specified in riid, on the storage for the object named by pszItem.
In this case, the implementation must call
IUnknown::AddRef on the parameter; it is the
caller’s responsibility to call
IUnknown::Release. If an error occurs, ppvStorage
is set to NULL.
Return Values
This method supports the standard return value E_OUTOFMEMORY, as well as the
following:
-
S_OK
-
The storage of the specified object was successfully returned.
-
MK_E_NOOBJECT
-
The parameter pszItem does not identify a object in this container.
-
MK_E_NOSTORAGE
-
The object does not have its own independent storage.
-
E_NOINTERFACE
-
The requested interface is not available.
Remarks
The item moniker implementation of
IMoniker::BindToStorage calls this method.
Notes to Implementers
If pszItem designates a pseudo-object, your implementation should
return MK_E_NOSTORAGE, because pseudo-objects do not have their own
independent storage. If pszItem designates an embedded object, or a
portion of the document that has its own storage, your implementation should
return the specified interface pointer on the appropriate storage object.
See Also
IMoniker - Item Moniker Implementation