A data source is required to return the same IUnknown pointer each time a consumer asks for a particular data member. Once the notification IDataSourceListener::OnDataMemberChanged has been fired, it is valid for the data source to return a different IUnknown (or the same one). Comparison of two data member strings should be done in a case-insensitive manner.
Data sources generally put off getting the data for a particular data member until it is requested. It is possible to obtain a data member asynchronously by returning Null when data is requested, but then later use IDataSourceListener to indicate that the data member has changed. When the consumer asks for the data in response to the notification, it will be available.
Because the data source can choose to provide an enumeration of its data members, and the list of members might change, IDataSourceListener also has the ability to notify interested parties (such as a property browser) that the set has changed, but it is not a requirement that the list be kept up-to-date.
Method | Description |
dataMemberChanged | Notifies a data consumer that a data member has become available, unavailable, or refreshed. |
dataMemberAdded | Notifies a data consumer that a new member has been added to the enumeration of well-known data members. |
dataMemberRemoved | Notifies a data consumer that a member has been removed from the enumeration of well-known data members. |