Метод 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 |