IPrintAsyncNotifyCallback::OnEventNotify 方法 (prnasnot.h)
向侦听器发出警报,指出通知在指定通道上可用。 打印系统调用此方法。
语法
HRESULT OnEventNotify(
[in] IPrintAsyncNotifyChannel *pChannel,
[in] IPrintAsyncNotifyDataObject *pData
);
参数
[in] pChannel
指向发送方和侦听器使用的通道的指针。
[in] pData
指向包含通知数据及其大小和类型的 对象的指针。
返回值
HRESULT | 严重性 | 含义 |
---|---|---|
S_OK | 成功 | 函数已成功完成。 |
INTERNAL_NOTIFICATION_QUEUE_IS_FULL | ERROR | 打印后台处理程序不能再保留任何排队通知。 默认情况下,队列的最大大小为 10 个通知。 返回此错误时,侦听应用程序处理通知的速度不如发送通知快。 应重新发送或放弃此通知。 |
返回值为 COM 错误代码。 由于此函数可能成功完成操作,但返回除S_OK以外的 HRESULT,因此应使用 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
}
注解
为了传递通知,打印后台处理程序将在注册通知时调用侦听应用程序提供的 IPrintAsyncNotifyCallback 对象的 OnEventNotify 方法。 对于单向通知, pChannel 为 NULL。 对于双向通道, pChannel 指向侦听应用程序用来发送响应通知的 IPrintAsyncNotifyChannel 。 侦听器将通过调用 IPrintAsyncNotifyChannel 的 SendNotification 方法执行此操作。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | prnasnot.h |
DLL | Prnasnot.dll |