<Return[S]><Top>

SetPrinterDataEx

Declare Function Api_SetPrinterDataEx& Lib "winspool.drv" Alias "SetPrinterDataExA" (ByVal hPrinter&, ByRef pKeyName$, ByRef pValueName$, ByVal dwType&, ByRef pData As Byte, ByVal cbData&)

Declare Function SetPrinterDataEx Lib "winspool.drv" Alias "SetPrinterDataExA" (ByVal hPrinter As Long, ByRef pKeyName As String, ByRef pValueName As String, ByVal dwType As Long, ByRef pData As Byte, ByVal cbData As Long) As Long

プリンタの構成データを設定する。構成データは、レジストリにあるそのプリンタのキーの下に格納される。

パラメータ
hPrinter
    構成データを設定するプリンタまたはプリントサーバーを識別するハンドルを指定する。このハンドルは、OpenPrinter 関数を使って取得す

    る。
pKeyName
    設定する値を格納するキーの名前を表す NULL で終わる文字列へのポインタを指定する。指定したキーまたはサブキーが存在しない場合

    は、新しく作成される。
    ディレクトリサービス(DS)で公開できる構成データを格納するには、次の定義済みレジストリキーの 1 つを指定する。

    値                                     

意味                                                                                                                     

    SPLDS_DRIVER_KEY

プリンタドライバがドライバのプロパティを格納するときに使う。

    SPLDS_SPOOLER_KEY

印刷スプーラが内部スプーラプロパティを格納するときにのみ使う

    SPLDS_USER_KEY

アプリケーションがプリンタアセット番号などのプリンタプロパティを格納するときに使う。

    pSPLDS_USER_KEY キーの下に格納された値は、スキーマ内に対応するプロパティが存在する場合にのみ DS で公開される。プロパティ

    が存在しない場合は、ドメイン管理者がプロパティを作成しなければならない。
    DS で公開しない構成データを格納するときは、他のキーを指定できる。パスに 1 つ以上のサブキーが含まれる場合は、区切り文字に円記

    号(\)を使う。
    hPrinter がプリンタを識別するハンドルで、pKeyName が NULL または空の文字列の場合、関数は

    ERROR_INVALID_PARAMETER を返す。
    hPrinter がプリントサーバーを識別するハンドルの場合は、pKeyName が NULL でなければならない。
pValueName
    設定するデータの名前を表す NULL で終わる文字列へのポインタを指定する。
    プリンタの場合、この文字列は pKeyName キーに含まれる値の名前である。
    プリントサーバーの場合、この文字列は解説に示す定義済み文字列の 1 つである。
Type
    値のデータとして格納する情報の型を指定する。
    pKeyName で定義済みレジストリサービスキーの 1 つを指定した場合は、Type には REG_SZ、REG_MULTI_SZ、REG_DWORD、   

    REG_BINARY のいずれかを指定する必要がある。REG_BINARY を指定した場合は、cbData が 1 でなければならない。ディレクトリサー

    ビス(DS)はデータをブール値として扱う。
    DS キー以外のキーの場合、Type には次のいずれかの値を指定できる。
 

    値                                                   

意味                                                                                                   

    REG_BINARY

任意の形式のバイナリデータ。

    REG_DWORD

32 ビット数。

    REG_DWORD_LITTLE_ENDIAN

 

 

 

 

 

リトルエンディアン形式の 32 ビット数。REG_DWORD と同等である。
リトルエンディアン形式では、マルチバイト値がメモリに格納されるとき、最下位のバイト("リトルエンド")から順に格納され、最上位バイトが最後に格納されます。たとえば 0x12345678 は、リトルエンディアン形式では(0x78 0x56 0x34 0x12)として格納される。
Windows NT と Windows 95 は、リトルエンディアンコンピュータアーキテクチャ上で稼働するように設計されている。ユーザーは、ビッグエンディアンアーキテクチャを持つコンピュータ(一部の UNIX システムなど)に接続することができる。

    REG_DWORD_BIG_ENDIAN

 

 

 

 

 

ビッグエンディアン形式の 32 ビット数。
ビッグエンディアン形式では、マルチバイト値がメモリに格納されるとき、最上位のバイト("ビッグエンド")から順に格納され、最下位バイトが最後に格納されます。たとえば 0x12345678 は、ビッグエンディアン形式では(0x12 0x34 0x56 0x78)として格納される。
REG_EXPAND_SZ 環境変数への展開されていない参照("%PATH%" など)が含まれている NULL で終わる文字列。Unicode 関数を使った場合は Unicode 文字列、ANSI 関数を使った場合は ANSI 文字列になる。

    REG_EXPAND_SZ

 

環境変数への展開されていない参照("%PATH%" など)が含まれている NULL で終わる文字列。Unicode 関数を使った場合は Unicode 文字列、ANSI 関数を使った場合は ANSI 文字列になる。

    REG_LINK

Unicode シンボリックリンク。

    REG_MULTI_SZ

NULL で終わる文字列の配列。配列は 2 つの NULL で終わる。

    REG_NONE

格納する値の型が定義されていない場合に指定する。

    REG_RESOURCE_LIST

デバイスドライバのリソースリスト。

    REG_SZ

 

NULL で終わる文字列。Unicode 関数を使った場合は Unicode 文字列、ANSI 関数を使った場合は ANSI 文字列になる。

pData
    プリンタ構成データを保持するバイト配列へのポインタを指定する。
cbData
    配列のサイズをバイト単位で指定する。

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

解説
    プリンタの既存の構成データを取得するには、GetPrinterDataEx 関数を使う。
    hPrinter がプリントサーバーを識別するハンドルの場合、pValueName には次の定義済み値のいずれかを指定する。

    SPLREG_DEFAULT_SPOOL_DIRECTORY

DefaultSpoolDirectory

    SPLREG_PORT_THREAD_PRIORITY_DEFAULT

PortThreadPriorityDefault

    SPLREG_PORT_THREAD_PRIORITY

PortThreadPriority

    SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT

SchedulerThreadPriorityDefault

    SPLREG_SCHEDULER_THREAD_PRIORITY

SchedulerThreadPriority

    SPLREG_BEEP_ENABLED

BeepEnabled

    SPLREG_NET_POPUP

NetPopup

    SPLREG_EVENT_LOG

EventLog

    SPLREG_MAJOR_VERSION

MajorVersion

    SPLREG_MINOR_VERSION

MinorVersion

    SPLREG_ARCHITECTURE

Architecture

    SPLREG_OS_VERSION

OsVersion

    パラメータ pKeyName を "PrinterDriverData" に設定した SetPrinterDataEx 関数は、SetPrinterData 関数と同じ働きをする。