IPrintCorePS2::GetOptions メソッドは、ドライバーの現在の機能設定を、機能/オプション のキーワード ペアの一覧の形式で取得します。
構文
HRESULT GetOptions(
[in] PDEVOBJ pdevobj,
[in] DWORD dwFlags,
[in] PCZZSTR pmszFeaturesRequested,
[in] DWORD cbIn,
[out] PZZSTR pmszFeatureOptionBuf,
[in] DWORD cbSize,
[out] PDWORD pcbNeeded
);
パラメーター
[in] pdevobj
DEVOBJ 構造体へのポインター。
[in] dwFlags
予約済みであり、0 に設定する必要があります。
[in] pmszFeaturesRequested
設定が要求された機能キーワードの一覧 (MULTI_SZ形式) を含む呼び出し元が指定したバッファーへのポインター。 すべての機能の設定を取得するには、このパラメーター NULL に設定します。
[in] cbIn
pmszFeaturesRequested が指すバッファーのサイズバイト単位で指定します。 サイズには、最後のMULTI_SZ null 文字が含まれます。
[out] pmszFeatureOptionBuf
ドライバー設定から取得した機能とオプションのキーワード ペアの一覧 (MULTI_SZ形式) を受け取る呼び出し元が指定したバッファーへのポインター。 各機能/オプション キーワード ペアには、特徴キーワード名、null 文字、オプション キーワード名、および別の null 文字が含まれます。 リストは 2 つの NULL 文字で終了します。
[in] cbSize
pmszFeatureOptionBuf 指すバッファーのサイズをバイト単位で指定します。
[out] pcbNeeded
要求されたデータの実際のサイズ (バイト単位) を受け取るメモリ位置へのポインター。
戻り値
このメソッドは、次のいずれかの値を返す必要があります。
| リターン コード | 形容 |
|---|---|
|
メソッドは成功しました。 |
|
cbSize の値が、出力バッファーに書き込まれるバイト数 (pmszFeatureOptionBuf 指すバッファー) よりも小さかった。
このメソッドは、pmszFeatureOptionBuf NULL に設定呼び出されました。 |
|
入力バッファー (pmszFeaturesRequested が指すバッファー) が提供されましたが、その内容はMULTI_SZ形式ではありません。
pdevobj 無効なドライバー コンテキスト オブジェクトを指すパラメーターです。 |
|
このメソッドはサポートされていません。 |
|
メソッドが失敗しました。 |
備考
このメソッドは、ドキュメント固定 と プリンター固定 機能の両方をサポートします。 これは、コア ドライバーが、すべてのオプション設定を設定する DrvEnablePDEV 処理 が完了した後にのみサポートされます。 サポートされていないときに IPrintCorePS2::GetOptions を呼び出すと、E_NOTIMPLが返されます。 たとえば、次のようになります。 コア ドライバーがレンダー プラグインの IPrintOemPS::EnablePDEV メソッドを呼び出すと、ドライバーは引き続きその DrvEnablePDEV 処理で占有されるため、プラグインがプラグインの IPrintOemPS::D evMode メソッド内で IPrintCorePS2::GetOptions を呼び出すと、プラグインはE_NOTIMPL戻り値を受け取ります。 ただし、プラグインの IPrintOemPS::EnablePDEV メソッドは、コア ドライバーが DrvEnablePDEV 処理を完了した後に呼び出されるため、プラグインは IPrintOemPS::EnablePDEV メソッド内で IPrintCorePS2::GetOptions を正常に呼び出すことが可能です。
要求された機能キーワードが認識されない場合、または機能が認識されているが、現在オプションが選択されていない場合、機能は無視され、機能/オプション キーワードペアは出力バッファーに配置されません。
データ アクセスごとに 2 つの呼び出しを行う必要性を減らすには、メソッドに固定サイズ (1 KB など) の出力バッファーを渡し、関数の戻り値を確認します。 メソッドがS_OKを返す場合、バッファーには対象のデータが既に含まれています。 メソッドがE_OUTOFMEMORYを返す場合、*pcbNeeded の値は、目的のデータを保持するために必要なバッファー サイズです。 呼び出し元は、その大きなサイズのバッファーを割り当て、メソッドの 2 番目の呼び出しを続行する必要があります。
このメソッドは、Pscript5 レンダー プラグインでサポートされています。
詳細については、「GetOptions と SetOptions の使用」を参照してください。
必要条件
| 要件 | 価値 |
|---|---|
| ターゲット プラットフォーム の | デスクトップ |
| ヘッダー | prcomoem.h (Prcomoem.h を含む) |
関連項目
DEVOBJ を する
IPrintCorePS2 の