次の方法で共有


IPrintAsyncNotifyCallback::ChannelClosed メソッド (prnasnot.h)

通信チャネルの 1 人のメンバーに、チャネルが閉じられていることを他のメンバーに通知するように通知します。

構文

HRESULT ChannelClosed(
  [in] IPrintAsyncNotifyChannel    *pChannel,
  [in] IPrintAsyncNotifyDataObject *pData
);

パラメーター

[in] pChannel

送信者とリスナーによって使用されるチャネルへのポインター。

[in] pData

通知データまたは応答を含む オブジェクトへのポインター。

戻り値

HRESULT 重大度 説明
S_OK SUCCESS この関数は正常に完了しました。
CHANNEL_ALREADY_CLOSED ERROR チャネルは既に閉じられています。
 

戻り値は 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 CHANNEL_ALREADY_CLOSED:
      // Some action 
      break;
    default:
      // Default action 
      break;
  }
} else {
  // Call succeeded 
}

注釈

印刷スプーラーによってホストされているコンポーネントがリッスンしているアプリケーションとの通信チャネルを閉じると、コンポーネントは IPrintAsyncNotifyCallback オブジェクトの ChannelClosed メソッドを呼び出す必要があります。このメソッドは、通知の登録時にリッスン アプリケーションが提供します。 プリント サーバーがクラッシュした場合、印刷スプーラーは、リッスンしているアプリケーションによって提供される IPrintAsyncNotifyCallback オブジェクトの OnEventNotify メソッドの呼び出しを試みます。 NOTIFICATION_RELEASEの種類の通知が送信されます。

リッスンしているアプリケーションが双方向通信チャネルを閉じる場合は、チャネルの作成時にコンポーネントによって提供される IPrintAsyncNotifyCallback オブジェクトの ChannelClosed メソッドを呼び出す必要があります。 リッスンしているアプリケーションがクラッシュした場合、印刷スプーラーは、印刷スプーラーによってホストされているコンポーネントによって提供される IPrintAsyncNotifyCallback オブジェクトの OnEventNotify メソッドを呼び出します。 NOTIFICATION_RELEASEの種類の通知が送信されます。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー prnasnot.h
[DLL] Prnasnot.dll

こちらもご覧ください

非同期印刷通知インターフェイス

エラー処理

IPrintAsyncNotifyCallback

印刷