<Return[G]><Top>

GetDeviceCaps

Declare Function Api_GetDeviceCaps& Lib "gdi32" Alias "GetDeviceCaps" (ByVal hDC&, ByVal nIndex&)

Declare Function GetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Long, ByVal nIndex As Long) As Long

指定されたデバイスに関するデバイス固有の情報を取得する。

パラメータ
hdc
    デバイスコンテキストのハンドルを指定する。
nIndex
    取得対象の項目を指定する。次の値のいずれかを指定する。

    インデックス                  

意味                                                                                                                                        

    DRIVERVERSION

デバイスドライバのバージョン。

    TECHNOLOGY

デバイステクノロジ(タイプ)。次の値のいずれかが返る。

    DT_PLOTTER

ベクタプロッタ

    DT_RASDISPLAY

ラスタディスプレイ

    DT_RASCAMERA

ラスタカメラ

    DT_CHARSTREAM

文字ストリーム

    DT_METAFILE

メタファイル

    DT_DISPFILE

ディスプレイファイル

 

hdc パラメータで拡張メタファイルのデバイスコンテキストのハンドルを指定した場合、CreateEnhMetaFile 関数を

 

呼び出したときに指定した参照デバイスのデバイステクノロジが返る。hdc パラメータで指定したオブジェクトが拡張

 

メタファイルのデバイスコンテキストかどうかを調べるには、GetObjectType 関数を使う。

    HORZSIZE

ミリメートル(mm)単位の画面の物理的な幅。

    VERTSIZE

ミリメートル(mm)単位の画面の物理的な高さ。

    HORZRES

ピクセル単位の画面の幅。

    VERTRES

ピクセル単位(ラスタ行数)の画面の高さ。

    LOGPIXELSX

画面の水平方向での、論理インチ当たりのピクセル数。マルチモニタを接続しているシステムでは、すべてのモニ

 

タでこの値が等しくなる。

    LOGPIXELSY

画面の垂直方向での、論理インチ当たりのピクセル数。マルチモニタを接続しているシステムでは、すべてのモニ

 

タでこの値が等しくなる。

    BITSPIXEL

ピクセルあたりのカラービットの数。

    PLANES

カラープレーンの数。

    NUMBRUSHES

デバイス固有のブラシの数。

    NUMPENS

デバイス固有のペンの数。

    NUMFONTS

デバイス固有のフォントの数。

    NUMCOLORS

デバイスのカラー深度が 8bpp(ピクセル当たり 8 ビット)以下の場合は、デバイスのカラーテーブル内のエントリ数

 

を取得する。色深度が 8bpp を超える場合、-1 が返る。

    ASPECTX

線の描画に使うデバイスピクセルの相対的な幅。

    ASPECTY

線の描画に使うデバイスピクセルの相対的な高さ。

    ASPECTXY

線の描画に使うデバイスピクセルの対角線の幅。

    PDEVICESIZE

予約済み。

    CLIPCAPS

デバイスのクリッピング能力を示すフラグ。デバイスが長方形のクリップをサポートする場合は 1、それ以外の場合

 

は 0 である。

    SIZEPALETTE

システムパレット内のエントリ数。デバイスドライバが、nIndex パラメータの RASTERCAPS インデックスで

 

RC_PALETTE ビットをセットした場合にのみ、SIZEPALETTE インデックスは有効である。また、ドライバが 16

 

ビット版の Windows との互換性を備えている場合にのみ、利用できる。

    NUMRESERVED

システムパレット内の予約エントリ数。デバイスドライバが、nIndex パラメータの RASTERCAPS インデックスで

 

RC_PALETTE ビットをセットした場合にのみ、NUMRESEVED インデックスは有効である。また、ドライバが 16 ビ

 

ット版の Windows との互換性を備えている場合にのみ、利用できる。

    COLORRES

デバイスの実際の色深度を表す、ピクセル当たりのビット数。デバイスドライバが、nIndex パラメータの

 

RASTERCAPS インデックスで RC_PALETTE ビットをセットした場合にのみ、COLORRES インデックスは有効で

 

ある。また、ドライバが 16 ビット版の Windows との互換性を備えている場合にのみ、利用できる。

    PHYSICALWIDTH

印刷デバイス用。ページの物理的な幅をデバイス単位で表す。たとえば、8.5"×11" の用紙に 600dpi の解像

 

度で印刷するよう設定されているプリンタでは、物理的な幅は 5,100 デバイス単位になる(8.5×600=5,100)。

 

ほとんどの場合、用紙の印字可能領域は用紙の物理的な幅よりも多少小さいこと、そして印字可能領域は物理

 

的な幅を決して上回らないことに注意する。

    PHYSICALHEIGHT

印刷デバイス用。ページの物理的な高さをデバイス単位で表す。たとえば、8.5"×11" の用紙に 600dpi の解像

 

度で印刷するよう設定されているプリンタでは、物理的な高さは 6,600 デバイス単位になる(11×600=6,600)。

 

ほとんどの場合、用紙の印字可能領域は用紙の物理的な高さよりも多少小さいこと、そして印字可能領域は物

 

理的な高さを決して上回らないことに注意する。

    PHYSICALOFFSETX

印刷デバイス用。物理的なページの左端から印刷可能領域の左端までの距離をデバイス単位で表す。たとえ

 

ば、8.5"×11" の用紙に 600dpi の解像度で印刷するよう設定されているプリンタで、用紙の左端 0.25 インチ

 

(6.4mm)への印字が行えない場合、水平方向の物理オフセットは 150 デバイス単位になる

 

(0.25×600=150)。

    PHYSICALOFFSETY

印刷デバイス用。物理的なページの上端から印刷可能領域の上端までの距離をデバイス単位で表す。

 

たとえば、8.5"×11" の用紙に 600dpi の解像度で印刷するよう設定されているプリンタで、用紙の上端 0.5 インチ

 

(12.7mm)への印字が行えない場合、水平方向の物理オフセットは 300 デバイス単位になる

 

(0.5×600=300)。

    VREFRESH

Windows NT/2000:ディスプレイデバイス用。デバイスの現在のリフレッシュレート(垂直同期周波数)を 1 秒当

 

たりのサイクル数(Hz)で表す。

 

リフレッシュレートとして 0 または 1 が返された場合、現在の周波数は、ディスプレイハードウェアの既定のリフレッ

 

シュレートに等しいかどうかを意味する。通常、既定のレートを設定するには、グラフィックカードやマザーボードの

 

DIP スイッチ、または ChangeDisplaySettings のような Win32 の表示関数を利用しない構成プログラムを使う。

    SCALINGFACTORX

プリンタの水平軸の倍率。

    SCALINGFACTORY

プリンタの垂直軸の倍率。

    BLTALIGNMENT

Windows NT/2000:水平方向のアラインメント(整列単位)の優先値をピクセル単位で取得する。最大の描画

 

パフォーマンスを得るには、各ウィンドウの水平位置をこの値の整数倍に整列させるべきである。値として 0 が返っ

 

た場合、このデバイスが既にアクセラレート状態になっていて、任意のアラインメントを利用できることを意味する。

    SHADEBLENDCAPS

Windows 98 と Windows 2000:デバイスのシェーディング(陰影)とブレンディング(混色)の能力を示す値。

    SB_CONST_ALPHA

このデバイスは、BLENDFUNCTION 構造体の SourceConstantAlpha メンバを操作できる。この構造体は、

 

AlphaBlend 関数の blendFunction パラメータで参照したものである。

    SB_GRAD_RECT

このデバイスには、GradientFill 関数を使って長方形を処理する能力がある。

    SB_GRAD_TRI

このデバイスには、GradientFill 関数を使って三角形を処理する能力がある。

    SB_NONE 

このデバイスはこれらの能力をサポートしていない。

    SB_PIXEL_ALPHA

このデバイスには、AlphaBlend 関数を使って、ピクセルごとのアルファ(透明度、輝度)を操作する能力がある。

    SB_PREMULT

このデバイスには、AlphaBlend 関数を使って、あらかじめ倍率を設定されたアルファを操作する能力がある。

                        _ALPHA

 

    RASTERCAPS

デバイスのラスタ能力を示す。次の値の組み合わせになる。

    RC_BANDING

バンド処理のサポートが必要。バンド処理とは、1 つのページを複数のセクション(バンド)へ分割する手法のこと

 

で、処理時間は多少長くなるが、1 つのページを作成するために必要なメモリを削減できる。

    RC_BITBLT

このデバイスには、ビットマップの転送能力がある。

    RC_BITMAP64

このデバイスは、64 キロバイト(KB)より大きいビットマップをサポートしている。

    RC_DI_BITMAP

このデバイスは、SetDIBits 関数と GetDIBits 関数をサポートしている。

    RC_DIBTODEV

このデバイスは、SetDIBitsToDevice 関数をサポートしている。

    RC_FLOODFILL

このデバイスには、塗りつぶしを行う能力がある。

    RC_GDI20_OUTPUT

このデバイスは、16 ビット版の Windows 2.0 の機能をサポートしている。

    RC_PALETTE

このデバイスは、パレットベースのデバイスとして指定できる。

    RC_SCALING

このデバイスには、スケーリングを行う能力がある。

    RC_STRETCHBLT

このデバイスには、StretchBlt 関数を実行する能力がある。

    RC_STRETCHDIB

このデバイスには、StretchDIBits 関数を実行する能力がある。

    CURVECAPS

デバイスの曲線描画能力を示す。次の値の組み合わせになる。

    CC_NONE

このデバイスは、曲線をサポートしていない。

    CC_CHORD

このデバイスは、弓形(弧と弦からなる図形)の弧を描画できる。

    CC_CIRCLES

このデバイスは、円を描画できる。

    CC_ELLIPSES

このデバイスは、楕円を描画できる。

    CC_INTERIORS

このデバイスは、内部の塗りつぶしを行える。

    CC_PIE

このデバイスは、扇形を描画できる。

    CC_ROUNDRECT

このデバイスは、角の丸い長方形を描画できる。

    CC_STYLED

このデバイスは、スタイル付きの境界線を描画できる。

    CC_WIDE

このデバイスは、太い境界線を描画できる。

    CC_WIDESTYLED

このデバイスは、スタイル付きの太い境界線を描画できる。

    LINECAPS

デバイスの直線描画能力を示す。次の値の組み合わせになる。

    LC_NONE

このデバイスは、直線をサポートしていない。

    LC_INTERIORS

このデバイスは、内部の塗りつぶしを行える。

    LC_MARKER

このデバイスは、1 個のマーカーを描画できる。

    LC_POLYLINE

このデバイスは、連続直線を描画できる。

    LC_POLYMARKER

このデバイスは、複数のマーカーを描画できる。

    LC_STYLED

このデバイスは、スタイル付きの直線を描画できる。

    LC_WIDE

このデバイスは、太い直線を描画できる

    LC_WIDESTYLED

このデバイスは、スタイル付きの太い直線を描画できる。

    POLYGONALCAPS

デバイスの多角形描画能力を示す。次の値の組み合わせになる。

    PC_NONE

このデバイスは、多角形をサポートしていない。

    PC_INTERIORS

このデバイスは、内部の描画を行える。

    PC_POLYGON

このデバイスは、内部の描画を行える。

    PC_RECTANGLE

このデバイスは、長方形を描画できる。

    PC_SCANLINE

このデバイスは、単一の走査行を描画できる。

    PC_STYLED

このデバイスは、スタイル付きの境界線を描画できる。

    PC_WIDE

このデバイスは、太い境界線を描画できる。

    PC_WIDESTYLED

このデバイスは、スタイル付きの太い境界線を描画できる。

    PC_WINDPOLYGON

このデバイスは、全域モードでの多角形の塗りつぶしを行える。

    TEXTCAPS

デバイスのテキスト表示能力を示す。次の値の組み合わせになる

    TC_OP_CHARACTER

このデバイスには、キャラクタの出力精度を調整する能力がある。

    TC_OP_STROKE

このデバイスには、ストロークの出力精度を調整する能力がある。

    TC_CP_STROKE

このデバイスには、ストロークの出力精度を調整する能力がある。

    TC_CR_90

このデバイスには、キャラクタの 90 度回転を行う能力がある。

    TC_CR_ANY

このデバイスには、キャラクタの任意の角度の回転を行う能力がある。

    TC_SF_X_YINDEP

このデバイスは、x 方向と y 方向の独立したスケーリング(長体と平体)を行える。

    TC_SA_DOUBLE

このデバイスは、キャラクタの 2 倍のスケーリング(倍角)を行える。

    TC_SA_INTEGER

このデバイスは、キャラクタの整数倍のスケーリング(n 倍角)を行える。

    TC_SA_CONTIN

このデバイスは、キャラクタの任意の倍率のスケーリングを行える。

    TC_EA_DOUBLE

このデバイスは、2 倍の太さの文字(太字)を描画できる。

    TC_IA_ABLE

このデバイスは、イタリック体を描画できる。

    TC_UA_ABLE

このデバイスは、下線を描画できる。

    TC_SO_ABLE

このデバイスは、取り消し線を描画できる。

    TC_RA_ABLE

このデバイスは、ラスタフォントを描画できる。

    TC_VA_ABLE

このデバイスは、ベクトルフォントを描画できる。

    TC_RESERVED

予約済み。このフラグは必ず 0 になる。

    TC_SCROLLBLT

このデバイスは、ビットブロック転送(ブリット)によるスクロールを行えない。

 

このフラグが、予期とは逆のことを意味する可能性があることに注意すること。

    COLORMGMTCAPS

Windows 2000:デバイスの色の管理(カラーマネジメント)能力を示す。

    CM_CMYK_COLOR

このデバイスは、CMYK(シアン、マゼンタ、イエロー、ブラック)のカラースペース(色空間)に基づく ICC

 

(International Color Consortium)のカラープロファイルを受け入れる。

    CM_DEVICE_ICM

このデバイスは、デバイスドライバまたはデバイスの側で ICM(イメージ色の管理)を実施できる。

    CM_GAMMA_RAMP

このデバイスは、GetDeviceGammaRamp と SetDeviceGammaRamp の各関数をサポートしている。

    CM_NONE

このデバイスは、ICM をサポートしていない。


戻り値
    要求した項目に対応する値が返る。
    nIndex パラメータで BITSPIXEL を指定し、デバイスの色深度が 15bpp または 16bpp の場合、16 が返る。