Поделиться через


Метод IPrintAsyncNotifyCallback::OnEventNotify (prnasnot.h)

Оповещает прослушивателя о доступности уведомления в указанном канале. Этот метод вызывается системой печати.

Синтаксис

HRESULT OnEventNotify(
  [in] IPrintAsyncNotifyChannel    *pChannel,
  [in] IPrintAsyncNotifyDataObject *pData
);

Параметры

[in] pChannel

Указатель на канал, используемый отправителем и прослушивателем.

[in] pData

Указатель на объект, содержащий данные уведомления, а также его размер и тип.

Возвращаемое значение

HRESULT Severity Значение
S_OK УСПЕШНОЕ ЗАВЕРШЕНИЕ Функция успешно завершена.
INTERNAL_NOTIFICATION_QUEUE_IS_FULL ОШИБКА Очередь печати печати не может содержать уведомления, помещенные в очередь. По умолчанию максимальный размер очереди составляет 10 уведомлений. Когда эта ошибка возвращается, прослушивающее приложение не обрабатывает уведомления так быстро, как они отправляются. Это уведомление следует либо повторно отправить, либо отменить.
 

Возвращаемые значения — это коды ошибок COM. Так как эта функция может успешно завершить операцию, но вернуть HRESULT, отличный от S_OK для определения успешности вызова следует использовать макрос SUCCEEDED или FAILED. Чтобы получить конкретный HRESULT, возвращенный функцией, используйте макрос HRESULT_CODE.

Другие возможные возвращаемые значения см. в разделе PrintAsyncNotifyError .

Дополнительные сведения о кодах ошибок COM см. в разделе Обработка ошибок.

В следующем примере кода показано, как эти макросы можно использовать для оценки возвращаемого значения.

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 
}

Комментарии

Чтобы доставить уведомление, диспетчер очереди печати будет вызывать метод OnEventNotify объекта IPrintAsyncNotifyCallback , предоставленного прослушивающим приложением во время регистрации уведомлений. Для однонаправленных уведомлений pChannel имеет значение NULL. Для двунаправленных каналов pChannel указывает на IPrintAsyncNotifyChannel , который будет использоваться прослушивающим приложением для отправки уведомления в ответ. Прослушиватель сделает это путем вызова метода SendNotificationобъекта IPrintAsyncNotifyChannel.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header prnasnot.h
DLL Prnasnot.dll

См. также раздел

Интерфейсы уведомлений асинхронной печати

Обработка ошибок

IPrintAsyncNotifyCallback

Вывод на печать