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
Print Spooler でホストされるコンポーネントがアプリケーションのコールバックに使用するオブジェクトへのポインター。 これは 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以外の 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 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 |
Library | WinSpool.lib |
[DLL] | Spoolss.dll |
こちらもご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示