IPropertyBag::Read

This method asks the property bag to read the named property into a caller-initialized VARIANT.

HRESULT Read( 
  LPCOLESTR pszPropName, 
  VARIANT* pVar, 
  IErrorlog* pErrorLog 
);

Parameters

  • pszPropName
    [in] Address of the name of the property to read. This cannot be NULL.
  • pVar
    [in, out] Address of the caller-initialized VARIANT that is to receive the property value on output. The function must set both type and value members in the VARIANT before returning. If the caller initialized the pVar->vt member on entry, the property bag should attempt to change its corresponding value into this type. If the caller sets pVar->vt to VT_EMPTY, the property bag can use whatever type is convenient.
  • pErrorLog
    [in, out] Address of the caller's error log in which the property bag stores any errors that occur during reads. This can be NULL. If it is NULL, the caller does not receive errors.

Return Values

The following table shows the return values.

Value Description
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. For example, 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

The Read method asks the property bag to read the property named in 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, the property bag is responsible for creating and initializing the object described by pszPropName.

E_NOTIMPL is not a valid return code because any object implementing this interface must support the entire functionality of the interface.

Requirements

OS Versions: Windows CE .NET 4.0 and later.
Header: Ocidl.h, Ocidl.idl.
Link Library: Ole32.lib, Uuid.lib.

See Also

IPropertyBag | IPropertyBag::Write

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.