CreateAsyncBindCtx

Creates an asynchronous bind context for use with asynchronous monikers.

HRESULT CreateAsyncBindCtx(
  DWORD dwReserved,  //Reserved for future use; must be zero
  IBindStatusCallback *pbsc,
                     //Pointer to callback interface
  IEnumFORMATETC *penumfmtetc,
                     //Pointer to enumerator object for formats
  IBindCtx **ppbc    //Address of output variable that receives the 
                     // IBindCtx interface pointer
);
 

Parameters

dwReserved
[in] Reserved for future use; must be zero.
pbsc
[in] Pointer to the IBindStatusCallback interface used for receiving data availability and progress notification.
penumfmtetc
[in] Pointer to the IEnumFORMATETC interface that can be used to enumerate formats for format negotiation during binding. This parameter can be NULL, in which case the caller is not interested in format negotiation during binding, and the default format of the object will be bound to.
ppbc
[out] Address of IBindCtx* pointer variable that receives the interface pointer to the new bind context.

Return Values

S_OK
The operation completed successfully.
E_OUTOFMEMORY
The method ran out of memory and did not complete.
E_INVALIDARG
One or more parameters are invalid.

Remarks

This function automatically registers the IBindStatusCallback and the IEnumFORMATETC interfaces with the bind context. The grfBSCOption parameter allows the client to specify flags indicating which callback notifications the client is capable of receiving. If the client does not wish to receive certain notification, it can choose to implement those callback methods as empty function stubs (returning E_NOTIMPL), and they should not be called.

The RegisterBindStatusCallback function can also be used to register callback interfaces in the bind context.

See Also

IBindStatusCallback, BSCO_OPTION, RegisterBindStatusCallback