Called by the provider to indicate that asynchronous processing has stopped.
HRESULT OnStop ( HCHAPTER hChapter, ULONG ulOperation, HRESULT hrStatus, LPOLESTR pwszStatusText);
Parameters
DBASYNCHOP_OPEN—The completion information applies to the asynchronous opening or population of a rowset or to the asynchronous initialization of a data source object.
S_OK—The asynchronous operation completed successfully.
DB_E_CANCELED—The asynchronous operation was canceled.
E_OUTOFMEMORY—The provider ran out of memory attempting to execute the asynchronous operation.
E_FAIL—The asynchronous operation failed for a provider-specific reason.
The provider owns the memory for pwszStatusText. The consumer can copy the text to its own memory but must not attempt to free pwszStatusText nor to reference it after it has returned from IDBAsynchNotify::OnStop.
Return Code
Comments
This method is called once per operation, after all asynchronous phases for that operation have completed. IDBAsynchNotify::OnStop is always called, whether the asynchronous operation succeeded, failed, or was aborted by the consumer.
For operations that complete successfully, IDBAsynchNotify::OnProgress is always called prior to IDBAsynchNotify::OnStop with ulProgress equal to ulProgressMax. The only exception is if the listener has explicitly requested not to receive further IDBAsynchNotify::OnProgress notifications by returning E_NOTIMPL or DB_S_UNWANTEDOPERATION, and if the provider has optimized by not making additional calls to IDBAsynchNotify::OnProgress.
Consumers should be prepared to handle new values of ulOperation by returning S_OK or DB_S_UNWANTEDOPERATION.
ICommand::Execute | IDBAsynchStatus::Abort | IDBAsynchStatus::GetStatus | IDBInitialize::Initialize | IDBSchemaRowset::GetRowset | IOpenRowset::OpenRowset | ISourcesRowset::GetSourcesRowset