UnRegisterForPrintAsyncNotifications 函式 (prnasnot.h)
可讓已註冊的應用程式從列印後台處理程式裝載的列印元件接收通知,以取消註冊。
語法
HRESULT UnRegisterForPrintAsyncNotifications(
[in] HANDLE unnamedParam1
);
參數
[in] unnamedParam1
要取消註冊的註冊句柄。
傳回值
HRESULT | 嚴重性 | 意義 |
---|---|---|
S_OK | SUCCESS | 語言函式已順利完成。 |
ALREADY_UNREGISTERED |
SUCCESS ERROR |
註冊處理程式已經取消註冊。 如果這個 HRESULT 具有 ERROR 嚴重性,呼叫函式應該處理錯誤狀況。 |
NOT_REGISTERED | SUCCESS | 註冊處理程式未註冊。 |
傳回值為 COM 錯誤碼。 因為此函式可能會順利完成作業,但傳回S_OK以外的 HRESULT ,您應該使用 SUCCEEDED 或 FAILED 宏來判斷呼叫成功。 若要取得函式傳回的特定 HRESULT ,請使用 HRESULT_CODE 宏。
下列程式代碼範例示範如何使用這些宏來評估傳回值。
if (SUCCEEDED(hr)) {
// Call succeeded, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case S_OK:
// Some action
break;
case NOT_REGISTERED:
// Some action
break;
case ALREADY_UNREGISTERED:
// Some action
break;
default:
// Default action
break;
}
} else {
// Call failed, check HRESULT value returned
switch (HRESULT_CODE(hr)){
// This can be error and a successful return
case ALREADY_UNREGISTERED:
// Some action
break;
default:
// Default action
break;
}
}
如需 COM 錯誤碼的詳細資訊,請參閱 錯誤處理。
如需其他可能的傳回值,請參閱 PrintAsyncNotifyError 。
備註
注意 這是封鎖或同步函式,可能不會立即傳回。 此函式傳回的速度取決於運行時間因素,例如網路狀態、列印伺服器組態和印表機驅動程序實作—撰寫應用程式時難以預測的因素。 從管理與使用者介面互動的線程呼叫此函式,可能會讓應用程式看起來沒有回應。
如果通道是雙向的, 對 UnRegisterForPrintAsyncNotifications 的 呼叫只會防止通知在該點之後建立的通道。 若要結束來自現有通道的通知,接聽應用程式必須使用 IPrintAsyncNotifyChannel::CloseChannel 關閉通道。
呼叫 UnRegisterForPrintAsyncNotifications 將會遞減傳遞給 RegisterForPrintAsyncNotifications 之 pCallback 對象的參考計數。
此函式成功之後, hRegistrationHandler 無效,且不得再次使用。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | prnasnot.h |
程式庫 | WinSpool.lib |
Dll | Spoolss.dll |