Compartilhar via


Método IPrintAsyncNotifyCallback::OnEventNotify (prnasnot.h)

Alerta um ouvinte de que uma notificação está disponível em um canal especificado. Esse método é chamado pelo sistema de impressão.

Sintaxe

HRESULT OnEventNotify(
  [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 e seu tamanho e tipo.

Retornar valor

HRESULT Severidade Significado
S_OK SUCCESS A função foi concluída com êxito.
INTERNAL_NOTIFICATION_QUEUE_IS_FULL ERROR O Spooler de Impressão não pode conter mais notificações enfileiradas. Por padrão, o tamanho máximo da fila é de 10 notificações. Quando esse erro é retornado, o aplicativo de escuta não está processando as notificações tão rápido quanto elas estão sendo enviadas. Essa notificação deve ser reenviada ou descartada.
 

Os valores retornados são códigos de erro COM. Como essa função pode concluir a operação com êxito, mas retornar 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 que foi retornado pela função , use a macro HRESULT_CODE.

Consulte PrintAsyncNotifyError para obter outros valores retornados 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 INTERNAL_NOTIFICATION_QUEUE_IS_FULL:
      // Some action 
      break;
    default:
      // Default action 
      break;
  }
} else {
  // Call succeeded 
}

Comentários

Para entregar uma notificação, o spooler de impressão chamará o método OnEventNotify do objeto IPrintAsyncNotifyCallback fornecido pelo aplicativo ouvinte no momento em que ele se registrou para notificações. Para notificações unidirecionais, pChannel é NULL. Para canais bidirecionais, pChannel aponta para um IPrintAsyncNotifyChannel a ser usado por um aplicativo de escuta para enviar uma notificação em resposta. O ouvinte fará isso chamando o método SendNotification do IPrintAsyncNotifyChannel.

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íncrona

Tratamento de erro

IPrintAsyncNotifyCallback

Impressão