<Return[S]><Top>

SetPrinter

Declare Function Api_SetPrinter& Lib "winspool.drv" Alias "SetPrinterA" (ByVal hPrinter&, ByVal Level&, pPrinter As Any, ByVal Command&)

Declare Function SetPrinter Lib "winspool.drv" Alias "SetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Byte, ByVal Command As Long) As Long

指定されたプリンタのデータ設定または状態の変更 (印刷の一時停止、印刷の再開、全ジョブの削除) を行なう。

パラメータ
hPrinter
    プリンタを識別するハンドルを指定する。プリンタハンドルは、OpenPrinter 関数を使って取得する。
Level
    pPrinter が指すバッファに受け取るデータの種類 (レベル) を指定する。

    Command に 0 以外の値を指定するときは、Level に必ず 0 を指定する。
    Windows 95: 0、1、2、5 のいずれかを指定する。
    Windows NT: 0、1、2、3、4、5、7 のいずれかを指定する。
pPrinter
    プリンタに設定するデータ、またはパラメータ Command に指定するコマンドの情報が格納されているバッファへのポインタを指定する。

    バッファ内のデータの種類は、Level の値によって決まる。

    レベル    

構造体                                                                                                                                                           

    0

 

 

 

パラメータ Command に PRINTER_CONTROL_SET_STATUS を指定する場合は、プリンタの新しい状態を表す DWORD

値へのポインタを pPrinter に指定する。PRINTER_STATUS_PAUSED と PRINTER_STATUS_PENDING_DELETION

は、状態を指定する値として無効である。Level に 0 を指定し、Command に PRINTER_CONTROL_SET_STATUS 以外を指定する場合は、pPrinter を NULL にする。

    1

プリンタの汎用情報を格納する PRINTER_INFO_1 構造体

    2

プリンタの詳細情報を格納する PRINTER_INFO_2 構造体

    3

Windows NT のみ : プリンタのセキュリティ情報を格納する PRINTER_INFO_3 構造体

    4

 

Windows NT のみ : プリンタの名前、サーバーの名前、リモート/ローカルのどちらかなど、最低限のプリンタ情報を格納する

PRINTER_INFO_4 構造体

    5

プリンタ属性、タイムアウト設定などのプリンタ情報を格納する PRINTER_INFO_5 構造体

    7

 

 

Windows NT 5.0 以降 : PRINTER_INFO_7 構造体

この構造体のメンバ dwAction によって、プリンタのデータをディレクトリサービスで公開するか、非公開にするか、更新するかを

指定する。

Command
    SetPrinter 関数で実行するアクションを表す値を指定する。
    Level に 0 以外の値を指定したときは、Command に必ず 0 を指定する。

    その場合、プリンタの状態はそのままで、Level と pPrinter の指定に従ってプリンタデータが再設定される。
    Level に 0 を指定した場合は、Command に次のいずれかの値を指定することでプリンタの状態を設定できる。

    値                                                       

意味                                             

    PRINTER_CONTROL_PAUSE

プリンタを一時停止する。

    PRINTER_CONTROL_PURGE

プリンタのすべての印刷ジョブを削除する。

    PRINTER_CONTROL_RESUME

一時停止しているプリンタを再開する。

    PRINTER_CONTROL_SET_STATUS

 

プリンタの状態を設定する。プリンタの新しい状態は、pPrinter が指す DWORD の値によって

決まる。


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

解説
    現在のプリンタ設定を変更するには、GetPrinter 関数を呼び出して現在の設定内容を PRINTER_INFO_2 構造体に取得し、この構造

    体のメンバを必要に応じて変更した後、SetPrinter 関数を呼び出す。