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