IPrintAsyncNotifyChannel::CloseChannel 메서드(prnasnot.h)

채널을 닫습니다.

구문

HRESULT CloseChannel(
  [in] IPrintAsyncNotifyDataObject *pData
);

매개 변수

[in] pData

채널이 닫힌 이유를 지정하는 알림에 대한 포인터입니다. 이 포인터는 NULL일 수 있습니다.

반환 값

HRESULT 심각도 의미
S_OK SUCCESS 함수가 성공적으로 완료되었습니다.
CHANNEL_ACQUIRED 오류

또는

SUCCESS

이 채널의 다른 수신기가 이미 응답했습니다. 첫 번째 응답자만 발신자와의 통신을 계속할 수 있습니다.

이 HRESULT에 오류 심각도가 있는 경우 호출 함수는 오류 조건을 처리해야 합니다.

CHANNEL_ALREADY_CLOSED 오류

또는

SUCCESS

채널이 이미 닫혔습니다. 채널이 이미 닫혀 릴리스되었기 때문에 이 HRESULT가 반환되면 IPrintAsyncNotifyChannel::Release를 호출하면 안 됩니다.

이 HRESULT에 오류 심각도가 있는 경우 호출 함수는 오류 조건을 처리해야 합니다.

CHANNEL_CLOSED_BY_ANOTHER_LISTENER 오류 호출자 이외의 수신 대기 애플리케이션이 통신 채널을 닫습니다.
CHANNEL_CLOSED_BY_SAME_LISTENER 오류 호출자가 이미 통신 채널을 닫았습니다.
INVALID_NOTIFICATION_TYPE 오류 지정된 알림 유형이 잘못되었습니다.
 

반환 값은 COM 오류 코드입니다. 이 함수는 작업을 성공적으로 완료할 수 있지만 S_OK 이외의 HRESULT를 반환할 수 있으므로 SUCCEEDED 또는 FAILED 매크로를 사용하여 호출의 성공을 결정해야 합니다. 함수에서 반환된 특정 HRESULT를 얻으려면 HRESULT_CODE 매크로를 사용합니다. 다음 코드 예제에서는 이러한 매크로를 사용할 수 있는 방법을 보여 줍니다.

다른 가능한 반환 값 은 PrintAsyncNotifyError 를 참조하세요.

COM 오류 코드에 관한 자세한 내용은 오류 처리를 참조하세요.

if (SUCCEEDED(hr)) {
  // Call succeeded, check HRESULT value returned
  switch (HRESULT_CODE(hr)){
    case CHANNEL_ACQUIRED:
      // Some action 
      break;
    case CHANNEL_ALREADY_CLOSED:
      // Some action 
      break;
    default:
      // Default action 
      break;
  }
} else {
  // Call failed, check HRESULT value returned
  switch (HRESULT_CODE(hr)){
    case CHANNEL_CLOSED_BY_ANOTHER_LISTENER:
      // Some action 
      break;
    case CHANNEL_CLOSED_BY_SAME_LISTENER:
      // Some action 
      break;
    case INVALID_NOTIFICATION_TYPE:
      // Some action 
      break;
    case CHANNEL_ACQUIRED:
      // This can be an error and a successful return
      //  some action 
      break;
    case CHANNEL_ALREADY_CLOSED:
      // This can be an error and a successful return
      //  some action 
      break;
    default:
      // Default action 
      break;
  }
}

설명

CloseChannel 은 인쇄 스풀러 또는 수신 대기 애플리케이션에서 호스트하는 구성 요소인 통신 채널의 양쪽에서 호출할 수 있습니다.

인쇄 스풀러가 SendNotification에 대한 이전 호출을 처리하는 동안 IPrintAsyncNotifyChannel::SendNotification 호출이 수행되면 인쇄 스풀러는 알림을 큐에 넣습니다. 인쇄 스풀러에서 호스트하는 구성 요소 또는 애플리케이션이 CloseChannel을 호출하는 경우 큐에 대기 중인 알림이 삭제됩니다.

CloseChannelCreatePrintAsyncNotifyChannel 호출 직후에 호출할 수 없습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 prnasnot.h
DLL Prnasnot.dll

추가 정보

비동기 인쇄 알림 인터페이스

IPrintAsyncNotifyChannel

인쇄