共用方式為


IPrintAsyncNotifyCallback::ChannelClosed 方法 (prnasnot.h)

建議通道的一個成員通知另一個成員通道正在關閉。

語法

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

參數

[in] pChannel

傳送者和接聽程式所使用的通道指標。

[in] pData

對象指標,其中包含通知數據或回應。

傳回值

HRESULT 嚴重性 意義
S_OK SUCCESS 此函式已順利完成。
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

列印