<Return[E]><Top>

EnumPrinterDataEx

Declare Function Api_EnumPrinterDataEx& Lib "winspool.drv" Alias "EnumPrinterDataExA" (ByVal hPrinter&, pKeyName$, pEnumValues&, cbEnumValues As Any, pcbEnumValues As Any, pnEnumValues As Any)

Declare Function EnumPrinterDataEx& Lib "winspool.drv" Alias "EnumPrinterDataExA" (ByVal hPrinter As Long, pKeyName As String, pEnumValues As Long, cbEnumValues As Any, pcbEnumValues As Any, pnEnumValues As Any) As Long

指定されたプリンタとキーに設定されたすべての値の名前とデータを列挙する。
プリンタデータはレジストリに格納される。プリンタデータを列挙している間は、データを変更する可能性があるレジストリ関数を使わない。

パラメータ
hPrinter
    構成データを取得したいプリンタを識別するハンドルを指定する。このプリンタハンドルは、OpenPrinter 関数を使って取得する。
pKeyName
    列挙する値が入ったキーを表す NULL で終わる文字列へのポインタを指定する。1 つ以上のサブキーを持つパスを指定する場合は、区切

    り文字に \ 記号を使う。EnumPrinterDataEx は指定されたキーのすべての値を列挙するが、サブキーの値は列挙しない。サブキーを列

    挙するときは、EnumPrinterKey 関数を使う。
    pKeyName に NULL または空の文字列を指定すると、ERROR_INVALID_PARAMETER が返る。
pEnumValues
    PRINTER_ENUM_VALUES 構造体の配列を受け取るバッファへのポインタを指定する。各構造体にはキーの下にある値の名前、型、

    データ、サイズが格納される。
cbEnumValues
    pData が指すバッファのサイズをバイト単位で指定する。cbEnumValues を 0 に設定すると、関数が戻るとき、パラメータ pcbEnumValues

    に必要なバッファサイズが格納される。
pcbEnumValues
    取得した構成データのサイズ(バイト数)を受け取る変数へのポインタを指定する。cbEnumValues で指定したバッファサイズが小さくてデータ

    が入りきらない場合は、戻り値が ERROR_MORE_DATA となり、pcbEnumValues に格納される値が必要なバッファサイズを示す。
pnEnumValues
    pEnumValues に格納された PRINTER_ENUM_VALUES 構造体の数を受け取る変数へのポインタを指定する。

戻り値
    関数が成功すると、ERROR_SUCCESS が返る。
    関数が失敗すると、Win32 エラー値が返る。

解説
    EnumPrinterDataEx 関数は、SetPrinterDataEx 関数と SetPrinterData によって設定されたプリンタ構成データを取得する。