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 |
---|---|
|
O ponteiro da interface de notificação foi definido com êxito. |
|
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
IBackgroundCopyJob2::SetNotifyCmdLine