<Return[D]><Top>

DeviceCapabilities

Declare Function Api_DeviceCapabilities& Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal lpDeviceName$, ByVal lpPort$, ByVal iIndex&, lpOutput As Any, lpDevMode As Any)

Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, ByVal lpPort As String, ByVal iIndex As Long, ByVal lpOutput As String, lpDevMode As DEVMODE) As Long

プリンタデバイスドライバの能力を取得する。

パラメータ
pDevice
    プリンタの名前を保持している、NULL で終わる文字列へのポインタを指定する。

    プリンタドライバ名ではなく、プリンタ名を指定することに注意すること。
pPort
    デバイスの接続先のポート名(LPT1 など)を保持している、NULL で終わる文字列へのポインタを指定する。
    fwCapability
    問い合わせ対象の能力を指定する。次の値のいずれかを指定する。

    値                                         

意味                                                                                                                          

    DC_BINADJUST

Windows 95/98:prevMode パラメータが指す DEVMODE 構造体で指定されている、用紙供給の際のペ

ージ配置に関する情報を取得する。この関数の戻り値は、次の値のいずれかになる。

DCBA_FACEUPNONE

DCBA_FACEUPCENTER

DCBA_FACEUPLEFT

DCBA_FACEUPRIGHT

DCBA_FACEDOWNNONE

DCBA_FACEDOWNCENTER

DCBA_FACEDOWNLEFT

DCBA_FACEDOWNRIGHT

Windows NT/2000:サポートされていない。

    DC_BINNAMES

プリンタの用紙トレイの名前を取得する。

 

関数から制御が返ると、pOutput が指すバッファに、複数の文字列バッファからなる 1 つの配列が格納される。各文字列バッファの長さは 24 文字で、用紙トレイの名前が格納される。この関数の戻り値は、こ

の配列内のエントリ数を示する。名前が 24 文字ちょうどではない場合、各文字列は NULL で終わる。

pOutput パラメータが指すバッファに、プリンタで利用可能な用紙供給元を示す複数の WORD 値からな

る 1 つの配列が格納される。この関数の戻り値は、この配列内のエントリ数を示する。

pOutput パラメータに NULL を指定すると、配列内で必要なエントリの数(プリンタがサポートしているトレ

イの数)が返る。

    DC_COLLATE

プリンタがソート機能をサポートしている場合、1 が返る。それ以外の場合、0 が返る。pOutput パラメータ

を使わない。

    DC_COLORDEVICE

Windows 2000:プリンタがカラー印刷をサポートしている場合、1 が返る。それ以外の場合、0 が返る。

pOutput パラメータを使わない。

    DC_COPIES

デバイスが印刷できる部数が返る。

    DC_DRIVER

プリンタドライバのバージョン番号が返る。

    DC_DATATYPE

Windows 95/98:プリンタドライバがサポートしているデータタイプの数が返る。

                           _PRODUCED この関数が -1 を返した場合、ドライバは RAW(何も河口されていない)データタイプのみをサポートしてい

る。関数から制御が返ると、サポートされているデータタイプの名前が配列に格納される。StartDoc 関数を

呼び出してデータタイプを指定するには、DOCINFO 構造体に格納されている名前を使う。

Windows NT/2000:サポートされていない。

    DC_DUPLEX

プリンタが両面印刷をサポートしている場合、1 が返る。それ以外の場合、0 が返る。pOutput パラメータ

を使わない。

    DC_EMF_COMPLIANT

Windows 95/98:プリンタドライバが拡張メタファイル(EMF)をサポートしているかどうかを判断する。

1 が返った場合、このドライバは EMF をサポートしている。-1 が返った場合、EMF をサポートしていない。

    DC_ENUMRESOLUTIONS

プリンタがサポートしている解像度のリストを取得する。関数から制御が返ると、pOutput が指すバッファ

に、複数の LONG 値からなる 1 つの配列が格納される。サポートされている解像度ごとに、1 インチ当た

りのドット数(dpi)単位で水平解像度と垂直解像度を示す LONG 値のペアが配列へ追加される。

この関数の戻り値は、サポートされている解像度の数を示する。pOutput パラメータで NULL を指定する

と、利用可能な解像度の数が返る。

    DC_EXTRA

プリンタドライバに対応する DEVMODE 構造体のうち、デバイス固有の部分を格納するために必要なバイト

数が返る。

    DC_FIELDS プリンタドライバに対応する DEVMODE 構造体の dmFields メンバの値が返る。dmFields メンバの値
は、この構造体のデバイス独立の部分のうち、このプリンタドライバがサポートしているメンバを示する。
    DC_FILEDEPENDENCIES ドライバをインストールする際にロードしなければならない追加ファイルの名前を取得する。関数から制御が返
ると、pOutput が指すバッファに、複数の文字列バッファからなる 1 つの配列が格納される。
各文字列バッファの長さは 64 文字で、それぞれ 1 つのファイルの名前が格納される。
名前が 64 文字ちょうどではない場合、各文字列は NULL で終わる。この関数の戻り値は、配列内のエ
ントリ数を示する。pOutput パラメータで NULL を指定すると、ファイルの数が返る。
    DC_MANUFACTURER Windows 95/98:プリンタメーカーを表す識別番号が返る。イメージ色の管理(ICM)機能は、この値を
使う。Windows NT/2000:サポートされていない。
    DC_MAXEXTENT 用紙の最大サイズが返る。、プリンタドライバに対応している DEVMODE 構造体の dmPaperLengthと
dmPaperWidth の各メンバを使うと、このサイズを指定できる。戻り値の LOWORD は最大値を表す
dmPaperWidth の値、HIWORD は最大値を表す dmPaperLength の値を意味する。
    DC_MEDIAREADY Windows 2000:現在利用できる用紙の名前を取得する。関数から制御が返ると、pOutput が指すバッ
ファに、複数の文字列バッファからなる 1 つの配列が格納される。各文字列バッファの長さは 64 文字で、
それぞれ利用可能な用紙の名前が格納される。この関数の戻り値は、配列内のエントリ数を示する。
名前が 64 文字ちょうどではない場合、各文字列は NULL で終わる。pOutput パラメータで NULL を指
定すると、用紙の名前の数が返る。
    DC_MINEXTENT 用紙の最小サイズが返る。このサイズは、プリンタドライバに対応している DEVMODE 構造体の
dmPaperLength メンバと dmPaperWidth メンバを使うと、このサイズを指定できる。戻り値の LOWORD
は最小値を表す dmPaperWidth の値、HIWORD は最小値を表す dmPaperLength の値を意味する。
    DC_MODEL Windows 95/98:プリンタモデルを表す識別子が返る。イメージ色の管理(ICM)機能は、この値を使
う。Windows NT/2000:サポートされていない。
    DC_ORIENTATION デバイスの縦置きと横置きの関係が返る。縦置きを反時計回り(左回り)に何度回転させると横置きにな
るかを示す。戻り値は、次の値のいずれかになる。
0      横置きはない。
90    縦置きを 90 度回転すると、横置きになる。
270   縦置きを 270 度回転すると、横置きになる。
    DC_NUP Windows 2000:文書を印刷する際に、1 ページの用紙の中に印刷可能なページ数(縮小印刷、ミニペ
ージ、ミニプリントとも呼ぶ)を示す複数の整数からなる 1 つの配列を取得する。関数から制御が返ると、
pOutput が指すバッファに、複数の DWORD 値からなる 1 つの配列が格納される。各値は、1 ページの
各用紙がサポートしているページ数を表する。この関数の戻り値は、配列内のエントリ数を示する。
pOutput パラメータで NULL を指定すると、配列内で必要なエントリの数が返る。
    DC_PAPERNAMES サポートされている用紙の名前(レター、リーガルなど)のリストを取得する。関数から制御が返ると、
pOutput が指すバッファに、複数の文字列バッファからなる 1 つの配列が格納される。
各文字列バッファの長さは 64 文字で、それぞれ用紙の名前が格納される。この関数の戻り値は、配列
内のエントリ数を示する。名前が 64 文字ちょうどではない場合、各文字列は NULL で終わる。
pOutput パラメータで NULL を指定すると、使用可能な用紙サイズの数が返る。
    DC_PAPERS サポートされている用紙サイズのリストを取得する。関数から制御が返ると、pOutput が指すバッファに、
複数の WORD 値からなる 1 つの配列が格納される。各値はプリンタで利用可能な用紙のサイズを表す
る。この関数の戻り値は、配列内のエントリ数を示する。用紙サイズの詳細については、MSDN ライブラ
リで DEVMODE 構造体の dmPaperSize メンバの説明を参照してください。pOutput パラメータで NULL
を指定すると、配列内で必要なエントリの数が返る。
    DC_PAPERSIZE サポートされている各用紙サイズの寸法を 0.1mm 単位で取得する。関数から制御が返ると、pOutput が
指すバッファに、複数の POINT 構造体からなる 1 つの配列が格納される。各構造体は、用紙の向き を
DEMORIENT_PORTRAIT と仮定して、x メンバに用紙の幅、y メンバに用紙の長さを格納する。
この関数の戻り値は、配列内のエントリ数を示する。
    DC_PERSONALITY Windows 2000:プリンタがサポートしているプリンタ記述言語にのリストを取得する。関数から制御が返
る と、pOutput が指すバッファに、複数の文字列バッファからなる 1 つの配列が格納される。各文字列バ
ッファの長さは 32 文字で、それぞれプリンタ記述言語の名前が格納される。この関数の戻り値は、配列内のエントリ数を示す。名前が 32 文字ちょうどではない場合、各文字列は NULL で終わる。pOutput
パラメータで NULL を指定すると、配列内で必要なエントリの数が返る。
    DC_PRINTERMEM Windows 2000:利用可能なプリンタメモリの量をキロバイト(KB)単位で返する。
pOutput パラメータを使わない。
    DC_PRINTRATE Windows 2000:プリンタの印刷速度を返する。DC_PRINTRATEUNIT を指定したときに返った値は、
DC_PRINTRATE を指定したときに返った値の単位を示する。pOutput パラメータを使わない。
    DC_PRINTRATEPPM Windows 2000:プリンタの印刷速度を 1 分当たりのページ数で返する。pOutput パラメータを使わない。
    DC_PRINTRATEUNIT Windows 2000:DC_PRINTRATE フラグを指定したときに返される値の単位として、次のいずれかの値を返す。pOutput パラメータを使わない。
PRINTRATEUNIT_CPS 1 秒当たりの文字数。
PRINTRATEUNIT_IPM 1 分当たりのインチ数。
PRINTRATEUNIT_LPM 1 分当たりの行数。
PRINTRATEUNIT_PPM 1 分当たりのページ数。
    DC_SIZE プリンタドライバに対応している DEVMODE 構造体の dmSize メンバが返る。
    DC_STAPLE Windows 2000:プリンタがステープル機能をサポートしている場合、0 以外の値が返る。それ以外の場
合、0 が返る。pOutput パラメータを使わない。
    DC_TRUETYPE ドライバが TrueType フォントを利用する能力を取得する。DC_TRUETYPE を指定する場合、pOutput パ
ラメータで NULL を指定するべきである。戻り値は、次の値の 1 つまたは複数である。
    DCTT_BITMAP デバイスは TrueType フォントをグラフィックスとして印刷できる。
    DCTT_DOWNLOAD デバイスは TrueType フォントをダウンロードできる。
    DCTT_DOWNLOAD Windows 95/98:デバイスはアウトライン TrueType フォントをダウンロードできる。
                              _OUTLINE
    DCTT_SUBDEV デバイスは、TrueType フォントをデバイスフォントへ代替できる。
    DC_VERSION プリンタドライバが準拠している仕様のバージョンが返る。

pOutput
    1 つの配列へのポインタを指定する。関数から制御が返ると、このパラメータが指すバッファに、何らかの配列が格納されるのが普通である。

    この配列のフォーマットは、fwCapabiliyty パラメータの値によって異なる。pOutput パラメータで 0 を指定すると、DeviceCapabilities

    関数は、出力データが必要とするバイト数を返する。
pDevMode
    1 個の DEVMODE 構造体へのポインタを指定する。このパラメータで NULL を指定すると、DeviceCapabilities 関数は、指定されたプリ

    ンタドライバの現在の既定の初期値を取得する。NULL 以外の値を指定すると、pDevMode パラメータが指す構造体に含まれている値を

    取得する。

 
戻り値
    関数が成功すると、fwCapability パラメータに対応した値が返る。値 0 が返った場合、一般的には関数が成功したことを意味するが、関

    数自体は成功しても、特定の機能がサポートされていないことを意味することもある。
    関数が失敗すると、-1 が返る。
    Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。