パラメータ
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 関数と同じ働きをする。 |