描述
启用已注册从Print Spooler托管的打印组件接收通知的应用程序以注销。
C++ 语法
HRESULT UnRegisterForPrintAsyncNotifications( __in HANDLE hRegistrationHandler ); |
PowerBASIC 语法
FUNCTION UnRegisterForPrintAsyncNotifications ( _ BYVAL hRegistrationHandler AS DWORD _ ) AS LONG |
参数
hRegistrationHandler
[in]要注销的注册句柄。
返回值
HRESULT |
严重 |
含义 |
S_OK |
SUCCESS |
功能成功完成。 |
ALREADY_UNREGISTERED |
SUCCESS ERROR |
注册处理程序已经被注销。如果此HRESULT具有ERROR严重性,则调用函数应处理错误条件。 |
NOT_REGISTERED |
SUCCESS |
注册处理程序未注册。 |
返回值是COM错误代码。因为此函数可能会成功完成操作,而是返回除S_OK之外的HRESULT,则应使用SUCCEEDED或FAILED宏来确定调用的成功。要获取函数返回的具体HRESULT,请使用HRESULT_CODE宏。以下代码示例显示了如何使用这些宏。
C++
if (SUCCEEDED(hr)){
//call was successful
}
if (FAILED(hr)) {
// call failed
}
if (FAILED(hr)) {
// call failed
switch (HRESULT_CODE(hr)){
case CHANNEL_CLOSED_BY_ANOTHER_LISTENER:
// some action
break;
case CHANNEL_CLOSED_BY_SAME_LISTENER:
// some action
break;
default:
//default action
break;
}
} else {
//call succeeded
}
PowerBASIC
IF SUCCEEDED(hr) THEN
' // call was successful
END IF
IF FAILED(hr) THEN
' // call failed
END IF
IF FAILED(hr) THEN
' // call failed
SELECT CASE HRESULT_CODE(hr)
CASE %CHANNEL_CLOSED_BY_ANOTHER_LISTENER
' // some action
CASE %CHANNEL_CLOSED_BY_SAME_LISTENER
' // some action
CASE ELSE
' //default action
END SELECT
ELSE
' // call succeeded
END IF
有关其他可能的返回值,请参阅PrintAsyncNotifyError.
备注
致电RegisterForPrintAsyncNotifications必须返回hRegistrationHandler.
如果频道是双向通话,UnRegisterForPrintAsyncNotifications的呼叫只能阻止在该点之后创建的通信频道的通知。要结束现有频道的通知,聆听应用程序必须使用IPrintAsyncNotifyChannel.CloseChannel关闭频道。
对UnRegisterForPrintAsyncNotifications的调用将减少传递给RegisterForPrintAsyncNotifications的pCallback对象的引用计数。
此函数成功后,hRegistrationHandler无效,不能再次使用。
引用文件 #INCLUDE Once
Prnasnot.inc


