|
パラメータ
hPrinter
構成データを取得するプリンタを識別するハンドルを指定する。
このプリンタハンドルは、OpenPrinter 関数を使って取得する。
dwIndex
取得する構成データのインデックス値を指定する。
特定のプリンタハンドルで EnumPrinterData を初めて呼び出すときは、このパラメータを 0
に設定する。その後、同じプリンタを指定して
EnumPrinterData を呼び出すときは、関数が ERROR_NO_MORE_ITEMS を返すまでこのパラメータの値を 1
つずつ増やしていく。
注:パラメータ cbValueName と cbData
で説明する方法で十分なバッファサイズを調べる場合、特定のプリンタハンドルで
EnumPrinterData を初めて呼び出すときは、この 2 つのパラメータをともに 0 に設定すれば、dwIndex の値は関係ない。
EnumPrinterData の次の呼び出しで dwIndex を 0 に設定し、実際の列挙処理を開始する。
構成データの値に順序はない。新しい値には任意のインデックスが与えられる。そのため、EnumPrinterData
関数は値を任意の順序で
返す。
pValueName
構成データの値の名前(終端の NULL を含む)を受け取るバッファへのポインタを指定する。
cbValueName
pValueName が指すバッファのサイズをバイト単位で指定する。
オペレーティングシステムから十分なサイズのバッファを獲得したい場合は、特定のプリンタハンドルでの
EnumPrinterData の最初の呼び
出しでこのパラメータと cbData をともに 0 に設定する。関数が戻るとき、プリンタ構成データのすべての値名を列挙するのに十分なバッファ
サイズが、pcbValueName が指す変数に格納される。
pcbValueName
pValueName が指すバッファに格納されたバイト数を受け取る変数へのポインタを指定する。
pType
dwIndex で指定した値のタイプコードを受け取る変数へのポインタを指定する。タイプコードは、次のいずれかになる。
|
値
|
意味
|
|
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) として格納される。
Windows NT と Windows 95
は、リトルエンディアンコンピュータアーキテクチャ上で稼働するように設計されているユーザーは、ビッグエンディアンアーキテクチャを持つコンピュータ
(一部の UNIX システムなど) に接続することができる。 |
|
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 文字列になる。 |
型のコードが不要な場合は、パラメータ pType に NULL を指定できる。
pData
構成データの値を受け取るバッファへのポインタ。
構成データの値が不要な場合は NULL を指定できる。
cbData
pData が指すバッファのサイズをバイト単位で指定する。
オペレーティングシステムから十分なサイズのバッファを獲得したい場合は、特定のプリンタハンドルでの
EnumPrinterData の最初の呼び
出しでこのパラメータと cbValueName をともに 0 に設定する。関数が戻るとき、プリンタ構成データのすべての値を列挙するのに十分なバッ
ファサイズが、pcbData が指す変数に格納される。
pcbData
pData が指すバッファに格納されたバイト数を受け取る変数へのポインタを指定する。
pData が NULL の場合は、このパラメータにも NULL を指定できる。
戻り値
関数が成功すると、ERROR_SUCCESS が返る。
関数が失敗すると、Win32 エラー値が返る。
特定のプリンタハンドルで取り出す構成データの値がもうないときは、ERROR_NO_MORE_ITEMS が返る。
解説
EnumPrinterData 関数は、SetPrinterData によって設定されたプリンタ構成データを取得する。
パラメータの項でも説明したように、オペレーティングシステムから十分なサイズのバッファを獲得したい場合は、EnumPrinterData の最初
の呼び出しでパラメータ cbValueName と cbData をともに 0 に設定する。この呼び出しでは、dwIndex
の値は関係ない。関数が戻ると
き、プリンタ構成データを構成するすべての値とその名前を格納するのに十分なバッファサイズが *pcbData と *pcbValueName
に入る。こ
のサイズに応じて、構成データの名前と値のバッファを割り当て、cbValueName と cbData を割り当てたそれぞれのバッファのバイト数に設
定し、dwIndex を 0 に設定して、EnumPrinterData の 2 回目の呼び出しを行う。3 回目以降は、dwIndex の値を 1
つずつ増やし、戻
り値が ERROR_NO_MORE_ITEMS になるまで繰り返す。
|