Compartilhar via


Método IBackgroundCopyJob::SetNotifyInterface (bits.h)

Identifica a implementação da interface IBackgroundCopyCallback para BITS. Use a interface IBackgroundCopyCallback para receber notificação de eventos relacionados ao trabalho.

Sintaxe

HRESULT SetNotifyInterface(
  IUnknown *Val
);

Parâmetros

Val

Um ponteiro de interface IBackgroundCopyCallback . Para remover o ponteiro da interface de retorno de chamada atual, defina esse parâmetro como NULL.

Retornar valor

Esse método retorna os seguintes valores HRESULT , bem como outros.

Código de retorno Descrição
S_OK
O ponteiro da interface de notificação foi definido com êxito.
BG_E_INVALID_STATE
O estado do trabalho não pode ser BG_JOB_STATE_CANCELLED ou BG_JOB_STATE_ACKNOWLEDGED.

Comentários

Chame esse método somente se você implementar a interface IBackgroundCopyCallback . Use o método SetNotifyInterface em conjunto com o método SetNotifyFlags para especificar o tipo de notificação que você deseja receber.

A interface de notificação torna-se inválida quando seu aplicativo é encerrado; O BITS não persiste a interface de notificação. Como resultado, o processo de inicialização do aplicativo deve chamar o método SetNotifyInterface nesses trabalhos existentes para os quais você deseja receber notificação. Se você precisar capturar informações de estado e progresso que ocorreram desde a última vez em que seu aplicativo foi executado, pesquise informações de estado e progresso durante a inicialização do aplicativo.

Observe que o BITS chamará o retorno de chamada mesmo se o evento para o qual você registrou já tiver ocorrido.

Como alternativa ao recebimento de notificação de retorno de chamada, você pode se registrar para que o BITS execute uma linha de comando para eventos de erro e transferidos. Para obter mais detalhes, consulte o método IBackgroundCopyJob2::SetNotifyCmdLine .

Observe que, se mais de um aplicativo chamar o método SetNotifyInterface para definir a interface de notificação para o trabalho, o último aplicativo a chamar o método SetNotifyInterface será aquele que receberá notificações. Os outros aplicativos não receberão notificações.

Exemplos

O exemplo a seguir mostra como chamar o método SetNotifyInterface . Para obter detalhes sobre a classe de exemplo CNotifyInterface usada no exemplo a seguir, consulte a interface IBackgroundCopyCallback . O exemplo pressupõe que o ponteiro da interface IBackgroundCopyJob seja válido.

IBackgroundCopyJob* pJob;
CNotifyInterface* pNotify = new CNotifyInterface();

hr = pJob->SetNotifyInterface(pNotify);
if (SUCCEEDED(hr))
{
  hr = pJob->SetNotifyFlags(BG_NOTIFY_JOB_TRANSFERRED | 
                            BG_NOTIFY_JOB_ERROR);
}
pNotify->Release();
pNofity = NULL;

if (FAILED(hr))
{
  //Handle error - unable to register for event notification.
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP
Servidor mínimo com suporte Windows Server 2003
Plataforma de Destino Windows
Cabeçalho bits.h
Biblioteca Bits.lib
DLL QmgrPrxy.dll

Confira também

IBackgroundCopyCallback

IBackgroundCopyJob2::SetNotifyCmdLine

IBackgroundCopyJob::GetNotifyInterface

IBackgroundCopyJob::SetNotifyFlags