Compartilhar via


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

Confira também

Interfaces de notificação de impressão assíncronas

Tratamento de erro

IPrintAsyncNotifyCallback

Impressão