<Return[G]><Top>

GetPrinterDriver

Declare Function Api_GetPrinterDriver& Lib "winspool.drv" Alias "GetPrinterDriverA" (ByVal hPrinter&, ByVal pEnvironment$, ByVal Level&, pDriverInfo As Any, ByVal cdBuf&, pcbNeeded&)

Declare Function GetPrinterDriver Lib "winspool.drv" Alias "GetPrinterDriverA" (ByVal hPrinter As Long, ByVal pEnvironment As String, ByVal Level As Long, pDriverInfo As Any, ByVal cdBuf As Long, pcbNeeded As Long) As Long

指定されたプリンタのドライバデータを取得する。

パラメータ
hPrinter
    ドライバデータを取得するプリンタのハンドルを指定する。
pEnvironment
    環境の名前を表す NULL で終わる文字列へのポインタを指定する。

    たとえば、"Windows NT x86" は Intel 80386 プロセッサまたは 80486 プロセッサ上で稼働する Windows NT を表す。

    NULL を指定すると、呼び出し側アプリケーションとクライアントコンピュータ (呼び出し先アプリケーションとプリントサーバーではない) の現在

    の環境が使われる。
Level
    lpbForm が指す構造体のバージョンを指定する。1、2、3 のいずれかを指定する。
pDriverInfo
    DRIVER_INFO_1 構造体DRIVER_INFO_2 構造体、または DRIVER_INFO_3 構造体へのポインタを指定する。

    Level が 1 の場合、この配列は DRIVER_INFO_1 構造体を受け取る。

    Level が 2 の場合、この配列は DRIVER_INFO_2 構造体を受け取る。

    Level が 3 の場合、この配列は DRIVER_INFO_3 構造体を受け取る。
cbBuf
    pDriverInfo が指す配列のサイズをバイト単位で指定する。
pcbNeeded
    関数が成功した場合はコピーされたバイト数、cbBuf が小さすぎた場合は必要なバイト数を示す値へのポインタを指定する。
 

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    パラメータ hPrinter には、OpenPrinter 関数で取得したプリンタハンドルを指定する。
    DRIVER_INFO_2 構造体と DRIVER_INFO_3 構造体には、プリンタドライバの場所を表すフルパスとファイル名が入っている。

    このパスとファイル名を 1 つの引数として LoadLibrary 関数に渡すことで、プリンタドライバをロードすることができる。