Поделиться через


Метод IPrintAsyncNotifyCallback::ChannelClosed (prnasnot.h)

Рекомендует одному участнику канала связи уведомить другого участника о закрытии канала.

Синтаксис

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

Параметры

[in] pChannel

Указатель на канал, используемый отправителем и прослушивателем.

[in] pData

Указатель на объект , содержащий данные уведомления или ответ.

Возвращаемое значение

HRESULT Severity Значение
S_OK УСПЕШНОЕ ЗАВЕРШЕНИЕ Эта функция успешно завершена.
CHANNEL_ALREADY_CLOSED ОШИБКА Канал уже закрыт.
 

Возвращаемыми значениями являются коды ошибок 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 CHANNEL_ALREADY_CLOSED:
      // Some action 
      break;
    default:
      // Default action 
      break;
  }
} else {
  // Call succeeded 
}

Комментарии

Когда компонент, размещенный в очереди печати, закрывает канал связи с прослушивающим приложением, компонент должен вызвать метод ChannelClosed объекта IPrintAsyncNotifyCallback , который прослушивающее приложение предоставило во время регистрации уведомлений. В случае сбоя сервера печати диспетчер очереди печати попытается вызвать метод OnEventNotify объекта IPrintAsyncNotifyCallback , предоставленного прослушивающим приложением. Он отправит уведомление типа NOTIFICATION_RELEASE.

Если прослушивающее приложение закрывает двунаправленный канал связи, оно должно вызвать метод ChannelClosed объекта IPrintAsyncNotifyCallback , предоставленного компонентом при создании канала. В случае сбоя прослушивающего приложения диспетчер очереди печати вызовет метод OnEventNotify объекта IPrintAsyncNotifyCallback , предоставляемого компонентом, размещенным в очереди печати. Он отправит уведомление типа NOTIFICATION_RELEASE.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header prnasnot.h
DLL Prnasnot.dll

См. также раздел

Интерфейсы уведомлений для асинхронной печати

Обработка ошибок

IPrintAsyncNotifyCallback

Вывод на печать