<Return[A]><Top>

AddPrinterDriverEx

Declare Function Api_AddPrinterDriverEx& Lib "winspool.drv" Alias "AddPrinterDriverExA" (ByVal pName$, ByVal Level&, pDriverInfo As Any, dwFileCopyFlags&)

Declare Function AddPrinterDriverEx Lib "winspool.drv" Alias "AddPrinterDriverExA" (ByVal pName As String, ByVal Level As Long, pDriverInfo As Any, dwFileCopyFlags As Long) As Long

ローカルまたはリモートのプリンタドライバをインストールし、設定ファイル、データファイル、ドライバファイルをリンクする。

AddPrinterDriver 関数と対照して、AddPrinterDriverEx ではプリンタドライバのインストールとアップグレードをより柔軟に行うことができる。プリンタドライバのコピー方法として、完全なアップグレードを行う、完全なダウングレードを行う、新しいファイルだけをコピーする、(ファイルのタイムスタンプに関わらず)すべてのファイルをコピーするから選ぶことができる。

パラメータ

pName
    ドライバのインストール先サーバの名前を表す NULL で終わる文字列へのポインタを指定する。NULL を指定すると、ドライバはローカルコ

    ンピュータにインストールされる。
Level
    pDriverInfo が指す構造体のバージョンを指定する。2 または 3 のどちらかにする。
pDriverInfo
    プリンタドライバの情報が入った構造体へのポインタを指定する。Level が 2 のとき、pDriverInfo は DRIVER_INFO_2 構造体へのポイン

    タになる。Level が 3 のとき、pDriverInfo は DRIVER_INFO_3 構造体へのポインタになる。
    pDriverInfo が指す構造体のメンバ pEnvironment が NULL の場合、関数が使う環境は、インストール先/サーバではなく、呼び出し側/

    クライアントの現在の環境になる。
dwFileCopyFlags
    ドライバファイルのコピー方法を指定する。次のいずれかの値にする。

 

    値                                             

意味                                                                                                                             

    APD_COPY_ALL_FILES

 

プリンタドライバを追加し、プリンタドライバ用ディレクトリにあるすべてのファイルを追加する。ファイルのタイムスタンプは無視される。

    APD_COPY_NEW_FILES

 

プリンタドライバを追加し、プリンタドライバ用ディレクトリにある、現在使用中の対応するファイルより新しいファイルだけをコピーする。このフラグは、AddPrinterDriver の動作をエミュレートする。

    APD_STRICT_DOWNGRADE

 

プリンタドライバ用ディレクトリにあるすべてのファイルが現在使用中の対応するファイルより古い場合にだけプリンタドライバを追加する。

    APD_STRICT_UPGRADE

 

プリンタドライバ用ディレクトリにあるすべてのファイルが現在使用中の対応するファイルより新しい場合にだけプリンタドライバを追加する。


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

解説
    AddPrinterDriverEx 関数を呼び出す前に、ドライバに必要なすべてのファイルがシステムのプリンタドライバ用のディレクトリにコピーされてい

    なければならない。このディレクトリの名前は、 GetPrinterDriverDirectory 関数によって取得できる。
    プリンタドライバが現在インストールされているかどうかは、 EnumPrinterDrivers 関数で調べることができる。
    プリンタドライバが正常に追加できると、関数は DrvDriverEvent(DRIVER_EVENT_INITIALIZE, Level, DRIVER_INFO_*, lparam)

    関数を呼び出して、プリンタドライバのインストール時に必要なすべての初期化をドライバが実行できるようにする。