UnRegisterForPrintAsyncNotifications 函数 (prnasnot.h)
允许已注册以接收来自打印后台处理程序托管的打印组件的通知的应用程序取消注册。
语法
HRESULT UnRegisterForPrintAsyncNotifications(
[in] HANDLE unnamedParam1
);
参数
[in] unnamedParam1
要注销的注册句柄。
返回值
HRESULT | 严重性 | 含义 |
---|---|---|
S_OK | 成功 | 函数已成功完成。 |
ALREADY_UNREGISTERED |
成功 ERROR |
注册处理程序已取消注册。 如果此 HRESULT 具有 ERROR 严重性,则调用函数应处理错误条件。 |
NOT_REGISTERED | 成功 | 注册处理程序未注册。 |
返回值为 COM 错误代码。 由于此函数可能成功完成操作,但返回除S_OK以外的 HRESULT ,因此应使用 SUCCEEDED 或 FAILED 宏来确定调用是否成功。 若要获取函数返回的特定 HRESULT ,请使用 HRESULT_CODE 宏。
下面的代码示例演示如何使用这些宏来计算返回值。
if (SUCCEEDED(hr)) {
// Call succeeded, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case S_OK:
// Some action
break;
case NOT_REGISTERED:
// Some action
break;
case ALREADY_UNREGISTERED:
// Some action
break;
default:
// Default action
break;
}
} else {
// Call failed, check HRESULT value returned
switch (HRESULT_CODE(hr)){
// This can be error and a successful return
case ALREADY_UNREGISTERED:
// Some action
break;
default:
// Default action
break;
}
}
有关 COM 错误代码的详细信息,请参阅错误处理。
有关其他可能的返回值,请参阅 PrintAsyncNotifyError 。
注解
注意 这是一个阻塞或同步函数,可能不会立即返回。 此函数返回的速度取决于运行时因素(例如网络状态、打印服务器配置和打印机驱动程序实现),这些因素在编写应用程序时难以预测。 从管理与用户界面交互的线程调用此函数可能会使应用程序看起来无响应。
如果通道是双向的,则对 UnRegisterForPrintAsyncNotifications 的 调用只会阻止在该时间点之后创建的通信通道发出通知。 若要结束来自现有通道的通知,侦听应用程序必须使用 IPrintAsyncNotifyChannel::CloseChannel 关闭通道。
调用 UnRegisterForPrintAsyncNotifications 将递减传递给 RegisterForPrintAsyncNotifications 的 pCallback 对象的引用计数。
此函数成功后, hRegistrationHandler 无效,不得再次使用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | prnasnot.h |
Library | WinSpool.lib |
DLL | Spoolss.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈