IPropertyBag::Read
Called by the
control to read a property from the storage provided by the container.
HRESULT Read(
LPCOLESTR pszPropName, |
//Pointer to the property to be read |
VARIANT* pVar, |
//Pointer to the VARIANT to receive the
property value |
IErrorLog*
pErrorLog |
//Pointer to the caller s error log |
); |
|
Parameters
pszPropName
[in] Pointer
to the name of the property to read. Cannot be NULL.
pVar
[in, out]
Pointer to the caller-initialized VARIANT that is to receive the
property value on output. The method must set both type and value fields in the
VARIANT before returning. If the caller initialized the pVar->vt
field on entry, the property bag should attempt to coerce the value it knows
into this type. If the caller sets pVar->vt to VT_EMPTY, the property
bag can use whatever type is convenient.
pErrorLog
[in] Pointer
to the caller s IErrorLog interface in which the property bag stores any
errors that occur during reads. Can be NULL in which case the caller is not
interested in errors.
Return Values
S_OK
The property
was read successfully. The caller becomes responsible for any allocations that
are contained in the VARIANT in pVar.
E_POINTER
The address
in pszPropName is not valid (such as NULL).
E_INVALIDARG
The property
named with pszPropName does not exist in the property bag.
E_FAIL
The property
bag was unable to read the specified property, such as if the caller specified
a data type to which the property bag could not coerce the known value. If the
caller supplied an error log, a more descriptive error was sent there.
Remarks
This method
asks the property bag to read the property named with pszPropName into
the caller-initialized VARIANT in pVar. Errors that occur are
logged in the error log pointed to by pErrorLog. When pVar->vt
specifies another object pointer (VT_UNKNOWN) then the property bag is
responsible for creating and initializing the object described by pszPropName.
E_NOTIMPL is
not a valid return code since any object implementing this interface must
support the entire functionality of the interface.
See Also