# BINDF

Values from the BINDF enumeration are returned to the moniker from the client’s IBindStatusCallback::OnStartBinding method. These values specify the type of binding the client wants from the moniker.

    typedef enum tagBINDF {
        BINDF_ASYNCHRONOUS,
        BINDF_ASYNCSTORAGE,
        BINDF_PULLDATA,
        BINDF_GETNEWESTVERSION,
        BINDF_NOWRITECACHE
    } BINDF;

Elements

BINDF_ASYNCHRONOUS
  The moniker should return immediately from IMoniker::BindToStorage or IMoniker::BindToObject. The actual result of the object bind or the data backing the storage will arrive asynchronously. The client will be notificed through calls to its IBindStatusCallback::OnDataAvailable or IBindStatusCallback::OnObjectAvailable methods. If the client does not specify this flag, the bind operation will be synchronous, and the client will not receive any data from the bind operation until the IMoniker::BindToXxx call returns.
BINDF_ASYNCSTORAGE
  The client of IMoniker::BindToStorage prefers that the storage and stream objects returned in IBindStatusCallback::OnDataAvailable return E_PENDING when they reference data not yet available through their read methods, rather than blocking until the data becomes available. This flag applies only to BINDF_ASYNCHRONOUS operations. Note that asynchronous stream objects return E_PENDING while data is still downloading and return S_FALSE for the end of the file.
BINDF_PULLDATA
  When this flag is specified, the asynchronous moniker will allow the client of IMoniker::BindToStorage to drive the bind operation by pulling the data, rather than having the moniker drive the operation by pushing the data to the client. Specifically, when this flag is specified, new data will only be read/downloaded after the client finishes reading all data that is currently available. This means data will only be downloaded for the client after the client does an IStream::Read operation that blocks or returns E_PENDING. When the client specifies this flag, it must be sure to read all the data it can, even data that is not necessarily available yet. When this flag is not specified, the moniker will continue downloading data and will call the client with IBindStatusCallback::OnDataAvailable whenever new data is available. This flag applies only to BINDF_ASYNCHRONOUS bind operations.
BINDF_GETNEWESTVERSION
  The bind operation should retrieve the newest version of the data/object possible. For URL monikers, this flag maps to an HTTP IF MODIFIED SINCE request. Cached data is only used if it is the most recent version.
BINDF_NOWRITECACHE
  The bind operation should not store retrieved data in the disk cache.

See Also

IBindStatusCallback::OnDataAvailable, IBindStatusCallback::OnObjectAvailable, IBindStatusCallback::OnStartBinding