IPrintAsyncNotifyCallback::OnEventNotify メソッド (prnasnot.h)
指定したチャネルで通知が使用可能であることをリスナーに通知します。 このメソッドは、印刷システムによって呼び出されます。
構文
HRESULT OnEventNotify(
[in] IPrintAsyncNotifyChannel *pChannel,
[in] IPrintAsyncNotifyDataObject *pData
);
パラメーター
[in] pChannel
送信者とリスナーによって使用されるチャネルへのポインター。
[in] pData
通知データとそのサイズと型を含む オブジェクトへのポインター。
戻り値
HRESULT | 重大度 | 説明 |
---|---|---|
S_OK | SUCCESS | 関数は正常に終了しました。 |
INTERNAL_NOTIFICATION_QUEUE_IS_FULL | ERROR | 印刷スプーラーは、これ以上キューに登録された通知を保持できません。 既定では、キューの最大サイズは 10 件の通知です。 このエラーが返されると、リッスンしているアプリケーションは、送信されるほど速く通知を処理しません。 この通知は再送信するか破棄する必要があります。 |
戻り値は 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 INTERNAL_NOTIFICATION_QUEUE_IS_FULL:
// Some action
break;
default:
// Default action
break;
}
} else {
// Call succeeded
}
注釈
通知を配信するために、印刷スプーラーは、通知の登録時にリッスン しているアプリケーションによって提供される IPrintAsyncNotifyCallback オブジェクトの OnEventNotify メソッドを呼び出します。 一方向の通知の場合、 pChannel は NULL です。 双方向チャネルの場合、 pChannel はIPrintAsyncNotifyChannel を指し、リッスンしているアプリケーションが応答で通知を送信するために使用します。 リスナーは、IPrintAsyncNotifyChannel の SendNotification メソッドを呼び出すことによってこれを行います。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | prnasnot.h |
[DLL] | Prnasnot.dll |