GetPrinterDriver 関数
GetPrinterDriver 関数は、指定されたプリンターのドライバー データを取得します。 ドライバーがローカル コンピューターにインストールされていない場合は、 GetPrinterDriver によってインストールされます。
構文
BOOL GetPrinterDriver(
_In_ HANDLE hPrinter,
_In_ LPTSTR pEnvironment,
_In_ DWORD Level,
_Out_ LPBYTE pDriverInfo,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded
);
パラメーター
-
hPrinter [in]
-
ドライバー データを取得するプリンターのハンドル。 プリンター ハンドルを取得するには 、OpenPrinter または AddPrinter 関数を使用します。
-
pEnvironment [in]
-
環境を指定する null で終わる文字列へのポインター (Windows x86、Windows IA64、Windows x64 など)。 このパラメーターが NULL の場合は、呼び出し元のアプリケーションとクライアント コンピューターの現在の環境 (移行先アプリケーションとプリント サーバーではなく) が使用されます。
-
レベル [入力]
-
pDriverInfo バッファーで返されるプリンター ドライバー構造体。 このパラメーターには、次の値のいずれかを指定できます。
値 説明 - 1
DRIVER_INFO_1 - 2
DRIVER_INFO_2 - 3
DRIVER_INFO_3 - 4
DRIVER_INFO_4 - 5
DRIVER_INFO_5 - 6
DRIVER_INFO_6 - 8
DRIVER_INFO_8 -
pDriverInfo [out]
-
Level で指定されたドライバーに関する情報を含む構造体を受け取るバッファーへのポインター。 バッファーは、構造体メンバーが指す文字列を格納するのに十分な大きさである必要があります。
必要なバッファー サイズを確認するには、cbBuf を 0 に設定して GetPrinterDriver を呼び出します。 GetPrinterDriver が失敗し、 GetLastError はERROR_INSUFFICIENT_BUFFERを返し、 pcbNeeded パラメーターは構造体とそのデータの配列を保持するために必要なバッファーのサイズ (バイト単位) を返します。
-
cbBuf [in]
-
pDriverInfo がポイントする配列のサイズ (バイト単位)。
-
pcbNeeded [out]
-
関数が成功した場合にコピーされたバイト数を受け取る値へのポインター。 cbBuf が小さすぎる場合は必要なバイト数。
戻り値
関数が成功した場合、戻り値は 0 以外の値になります。
関数が失敗した場合は、0 を返します。
存在しないドライバーの場合、関数は ERROR_UNKNOWN_PRINTER_DRIVERを返します。
注釈
注意
これはブロック関数または同期関数であり、すぐには返されない可能性があります。 この関数が返す速度は、ネットワーク状態、プリント サーバーの構成、プリンター ドライバーの実装要因など、アプリケーションの作成時に予測が困難な実行時の要因によって異なります。 ユーザー インターフェイスとの対話を管理するスレッドからこの関数を呼び出すと、アプリケーションが応答しなくなる可能性があります。
DRIVER_INFO_2、DRIVER_INFO_3、DRIVER_INFO_4、DRIVER_INFO_5、およびDRIVER_INFO_6構造体には、pDriverPath メンバー内のプリンター ドライバーのファイル名または完全なパスとファイル名が含まれます。 アプリケーションでは、 LoadLibrary 関数を呼び出し、パスとファイル名を 1 つの引数として指定することで、パスとファイル名を使用してプリンター ドライバーを読み込むことができます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|
Unicode 名と ANSI 名 |
GetPrinterDriverW (Unicode) と GetPrinterDriverA (ANSI) |