Método IPrintAsyncNotifyCallback::ChannelClosed (prnasnot.h)
Aconselha um membro de um canal de comunicação a notificar o outro membro de que o canal está sendo fechado.
Sintaxe
HRESULT ChannelClosed(
[in] IPrintAsyncNotifyChannel *pChannel,
[in] IPrintAsyncNotifyDataObject *pData
);
Parâmetros
[in] pChannel
Um ponteiro para o canal usado pelo remetente e pelo ouvinte.
[in] pData
Um ponteiro para o objeto que contém os dados de notificação ou a resposta.
Retornar valor
HRESULT | Severidade | Significado |
---|---|---|
S_OK | SUCCESS | Essa função foi concluída com êxito. |
CHANNEL_ALREADY_CLOSED | ERROR | O canal já foi fechado. |
Os valores retornados são códigos de erro COM. Como essa função pode concluir a operação com êxito, ainda retorna um HRESULT diferente de S_OK você deve usar a macro SUCCEEDED ou FAILED para determinar o sucesso da chamada. Para obter o HRESULT específico retornado pela função, use a macro HRESULT_CODE.
Consulte PrintAsyncNotifyError para obter outros valores de retorno possíveis.
Para obter mais informações sobre códigos de erro do COM, confira Tratamento de erros.
O exemplo de código a seguir mostra como essas macros podem ser usadas para avaliar o valor retornado.
if (SUCCEEDED(hr)){
// Call was successful
}
if (FAILED(hr)) {
// Call failed
}
if (FAILED(hr)) {
// Call failed, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case CHANNEL_ALREADY_CLOSED:
// Some action
break;
default:
// Default action
break;
}
} else {
// Call succeeded
}
Comentários
Quando um componente hospedado pelo spooler de impressão fecha um canal de comunicação com um aplicativo de escuta, o componente deve chamar o método ChannelClosed do objeto IPrintAsyncNotifyCallback , que o aplicativo de escuta forneceu no momento em que registrou para notificações. Se o servidor de impressão falhar, o spooler de impressão tentará chamar o método OnEventNotify do objeto IPrintAsyncNotifyCallback fornecido pelo aplicativo de escuta. Ele enviará uma notificação do tipo NOTIFICATION_RELEASE.
Se o aplicativo de escuta fechar um canal de comunicação bidirecional, ele deverá chamar o método ChannelClosed do objeto IPrintAsyncNotifyCallback fornecido pelo componente quando ele criou o canal. Se o aplicativo de escuta falhar, o spooler de impressão chamará o método OnEventNotify do objeto IPrintAsyncNotifyCallback fornecido pelo componente hospedado pelo spooler de impressão. Ele enviará uma notificação do tipo NOTIFICATION_RELEASE.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | prnasnot.h |
DLL | Prnasnot.dll |