shdocvw: Abort pending tasks on DocHost destruction.

This commit is contained in:
Jacek Caban 2011-05-26 17:01:51 +02:00 committed by Alexandre Julliard
parent 826f7c0c75
commit bcffa12484
1 changed files with 11 additions and 0 deletions

View File

@ -62,6 +62,16 @@ LRESULT process_dochost_tasks(DocHost *This)
return 0;
}
static void abort_dochost_tasks(DocHost *This)
{
task_header_t *task, *cursor;
LIST_FOR_EACH_ENTRY_SAFE(task, cursor, &This->task_queue, task_header_t, entry) {
list_remove(&task->entry);
task->destr(task);
}
}
static void notif_complete(DocHost *This, DISPID dispid)
{
DISPPARAMS dispparams;
@ -876,6 +886,7 @@ void DocHost_Init(DocHost *This, IDispatch *disp, const IDocHostContainerVtbl* c
void DocHost_Release(DocHost *This)
{
abort_dochost_tasks(This);
release_dochost_client(This);
DocHost_ClientSite_Release(This);