GetDeviceCaps

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

int GetDeviceCaps(
    HDC  hDC,     // DC handle
    int  nIndex   // index of capability
);

GDI32.DLL

引数

hDC

デバイスコンテキストのハンドルを指定します。

nIndex

取得する情報の種類を指定します。以下の値のいずれかを指定します。

0 (DRIVERVERSION)
デバイスドライバのバージョン
2 (TECHNOLOGY)
デバイステクノロジー。以下の値のいずれかが返ります。
0 (DT_PLOTTER)
ベクタプロッタ
1 (DT_RASDISPLAY)
ラスタディスプレイ
2 (DT_RASPRINTER)
ラスタプリンタ
3 (DT_RASCAMERA)
ラスタカメラ
4 (DT_CHARSTREAM)
文字ストリーム
5 (DT_METAFILE)
メタファイル
6 (DT_DISPFILE)
ディスプレイファイル
4 (HORZSIZE)
物理画面の幅(ミリメートル単位)
6 (VERTSIZE)
物理画面の高さ(ミリメートル単位)
8 (HORZRES)
物理画面の幅(ピクセル単位)
10 (VERTRES)
物理画面の高さ(ピクセル単位)
12 (BITSPIXEL)
それぞれのピクセルに対する色ビット数
14 (PLANES)
カラープレーンの数
16 (NUMBRUSHES)
デバイス固有のブラシの数
18 (NUMPENS)
デバイス固有のペンの数
20 (NUMMARKERS)
デバイス固有のマーカーの数
22 (NUMFONTS)
デバイス固有のフォントの数
24 (NUMCOLORS)
デバイスのカラーテーブルのエントリ数(ピクセルあたり8ビットを超える場合は-1
26 (PDEVICESIZE)
予約されています。
28 (CURVECAPS)
デバイスの曲線描画能力。戻り値として次の値の組み合わせの値が返ります。
0 (CC_NONE)
曲線をサポートしない
1 (CC_CIRCLES)
2 (CC_PIE)
扇形
4 (CC_CHORD)
弓形
8 (CC_ELLIPSES)
楕円
16 (CC_WIDE)
太い線
32 (CC_STYLED)
スタイル付きの線
64 (CC_WIDESTYLED)
スタイル付きの太い線
128 (CC_INTERIORS)
内部の塗りつぶしをサポート
256 (CC_ROUNDRECT)
角の丸い長方形
30 (LINECAPS)
デバイスの直線描画能力。戻り値として次の値の組み合わせの値が返ります。
0 (LC_NONE)
直線をサポートしない
2 (LC_POLYLINE)
折れ線
4 (LC_MARKER)
マーカー
8 (LC_POLYMARKER)
ポリマーカー
16 (LC_WIDE)
太い直線
32 (LC_STYLED)
スタイル付きの直線
64 (LC_WIDESTYLED)
スタイルを持つ太い直線
128 (LC_INTERIORS)
内部の塗りつぶしをサポート
32 (POLYGONALCAPS)
デバイスの多角形描画能力。戻り値として次の値の組み合わせの値が返ります。
0 (PC_NONE)
多角形をサポートしない
1 (PC_POLYGON)
交互モードの塗りつぶし
2 (PC_RECTANGLE)
長方形
4 (PC_WINDPOLYGON, PC_TRAPEZOID)
全域モードでの塗りつぶし
8 (PC_SCANLINE)
単一の走査行の描画
16 (PC_WIDE)
太い線
32 (PC_STYLED)
スタイル付きの線
64 (PC_WIDESTYLED)
スタイル付きの太い線
128 (PC_INTERIORS)
内部の塗りつぶしをサポート
256 (PC_POLYPOLYGON)
ポリポリゴン
512 (PC_PATHS)
パス
34 (TEXTCAPS)
デバイスのテキスト表示能力。戻り値として次の値の組み合わせの値が返ります。
0x00000001 (TC_OP_CHARACTER)
文字の出力精度
0x00000002 (TC_OP_STROKE)
ストロークの出力精度
0x00000004 (TC_CP_STROKE)
ストローククリップの精度
0x00000008 (TC_CR_90)
文字の90度回転
0x00000010 (TC_CR_ANY)
文字の任意の角度の回転
0x00000020 (TC_SF_X_YINDEP)
x方向とy方向の両方の独立したスケーリング
0x00000040 (TC_SA_DOUBLE)
文字の2倍のスケーリング
0x00000080 (TC_SA_INTEGER)
文字の整数倍のスケーリング
0x00000100 (TC_SA_CONTIN)
文字の任意の倍率のスケーリング
0x00000200 (TC_EA_DOUBLE)
太字
0x00000400 (TC_IA_ABLE)
イタリック体
0x00000800 (TC_UA_ABLE)
下線
0x00001000 (TC_SO_ABLE)
取り消し線
0x00002000 (TC_RA_ABLE)
ラスタフォント
0x00004000 (TC_VA_ABLE)
ベクトルフォント
0x00008000 (TC_RESERVED)
予約済み
0x00010000 (TC_SCROLLBLT)
ビットブロック転送によるスクロールをサポートしない
36 (CLIPCAPS)
デバイスのクリッピング能力。戻り値として、長方形のクリップをサポートする場合は1が、それ以外の場合は0が返ります。
38 (RASTERCAPS)
デバイスのラスタ能力。戻り値として次の値の組み合わせの値が返ります。
1 (RC_BITBLT)
ビットマップの転送
2 (RC_BANDING)
バンド処理のサポートが必要
4 (RC_SCALING)
スケーリング
8 (RC_BITMAP64)
64KBより大きいビットマップ
0x0080 (RC_DI_BITMAP)
SetDIBits関数とGetDIBits関数
0x0100 (RC_PALETTE)
デバイスはパレットベースのデバイスである
0x0200 (RC_DIBTODEV)
SetDIBitsToDevice関数
0x0800 (RC_STRETCHBLT)
StretchBlt関数
0x1000 (RC_FLOODFILL)
塗りつぶし
0x2000 (RC_STRETCHDIB)
StretchDIBits関数
40 (ASPECTX)
線の描画に使うデバイスピクセルの相対の幅
42 (ASPECTY)
線の描画に使うデバイスピクセルの相対の高さ
44 (ASPECTXY)
線の描画に使うデバイスピクセルの対角線の長さ
45 (SHADEBLENDCAPS)
Windows 98/2000 以降: デバイスのシェードとブレンドの能力を示す値
88 (LOGPIXELSX)
論理インチ当たりの画面の水平方向のピクセル数
90 (LOGPIXELSY)
論理インチ当たりの画面の垂直方向のピクセル数
104 (SIZEPALETTE)
システムパレット内のエントリ数
106 (NUMRESERVED)
システムパレット内の予約エントリ数
108 (COLORRES)
デバイスの実際のカラー解像度を表す、ピクセル当たりのビット数
110 (PHYSICALWIDTH)
物理的なページ全体の幅(デバイス単位)(印刷デバイス用)
111 (PHYSICALHEIGHT)
物理的なページ全体の高さ(デバイス単位)(印刷デバイス用)
112 (PHYSICALOFFSETX)
物理的なページの左辺・上辺から印刷可能領域の左辺までの距離(デバイス単位)(印刷デバイス用)
113 (PHYSICALOFFSETY)
物理的なページの左辺・上辺から印刷可能領域の上辺までの距離(デバイス単位)(印刷デバイス用)
114 (SCALINGFACTORX)
x軸のスケーリングファクター
115 (SCALINGFACTORY)
y軸のスケーリングファクター
116 (VREFRESH)
Windows NT/2000/XP のみ: 現在のディスプレイ出力の垂直周波数 (Hz)。0または1はディスプレイのデフォルト周波数を示します。
117 (DESKTOPVERTRES)
Windows NT/2000/XP のみ: 仮想デスクトップ全体の高さ(ピクセル単位)
118 (DESKTOPHORZRES)
Windows NT/2000/XP のみ: 仮想デスクトップ全体の幅(ピクセル単位)
119 (BLTALIGNMENT)
Windows NT/2000/XP のみ: デバイスに適した水平方向のアラインメント。適したアラインメントが特にないときは0
120 (SHADEBLENDCAPS)
Windows 98/Me/2000/XP のみ: デバイスのシェードおよびブレンド能力を示す値。戻り値として次の値の組み合わせの値が返ります。
0x00000000 (SB_NONE)
デバイスはこれらの機能をサポートしていません。
0x00000001 (SB_CONST_ALPHA)
BLENDFUNCTION構造体のSourceConstantAlphaメンバを使います。この値はAlphaBlend関数のblendFunctionパラメータで説明されています。
0x00000002 (SB_PIXEL_ALPHA)
0x00000004 (SB_PREMULT_ALPHA)
0x00000010 (SB_GRAD_RECT)
0x00000020 (SB_GRAD_TRI)
121 (COLORMGMTCAPS)
Windows NT/2000/XP のみ: デバイスの色管理能力を示す値。戻り値として次の値の組み合わせの値が返ります。
0x00000000 (CM_NONE)
デバイスはICMをサポートしていません。
0x00000001 (CM_DEVICE_ICM)
0x00000002 (CM_GAMMA_RAMP)
0x00000004 (CM_CMYK_COLOR)

戻り値

取得された情報が返ります。

nIndexパラメータに12 (BITSPIXEL) を指定していて、デバイスが15bppまたは16bppであるときには、戻り値は16になります。

対応情報

Windows 95 以降 / Windows NT 3.1 以降