DEVINFO 構造体 (winddi.h)

DEVINFO 構造体は、ドライバーとそのプライベート PDEV に関する情報をグラフィックス エンジンに提供します。

構文

typedef struct tagDEVINFO {
  FLONG    flGraphicsCaps;
  LOGFONTW lfDefaultFont;
  LOGFONTW lfAnsiVarFont;
  LOGFONTW lfAnsiFixFont;
  ULONG    cFonts;
  ULONG    iDitherFormat;
  USHORT   cxDither;
  USHORT   cyDither;
  HPALETTE hpalDefault;
  FLONG    flGraphicsCaps2;
} DEVINFO, *PDEVINFO;

メンバー

flGraphicsCaps

グラフィックス ドライバーとそのハードウェアのグラフィックス機能を記述するフラグのセットです。 これらのフラグは、次の表で定義されています。

フラグ 定義
GCAPS_ALTERNATEFILL 交互の塗りつぶしを処理します。
GCAPS_ARBRUSHOPAQUE テキスト不透明四角形 (背景色) の任意のブラシをサポートします。
GCAPS_ARBRUSHTEXT テキストの前景色の任意のブラシをサポートします。
GCAPS_ASYNCCHANGE このフラグは、互換性のために残されています。 レガシ ドライバーでは、このフラグは、他の描画がデバイス上で発生している間に、ドライバーがハードウェア内のポインターの形状を変更できることを示します。
GCAPS_ASYNCMOVE ドライバーは、他の描画がデバイス上で発生している間に、ハードウェアでポインターを移動できます。
GCAPS_BEZIERS ベジエ曲線を処理します。
GCAPS_CMYKCOLOR ドライバーは CYMK 色空間をサポートしています。
GCAPS_COLOR_DITHER PDEV 互換サーフェスへのカラー ディザリングを処理します。
GCAPS_DIRECTDRAW このフラグは、互換性のために残されています。
GCAPS_DITHERONREALIZE GDI が直接ディザリングする RGB を使用して DrvRealizeBrush を呼び出すことができることを指定します。
GCAPS_DONTJOURNAL このプリンター ドライバーへのメタファイル印刷を禁止します。 これはプリンター DC に対してのみ有効であり、通常、印刷時のアプリケーションへの戻り時間が遅くなります。
GCAPS_FONT_RASTERIZER デバイス ハードウェアでは、TrueType フォントをラスター化できます。
GCAPS_FORCEDITHER すべての幾何学的ペンにディザリングを許可します。
GCAPS_GEOMETRICWIDE 幾何学的な拡大を処理します。
GCAPS_GRAY16 アンチエイリアス化されたテキストをネイティブに処理します。
GCAPS_HALFTONE ハーフトニングを処理します。
GCAPS_HIGHRESTEXT このフラグは、互換性のために残されています。 レガシ ドライバーでは、このフラグは、ドライバーが FIX ポイント座標で STROBJ によって返されるグリフの位置を要求していることを示します。
GCAPS_HORIZSTRIKE このフラグは、互換性のために残されています。 レガシ ドライバーでは、このフラグは、ドライバーが DrvTextOut の水平方向の取り消し線を処理することを示します。
GCAPS_ICM ドライバーまたはプリンター ハードウェアで色管理操作を実行できることを示します。
GCAPS_LAYERED これは、リモート処理用のレイヤーまたはミラー ドライバーであることを示します。 プリンター ドライバーをレイヤー ドライバーにすることはできません。
GCAPS_MONO_DITHER モノクロ ディザリングを処理します。
GCAPS_NO64BITMEMACCESS このフラグは、互換性のために残されています。
GCAPS_NUP "N-up" 印刷がサポートされていることを示します。
GCAPS_OPAQUERECT DrvTextOut で不透明な四角形を処理します。
GCAPS_PALMANAGED パレット管理をサポートします。
GCAPS_PANNING GDI がポインターをシミュレートしている場合は、 DrvMovePointer を呼び出して、ドライバーに現在のカーソル位置を通知する必要があります。 これにより、ドライバーはパンの仮想ディスプレイを処理できます。
GCAPS_SCREENPRECISION ラスタライザー (フォント エンジン) は、完全に一致しないフォントを選択するときに、デバイス フォントよりも画面 (ソフト) フォントを選択する必要があります。
GCAPS_VECTORFONT DrvTextOut のベクター フォントのストロークを処理します。
GCAPS_VERTSTRIKE このフラグは、互換性のために残されています。 レガシ ドライバーでは、このフラグは、ドライバーが DrvTextOut の垂直方向の取り消し線を処理することを示しました。
GCAPS_WINDINGFILL 巻き取りモードの塗りつぶしを処理します。 詳細については、「 パスの塗りつぶしモード 」を参照してください。
GCAPS2_REMOTEDRIVER ディスプレイ ドライバーがリモート ユーザー セッションをサポートするために使用されることを示します。

lfDefaultFont

デバイスの既定のフォントを指定する拡張論理フォント構造体です。 この構造の詳細については、Microsoft Windows SDKドキュメントの EXTLOGFONT を参照してください。

lfAnsiVarFont

デバイスの既定の可変ピッチ フォントを指定する拡張論理フォント構造体です。 この構造の詳細については、Windows SDKドキュメントの EXTLOGFONT を参照してください。

lfAnsiFixFont

デバイスの既定の固定ピッチ (モノスペース) フォントを指定する拡張論理フォント構造体です。 この構造の詳細については、Windows SDKドキュメントの EXTLOGFONT を参照してください。

cFonts

デバイス フォントの数を指定します。 GDI は、デバイスが独自のサーフェス上にこの数のフォントでテキストを描画でき、ドライバーがフォントに関するメトリック情報を提供できることを前提としています。 ドライバーが cFonts を -1 に設定した場合、GDI は 、DrvQueryFont の呼び出しでサポートされているフォントの実際の数をドライバーに照会するためにフォントが必要になるまで待機します。

iDitherFormat

ビットマップの形式を指定します。 このパラメーターは、ピクセルごとに要求される色情報のビット数を示し、次のいずれかの値にする必要があります。

意味
BMF_1BPP 白黒
BMF_4BPP ピクセルあたり 4 ビット
BMF_8BPP ピクセルあたり 8 ビット
BMF_16BPP 1 ピクセルあたり 16 ビット
BMF_24BPP ピクセルあたり 24 ビット
BMF_32BPP ピクセルあたり 32 ビット
BMF_4RLE ピクセルあたり 4 ビット、エンコードされた実行長
BMF_8RLE ピクセルあたり 8 ビット、エンコードされた実行長
BMF_JPEG JPEG 圧縮画像
BMF_PNG PNG 圧縮イメージ

cxDither

cyDither

ディザリングブラシの寸法を指定します。 これらのメンバーが 0 以外の場合、デバイスは特定の RGB 色のディザリング ブラシを作成できます。

hpalDefault

デバイスの既定のパレットを処理します。 ドライバーは 、EngCreatePalette を呼び出してパレットを作成する必要があります。 ドライバーは、GDI にこのハンドルを返すことによって、デバイスにパレットを関連付けます。

flGraphicsCaps2

デバイス ドライバーの追加のグラフィックス機能を記述するフラグのセットです。 これらのフラグは、次の表で定義されています。

フラグ 定義
GCAPS2_ALPHACURSOR ピクセルごとのアルファ値を持つポインターを処理します。
GCAPS2_CHANGEGAMMARAMP ディスプレイ デバイスには、読み込み可能なハードウェア ガンマ ランプがあります。
GCAPS2_EXCLUDELAYERED これは、ドライバーのアクセシビリティミラー示します。 このフラグを設定しないミラー ドライバーは、レイヤー化された HWND の描画プリミティブを引き続き受け取ります。 詳細については、「 ミラー ドライバー 」を参照してください。
GCAPS2_ICD_MULTIMON 操作の四角形が別のデバイスと交差する場合でも、ドライバーが DrvSetPixelFormatDrvDescribePixelFormatおよび DrvSwapBuffers 呼び出しを処理することを GDI に通知します。 これらの呼び出しを処理する機会が与えられるデバイスは 1 つだけです。 機能が指定されておらず、関係するリージョンが複数のデバイスと交差する場合、ドライバーは呼び出されません。
GCAPS2_INCLUDEAPIBITMAPS デバイスに依存しないビットマップ (DIB) に対して描画呼び出しが行われると、ドライバーミラーアクセシビリティが呼び出されます。 詳細については、「 ミラー ドライバー 」を参照してください。
GCAPS2_JPEGSRC デバイスは JPEG 圧縮イメージ (つまり、 BMF_JPEGが SURFOBJ 構造体に設定されているイメージ) を受け入れます。
GCAPS2_MOUSETRAILS ドライバーがマウス の軌跡をサポートしていることを示します (短時間の間にマウスの位置を示すカーソル画像の連続)。 ドライバーは、GDI が DrvSetPointerShape 関数の fl パラメーターで送信する値を処理できます。 ドライバーは、マウス の軌跡の長さと頻度の値を取得するために、SPS_LENGTHMASKとSPS_FREQMASKマスクを使用する必要があります。 これらのマスクの詳細については、「 DrvSetPointerShape 」を参照してください。
GCAPS2_PNGSRC デバイスでは、PNG 圧縮イメージ (つまり、 SURFOBJ 構造体でBMF_PNGが設定されているイメージ) を受け取ることができます。
GCAPS2_SYNCFLUSH ドライバーは、バッチグラフィックス DDI 呼び出しのプログラムベースのフラッシュ メカニズムをサポートしています。 GDI がドライバーによってバッチ処理されている描画をフラッシュする必要がある場合は常に、DrvSynchronizeSurface が呼び出されます。
GCAPS2_SYNCTIMER ドライバーは、バッチグラフィックス DDI 呼び出しのタイマー ベースのフラッシュ メカニズムをサポートしています。 DrvSynchronizeSurface は、GDI によって決定されるタイマー間隔に基づいて定期的に呼び出されます。

注釈

ドライバーの DrvEnablePDEV 関数は、DEVINFO 構造体を入力します。ドライバーは、それに関連するメンバーのみを設定する必要があります。 この構造体は、 DrvEnablePDEV が呼び出される前に GDI によってゼロ初期化されます。 アプリケーションは、この構造に直接アクセスできません。

ドライバーが flGraphicsCaps2 でGCAPS2_JPEGSRCまたはGCAPS2_PNGSRCを設定する場合は、次の規則が適用されます。

  • ドライバーは 、DrvQueryDeviceSupport 関数を提供する必要があります。
  • 入力として SURFOBJ 構造体を受け取るドライバー定義グラフィックス DDI 関数はすべて、圧縮形式をサポートするか、エラー コードを返すことができる必要があります。 プリンター ドライバーの場合、圧縮形式をサポートするには、ドライバーが次のいずれかのタスクを実行できる必要があります。
    • 印刷デバイスが JPEG/PNG 圧縮形式を処理できる場合、プリンター ドライバーは圧縮形式をそのページ記述言語 (PDL) 出力に渡す必要があります。
    • 印刷デバイスが JPEG/PNG 圧縮形式を処理できない場合、プリンター ドライバーはまず、圧縮された JPEG/PNG 形式を印刷デバイスで処理できる別のイメージ形式に変換する必要があります。 プリンター ドライバーは、ドライバーの PDL 出力でイメージ情報を使用できるようにします。
      メモ JPEG/PNG からビットマップ形式に変換する場合、プリンター ドライバーは GDI 関数を使用できません。 たとえば、ドライバーは、代わりに Windows イメージング コンポーネント (WIC) API を使用して変換を行うことができます。
       
  • ドライバーは、圧縮形式を使用するイメージの複雑なクリップ領域を処理できる必要があります。
  • ROP4 入力引数を受け取るドライバー定義グラフィックス DDI 関数の場合、JPEG および PNG 形式では0xCCCCのみが使用されます。

要件

要件
Header winddi.h (Winddi.h を含む)

こちらもご覧ください

DrvEnablePDEV

DrvQueryFont

DrvRealizeBrush

DrvTextOut