共用方式為


IPrintAsyncNotifyChannel::CloseChannel 方法 (prnasnot.h)

關閉通道。

語法

HRESULT CloseChannel(
  [in] IPrintAsyncNotifyDataObject *pData
);

參數

[in] pData

指定通道關閉原因的通知指標。 此指標可以是 Null

傳回值

HRESULT 嚴重性 意義
S_OK SUCCESS 語言函式已順利完成。
CHANNEL_ACQUIRED ERROR

SUCCESS

此通道上的另一個接聽程式已回應。 只有第一個回應者可以繼續與寄件者通訊。

如果此 HRESULT 具有 ERROR 嚴重性,呼叫函式應該會處理錯誤狀況。

CHANNEL_ALREADY_CLOSED ERROR

SUCCESS

通道已經關閉。 如果傳回此 HRESULT,則 IPrintAsyncNotifyChannel::Release 不得呼叫,因為通道已經關閉並釋放。

如果此 HRESULT 具有 ERROR 嚴重性,呼叫函式應該會處理錯誤狀況。

CHANNEL_CLOSED_BY_ANOTHER_LISTENER ERROR 呼叫端以外的接聽應用程式已關閉通道。
CHANNEL_CLOSED_BY_SAME_LISTENER ERROR 呼叫端已經關閉通道。
INVALID_NOTIFICATION_TYPE ERROR 指定的通知類型無效。
 

傳回值為 COM 錯誤碼。 由於此函式可能會順利完成作業,但傳回S_OK您應該使用 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,則會捨棄已排入佇列的通知。

呼叫 CreatePrintAsyncNotifyChannel之後,無法立即呼叫CloseChannel

需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 prnasnot.h
Dll Prnasnot.dll

另請參閱

非同步列印通知介面

IPrintAsyncNotifyChannel

列印