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 | 處理 Bezier 曲線。 |
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 | 處理單色 dithering。 |
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 | 每個像素 16 位 |
BMF_24BPP | 每個像素 24 位 |
BMF_32BPP | 每個像素32位 |
BMF_4RLE | 每個圖元 4 位,執行長度編碼 |
BMF_8RLE | 每個圖元 8 位,執行長度編碼 |
BMF_JPEG | JPEG 壓縮的影像 |
BMF_PNG | PNG 壓縮影像 |
cxDither
cyDither
指定 ded 筆刷的維度。 如果這些成員是非零的,則裝置可以針對指定的 RGB 色彩建立兩個筆刷。
hpalDefault
處理裝置的預設調色盤。 驅動程式應該呼叫 EngCreatePalette 來建立調色盤。 驅動程式會將此句柄傳回至 GDI,讓調色盤與裝置產生關聯。
flGraphicsCaps2
這是一組旗標,描述設備驅動器的其他圖形功能。 下表會定義這些旗標。
旗標 | 定義 |
---|---|
GCAPS2_ALPHACURSOR | 處理具有每個圖元 Alpha 值的指標。 |
GCAPS2_CHANGEGAMMARAMP | 顯示裝置具有可載入的硬體 Gamma 坡形。 |
GCAPS2_EXCLUDELAYERED | 表示這是輔助功能鏡像驅動程式。 未設定此旗標的鏡像驅動程式仍會收到分層 HWND 的繪圖基本類型。 如需詳細資訊,請參閱 鏡像驅動程式 。 |
GCAPS2_ICD_MULTIMON | 通知 GDI 驅動程式想要處理 DrvSetPixelFormat、 DrvDescribePixelFormat和 DrvSwapBuffers 在多Mon環境中呼叫,即使作業中的矩形也會與另一部裝置交集。 只有一部裝置有機會處理這些呼叫。 如果未指定此功能,且涉及的區域與多個裝置交集,則不會呼叫任何驅動程式。 |
GCAPS2_INCLUDEAPIBITMAPS | 對裝置無關的位圖呼叫 (DIB) 時,將會呼叫輔助功能鏡像驅動程式。 如需詳細資訊,請參閱 鏡像驅動程式 。 |
GCAPS2_JPEGSRC | 裝置可以接受 JPEG 壓縮影像 (,也就是 在 SURFOBJ 結構中設定BMF_JPEG影像) 。 |
GCAPS2_MOUSETRAILS | 表示驅動程式支援滑鼠追蹤 (一連串的游標影像,顯示滑鼠在短時間內的位置) 。 驅動程式能夠處理DrvSetPointerShape函式 fl 參數中所傳送的值 GDI。 驅動程式應該使用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 函式。
-
每個驅動程式定義的圖形 DDI 函式都會接收 SURFOBJ 結構做為輸入,必須能夠支援壓縮格式或傳回錯誤碼。 如果印表機驅動程式支援壓縮格式,驅動程式必須能夠執行下列其中一項工作:
- 如果列印裝置可以處理 JPEG/PNG 壓縮格式,印表機驅動程式應該將壓縮格式傳遞至其頁面描述語言 (PDL) 輸出。
- 如果列印裝置無法處理 JPEG/PNG 壓縮格式,印表機驅動程式必須先將壓縮的 JPEG/PNG 格式轉換成列印裝置可以處理的另一個影像格式。 印表機驅動程式接著可以在驅動程式的 PDL 輸出中提供影像資訊。
注意 在從 JPEG/PNG 轉換為點陣圖格式的情況下,印表機驅動程式不得使用 GDI 函數。 例如,驅動程式可以使用 Windows 映像處理元件 (WIC) API 來執行轉換。
- 驅動程式必須能夠處理使用壓縮格式之影像的複雜剪輯區域。
- 對於接收 ROP4 輸入自變數的驅動程式定義圖形 DDI 函式,只有0xCCCC搭配 JPEG 和 PNG 格式使用。
規格需求
需求 | 值 |
---|---|
標頭 | winddi.h (包括 Winddi.h) |