IPrintAsyncNotifyCallback::ChannelClosed 方法 (prnasnot.h)

建议信道的一个成员通知另一个成员该通道正在关闭。

语法

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

参数

[in] pChannel

指向发送方和侦听器使用的通道的指针。

[in] pData

指向包含通知数据或响应的 对象的指针。

返回值

HRESULT 严重性 含义
S_OK 成功 此函数已成功完成。
CHANNEL_ALREADY_CLOSED ERROR 通道已关闭。
 

返回值为 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 CHANNEL_ALREADY_CLOSED:
      // Some action 
      break;
    default:
      // Default action 
      break;
  }
} else {
  // Call succeeded 
}

注解

当打印后台处理程序托管的组件关闭具有侦听应用程序的信道时,该组件应调用 IPrintAsyncNotifyCallback 对象的 ChannelClosed 方法,该对象是侦听应用程序在注册通知时提供的。 如果打印服务器崩溃,打印后台处理程序将尝试调用侦听应用程序提供的 IPrintAsyncNotifyCallback 对象的 OnEventNotify 方法。 它将发送NOTIFICATION_RELEASE类型的通知。

如果侦听应用程序关闭双向信道,则应在创建通道时调用组件提供的 IPrintAsyncNotifyCallback 对象的 ChannelClosed 方法。 如果侦听应用程序崩溃,打印后台处理程序将调用由打印后台处理程序托管的组件提供的 IPrintAsyncNotifyCallback 对象的 OnEventNotify 方法。 它将发送NOTIFICATION_RELEASE类型的通知。

要求

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

另请参阅

异步打印通知接口

错误处理

IPrintAsyncNotifyCallback

打印