LoadObject method

Causes the property bag to instruct a property object that was previously created and initialized to read its persistent properties.


HRESULT retVal = object.LoadObject(pstrName, dwHint, pUnkObject, pErrLog);


  • pstrName [in]

    The address of the name of the property object.

  • dwHint [in]
    Type: DWORD

    An integer value that was retrieved by using IPropertyBag2::GetPropertyInfo. This argument is optional and must be zero, if the value is not known or used.

  • pUnkObject [in]
    Type: IUnknown

    The address of the object's IUnknown interface. This argument cannot be NULL.

  • pErrLog [in]
    Type: IErrorLog

    The address of an IErrorlog interface in which the property bag stores any errors that occur during the load. This argument can be NULL; in which case, the caller does not receive logging errors.


The IPropertyBag2::LoadObject method enables the calling application to participate in the creation and initialization of a property object. When the IPropertyBag interface is used, a property object can be loaded by using the IPropertyBag::Read method with VT_UNKNOWN. The IPropertyBag interface does not allow the property object to be initialized by the calling application before the property object reads its own persistent data. IPropertyBag2::LoadObject allows the property object to be created and initialized by the calling application, instead of using the property bag to create and initialize the property object.

To use IPropertyBag2::LoadObject, get the property object's name and CLSID by using IPropertyBag2::GetPropertyInfo. The property object is created and initialized. IPropertyBag2::LoadObject is used instead of IPropertyBag2::Read to cause the property object to read its persistent data.