GetPrinterDataEx 関数
GetPrinterDataEx 関数は、指定されたプリンターまたはプリント サーバーの構成データを取得します。 GetPrinterDataEx は、 SetPrinterData 関数が格納した値を取得できます。 さらに、 GetPrinterDataEx は 、SetPrinterDataEx 関数が指定したキーの下に格納した値を取得できます。
構文
DWORD GetPrinterDataEx(
_In_ HANDLE hPrinter,
_In_ LPCTSTR pKeyName,
_In_ LPCTSTR pValueName,
_Out_ LPDWORD pType,
_Out_ LPBYTE pData,
_In_ DWORD nSize,
_Out_ LPDWORD pcbNeeded
);
パラメーター
-
hPrinter [in]
-
関数が構成データを取得するプリンターまたはプリント サーバーへのハンドル。 プリンター ハンドルを取得するには、 OpenPrinter、 OpenPrinter2、または AddPrinter 関数を使用します。
-
pKeyName [in]
-
取得する値を含むキーを指定する null で終わる文字列へのポインター。 区切り記号として円記号 ( \ ) 文字を使用して、1 つ以上のサブキーを持つパスを指定します。
hPrinter がプリンターのハンドルで、pKeyName が NULL または空の文字列である場合、GetPrinterDataEx はERROR_INVALID_PARAMETERを返します。
hPrinter がプリント サーバーへのハンドルである場合、pKeyName は無視されます。
-
pValueName [in]
-
取得するデータを識別する null で終わる文字列へのポインター。
プリンターの場合、この文字列は pKeyName キーの値の名前を指定します。
プリント サーバーの場合、この文字列は、次の「解説」セクションに記載されている定義済みの文字列の 1 つです。
-
pType [out]
-
値に格納されているデータの型を受け取る変数へのポインター。 関数は、データの格納時に SetPrinterDataEx 呼び出しで指定された型を返します。 このパラメーターは、情報が不要な場合は NULL にすることができます。 GetPrinterDataEx は、RegQueryValueEx 関数呼び出しの lpdwType パラメーターとして pType を渡します。
-
pData [out]
-
構成データを受け取るバッファーへのポインター。
-
nSize [in]
-
pData が指すバッファーのサイズ (バイト単位)。
-
pcbNeeded [out]
-
構成データのサイズをバイト単位で受け取る変数へのポインター。 nSize で指定されたバッファー サイズが小さすぎる場合、関数は ERROR_MORE_DATAを返し、pcbNeeded は必要なバッファー サイズを示します。
戻り値
関数が成功した場合、戻り値は ERROR_SUCCESS。
関数が失敗した場合、戻り値はエラー値です。
解説
Note
これはブロック関数または同期関数であり、すぐには返されない場合があります。 この関数が返す速度は、アプリケーションの作成時に予測が困難なネットワーク状態、プリント サーバーの構成、プリンター ドライバーの実装要因などの実行時の要因によって異なります。 ユーザー インターフェイスとの対話を管理するスレッドからこの関数を呼び出すと、アプリケーションが応答しなくなる可能性があります。
GetPrinterDataEx は、 SetPrinterDataEx 関数と SetPrinterData 関数によって設定されたプリンター構成データを取得します。
pKeyName パラメーターを "PrinterDriverData" に設定して GetPrinterDataEx を呼び出すことは、GetPrinterData 関数の呼び出しと同じです。
hPrinter がプリント サーバーへのハンドルである場合、pValueName は次の定義済みの値のいずれかを指定できます。
値 | 説明 |
---|---|
SPLREG_ALLOW_USER_MANAGEFORMS | Windows XP Service Pack 2 (SP2) 以降 Windows Server 2003 Service Pack 1 (SP1) 以降 |
SPLREG_ARCHITECTURE | |
SPLREG_BEEP_ENABLED | |
SPLREG_DEFAULT_SPOOL_DIRECTORY | |
SPLREG_DNS_MACHINE_NAME | |
SPLREG_DS_PRESENT | 正常に戻ると、マシンが DS ドメイン上にある場合は pData に0x0001が含まれます。それ以外の場合は 0。 |
SPLREG_DS_PRESENT_FOR_USER | 正常に戻ると、ユーザーが DS ドメインにログオンしている場合は pData に0x0001が含まれます。それ以外の場合は 0。 |
SPLREG_EVENT_LOG | |
SPLREG_MAJOR_VERSION | |
SPLREG_MINOR_VERSION | |
SPLREG_NET_POPUP | Windows Server 2003 以降ではサポートされていません |
SPLREG_NET_POPUP_TO_COMPUTER | 正常に戻ると、 pData には、ジョブ通知をクライアント コンピューターに送信する必要がある場合は 1、ジョブ通知をユーザーに送信する場合は 0 が含まれます。 Windows Server 2003 以降ではサポートされていません |
SPLREG_OS_VERSION | Windows XP 以降 |
SPLREG_OS_VERSIONEX | |
SPLREG_PORT_THREAD_PRIORITY_DEFAULT | |
SPLREG_PORT_THREAD_PRIORITY | |
SPLREG_PRINT_DRIVER_ISOLATION_GROUPS | Windows 7 以降 |
SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE | Windows 7 以降 |
SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE | Windows 7 以降 |
SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT | Windows 7 以降 |
SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY | Windows 7 以降 |
SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY | Windows 7 以降 |
SPLREG_REMOTE_FAX | 正常に返されると、FAX サービスがリモート クライアントをサポートしている場合は pData に0x0001が含まれます。それ以外の場合は 0。 |
SPLREG_RETRY_POPUP | 正常に戻ると、サーバーがすべてのジョブのポップアップ ウィンドウを再試行するように設定されている場合は pData に 1、すべてのジョブに対してサーバーがポップアップ ウィンドウを再試行しない場合は 0 が含まれます。 Windows Server 2003 以降ではサポートされていません |
SPLREG_SCHEDULER_THREAD_PRIORITY | |
SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT | |
SPLREG_WEBSHAREMGMT | Windows Server 2003 以降 |
pValueName の次の値は、エラーが発生したときのプールの印刷動作を示します。
値 | 説明 |
---|---|
SPLREG_RESTART_JOB_ON_POOL_ERROR |
pData の値は、エラーが発生した後に別のポートでジョブが再起動された時刻 (秒単位) を示します。 この設定は 、SPLREG_RESTART_JOB_ON_POOL_ENABLEDで使用されます。 |
SPLREG_RESTART_JOB_ON_POOL_ENABLED |
pData の 0 以外の値は、SPLREG_RESTART_JOB_ON_POOL_ERRORが有効になっていることを示します。 |
SPLREG_RESTART_JOB_ON_POOL_ERRORで指定された時間は最小時間です。 実際の時間は、次のポート モニター設定 (このレジストリ キーの下のレジストリ値) に応じて、長くなる可能性があります。
HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\<MonitorName>\Ports
RegQueryValueEx 関数を呼び出して、これらの値に対してクエリを実行します。
ポート モニターの設定 | データ型 | 説明 |
---|---|---|
StatusUpdateEnabled | REG_DWORD | 0 以外の値の場合は、ポート モニターがポートの状態でスプーラーを更新できるようにします。 |
StatusUpdateInterval | REG_DWORD | ポート モニターがスプーラーをポートの状態で更新する間隔を分単位で指定します。 |
pKeyName が定義済みのディレクトリ サービス (DS) キーの 1 つ (SetPrinter を参照) で、pValueName にコンマ (',') が含まれている場合、コンマの前の pValueName の部分は値名であり、コンマの右側にある pValueName の部分は DS Property OID です。 OID と呼ばれるサブキーが作成され、値名と OID で構成される新しい値が OID キーの下に入力されます。 SetPrinterDataEx では 、DS キーの下に値の名前とデータも追加されます。
Windows 7 以降のバージョンの Windows では、プリント サーバーに送信される印刷ジョブは、既定でクライアントにレンダリングされます。 プリンターのクライアント側レンダリングの構成は、 pKeyName を "PrinterDriverData" に設定し、 pValueName を次の表の設定値に設定することで読み取ることができます。
設定 | データ型 | 説明 |
---|---|---|
EMFDespoolingSetting | REG_DWORD | 値が 0 の場合、またはこの値がレジストリに存在しない場合は、印刷ジョブの既定のクライアント側レンダリングが有効になります。 値 1 を指定すると、印刷ジョブのクライアント側レンダリングが無効になります。 |
ForceClientSideRendering | REG_DWORD | 値が 0 の場合、またはこの値がレジストリに存在しない場合は、印刷ジョブがクライアントにレンダリングされます。 印刷ジョブをクライアントでレンダリングできない場合は、サーバーにレンダリングされます。 印刷ジョブをサーバーにレンダリングできない場合は、失敗します。 値 1 を指定すると、クライアントに印刷ジョブがレンダリングされます。 印刷ジョブをクライアントにレンダリングできない場合は、失敗します。 |
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|
Unicode 名と ANSI 名 |
GetPrinterDataExW (Unicode) と GetPrinterDataExA (ANSI) |