RegisterForPrintAsyncNotifications 函式 (prnasnot.h)
可讓應用程式註冊來自列印後台處理程式裝載印元件的通知,例如印表機驅動程式、列印處理器和埠監視器。
語法
HRESULT RegisterForPrintAsyncNotifications(
[in] PCWSTR pszName,
[in] PrintAsyncNotificationType *pNotificationType,
[in] PrintAsyncNotifyUserFilter eUserFilter,
[in] PrintAsyncNotifyConversationStyle eConversationStyle,
[in] IPrintAsyncNotifyCallback *pCallback,
[out] HANDLE *phNotify
);
參數
[in] pszName
列印伺服器或列印佇列名稱的指標。
[in] pNotificationType
應用程式必須接收之通知類型的數據架構 GUID 指標。
[in] eUserFilter
值,指定是否將通知傳送至:
- 只有與列印後台處理程式裝載外掛程式傳送者相同的使用者執行的應用程式。
- 一組更廣泛的接聽應用程式。
[in] eConversationStyle
值,指定通訊是雙向還是單向。
[in] pCallback
列印後台處理程式裝載元件將用來回呼應用程式之物件的指標。 這絕對不應該是 NULL。
[out] phNotify
表示註冊之結構的指標。
傳回值
HRESULT | 嚴重性 | 意義 |
---|---|---|
S_OK | SUCCESS | 語言函式已順利完成。 |
ALREADY_REGISTERED | ERROR | 註冊對象已經註冊。 |
LOCAL_ONLY_REGISTRATION | SUCCESS | 註冊本機通知成功。 未註冊遠端通知。 |
MAX_REGISTRATION_COUNT_EXCEEDED | ERROR | 已達到註冊數目上限。 不允許再註冊。 |
REMOTE_ONLY_REGISTRATION | SUCCESS | 遠端通知的註冊成功。 未註冊本機通知。 |
傳回值為 COM 錯誤碼。 由於此函式可能會順利完成作業,但傳回S_OK您應該使用 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 LOCAL_ONLY_REGISTRATION:
// Some action
break;
case REMOTE_ONLY_REGISTRATION:
// Some action
break;
default:
// Default action
break;
}
} else {
// Call failed, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case ALREADY_REGISTERED:
// Some action
break;
case MAX_REGISTRATION_COUNT_EXCEEDED:
// Some action
break;
default:
// Default action
break;
}
}
如需 COM 錯誤碼的詳細資訊,請參閱 錯誤處理。
如需其他可能的傳回值,請參閱 PrintAsyncNotifyError 。
備註
由於 RegisterForPrintAsyncNotifications 呼叫,系統會針對 pCallback 物件呼叫 IUnknown::AddRef 方法。 呼叫 UnRegisterForPrintAsyncNotifications 將會釋放 pCallback 物件。 建立通道並關閉通道時遞減 pCallback 對象的參考計數也會遞增。
pSchema 參數是多任務緩衝處理程式接受並使用 來篩選接聽程式用戶端的 GUID 指標。 多任務緩衝處理程式異步通知機制的任何用戶端都可以定義自己的通知類型。 即使多任務緩衝處理程式不知道傳送的通知類型,仍會根據通知類型篩選接聽程式用戶端。 pSchema 參考的通知架構是公開 IPrintAsyncNotifyDataObject 之通知物件所使用的架構。 多任務緩衝處理通知管道的用戶端可以定義自己的數據架構,並可來回傳送任何數據類型,而 pSchema 所參考的 GUID 對於該數據架構而言是唯一的。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | prnasnot.h |
程式庫 | WinSpool.lib |
Dll | Spoolss.dll |