<Return[A]><Top>

AddPrinter

Declare Function Api_AddPrinter& Lib "winspool.drv" Alias "AddPrinterA" (ByVal pName$, ByVal Level&, pPrinter As Any)

Declare Function AddPrinter Lib "winspool.drv" Alias "AddPrinterA" (ByVal pName As String, ByVal Level As Long, pPrinter As Any) As Long

指定されたサーバーでサポートされるプリンタのリストにプリンタを追加する。

パラメータ

pName
    プリンタのプリントプロセッサをインストールするサーバーの名前を表す NULL で終わる文字列へのポインタを指定する。NULL にすると、ロ

    ーカルコンピュータにインストールされる。
Level
    pPrinter が指す構造体のバージョンを指定する。この値は 2 でなければならない。
pPrinter
    プリンタに関する情報が入った PRINTER_INFO_2 構造体へのポインタを指定する。AddPrinter 関数を使う前に、この構造体の

    pPrinterName、pPortName、pDriverName、pPrintProcessor の 4 つのメンバに 0 以外の値を指定しなければならない。
 

戻り値
    関数が成功すると、新しいプリンタオブジェクトを識別するハンドルが返る。
    関数が失敗すると、NULL が返る。拡張エラー情報を取得するには、 関数を使う。

解説
    AddPrinter 関数を使う前に設定できる PRINTER_INFO_2 構造体のメンバは次のとおりである。

    Attributes

PPrintProcessor

    DefaultPriority

Priority

    pComment

pSecurityDescriptor

    pDatatype

pSepFile

    pDevMode

pShareName

    pLocation

StartTime

    pParameters

UntilTime

    PRINTER_INFO_2 構造体の Status、cJobs、AveragePPM の 3 つのメンバは、 GetPrinter 関数で使うために予約されている。これら

    のメンバは、AddPrinter 関数を使う前に設定してはいけない。
    pSecurityDescriptor が NULL の場合、システムは規定のセキュリティ識別子をプリンタに割り当てる。
    AddPrinter 関数でプリンタオブジェクトを作成した後、 PrinterProperties 関数を使って、そのプリンタオブジェクトに関連付けられたプリンタ

    ドライバの正しい設定を指定しなければならない。
    同じ名前のプリンタオブジェクトがすでに存在する場合、そのオブジェクトが " 未処理削除 " になっていないかぎり、AddPrinter 関数はエラ

    ーを返す。この場合、既存のプリンタは削除されず、(SetPrinter 関数を使った場合のように)AddPrinter に指定したパラメータに従って既

    存のプリンタ設定が変更される。
    Windows NT: AddPrinter 関数を使うときには、プリンタを作成するサーバーへの SERVER_ACCESS_ADMINISTER アクセス権が必要

    である。この関数が返すハンドルは PRINTER_ALL_ACCESS アクセス権を持つため、それを使ってプリンタに対して管理者の操作を行うこ

    とができる。
    Windows 95: 上のようなアクセス権の確認は Windows 95 ではサポートされない。
    サーバー上にインストールされているプリントプロセッサを列挙するには、 EnumPrintProcessors 関数を使う。プリントプロセッサがサポートす

    るデータ型を列挙するには、 EnumPrintProcessorDatatypes 関数を使う。