# IFillLockBytes

The IFillLockBytes interface enables downloading code to write data asynchronously to a structured storage byte array. When the downloading code has new data available, it calls IFillLockBytes::FillAppend or IFillLockBytes::FillAt to write the data to the byte array. An application attempting to access this data, through calls to the ILockBytes interface, can do so even as the downloader continues to make calls to IFillLockBytes. If the application attempts to access data that has not already been downloaded through a call to IFillLockBytes, then ILockBytes returns a new error, E_PENDING.

##### When to Implement

You normally would not implement this interface. A system developer that wants to provide asynchronous storage for a protocol other than http might implement IFillLockBytes as part of the transport layer.

##### When to Use

You normally would not call this interface. Monikers or other downloading code that provide asynchronous storage use this interface to fill the byte array as data becomes available.

Methods in VTable Order

IUnknown Methods | Description
QueryInterface | Returns pointers to supported interfaces.
AddRef | Increments reference count.
Release | Decrements reference count.

IFillLockBytes Methods | Description
FillAppend | Writes a new block of bytes to end of byte array.
FillAt | Writes a new block of bytes to specified location in byte array.
SetFillSize | Sets expected size of byte array.
Terminate | Notifies byte array wrapper of successful or unsuccessful termination of download.

See Also

IConnectionPoint, IConnectionPointContainer, ILockBytes, IProgressNotify, IStorage, IStream

Also see IBinding and IBindStatusCallback in the ActiveX™ SDK.