# IBindStatusCallback::OnProgress

An asynchronous moniker calls this method to indicate the current progress of the bind operation.

HRESULT OnProgress(

ULONG ulProgress, | //Progress indicator for bind operation
ULONG ulProgressMax, | //Expected maximum value of ulProgress parameter
ULONG ulStatusCode, | //BINDSTATUS value indicating bind progress
LPCWSTR szStatusText | //Displayable information indicating bind progress
); |

Parameters

ulProgress
  [in] Current progress of the bind operation relative to the expected maximum indicated in the ulProgressMax parameter.
ulProgressMax
  [in] The expected maximum value of the ulProgress parameter for the duration of calls to IBindStatusCallback::OnProgress for this bind operation. Note that this value may change across calls to this method. A value of zero means that the maximum value of ulProgress is unknown (for example, in BindToStorage when the data download size is unknown.)
ulStatusCode
  [in] Additional information regarding the progress of the bind operation. Valid values are taken from the BINDSTATUS enumeration and include:
  - BINDSTATUS_BEGINDOWNLOADCOMPONENTS

    The download operation has begun downloading code for COM components that will be installed before the object can be instantiated. The szStatusText accompanying IBindStatusCallback::OnProgress provides the display name of the component being downloaded.

  - BINDSTATUS_INSTALLINGCOMPONENTS

    The download operation has downloaded code and is installing it. The szStatusText accompanying IBindStatusCallback::OnProgress provides the display name of the component being installed.

  - BINDSTATUS_ENDDOWNLOADCOMPONENTS

    The download operation has finished downloading and installing all the necessary code. The szStatusText accompanying IBindStatusCallback::OnProgress provides the display name of the newly installed component.

szStatusText
  [in] Textual information indicating the current progress of the bind operation. The text reflects the BINDSTATUS value of the ulStatusCode parameter and is appropriate for display in the user interface of the client.

Return Values

S_OK
  The operation was successful.
E_INVALIDARG
  One or more parameters are invalid.

Remarks

The moniker calls this method repeatedly to indicate the current progress of the bind operation, typically at reasonable intervals during a lengthy operation.

The client can use the progress notification to provide progress information to the end user from the ulProgress, ulProgressMax, and szStatusText parameters or to make programmatic decisions based on the ulStatusCode parameter.

#### Notes to Implementers

A client can return E_UNIMPL or S_OK if it is not interested in receiving this notification.

See Also

BINDSTATUS