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

注解

注意 这是一个阻塞或同步函数,可能不会立即返回。 此函数返回的速度取决于运行时因素(例如网络状态、打印服务器配置和打印机驱动程序实现),这些因素在编写应用程序时难以预测。 从管理与用户界面交互的线程调用此函数可能会使应用程序看起来无响应。
 
RegisterForPrintAsyncNotifications 的 调用必须返回 hRegistrationHandler

如果通道是双向的,则对 UnRegisterForPrintAsyncNotifications 的 调用只会阻止在该时间点之后创建的通信通道发出通知。 若要结束来自现有通道的通知,侦听应用程序必须使用 IPrintAsyncNotifyChannel::CloseChannel 关闭通道

调用 UnRegisterForPrintAsyncNotifications 将递减传递给 RegisterForPrintAsyncNotificationspCallback 对象的引用计数。

此函数成功后, hRegistrationHandler 无效,不得再次使用。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 prnasnot.h
Library WinSpool.lib
DLL Spoolss.dll

另请参阅

打印后台处理程序 API 函数

打印