DrvDeviceCapabilities 函式 (winddiui.h)
印表機介面 DLL 的 DrvDeviceCapabilities 函式會傳回印表機功能的要求資訊。
語法
DWORD DrvDeviceCapabilities(
HANDLE hPrinter,
[in] PWSTR pszDeviceName,
WORD Capability,
[out] PVOID pOutput,
[in, optional] PDEVMODE pDevmode
);
參數
hPrinter
呼叫端提供的印表機句柄。
[in] pszDeviceName
印表機名稱字串的呼叫端提供的指標。
Capability
呼叫端提供的位旗標,指出所要求的資訊。 這可以是下表所列的其中一個旗標。 (旗標定義於頭檔 Wingdi.h.)
旗 | 定義 |
---|---|
DC_BINADJUST | 不適用於 NT 型作系統。 |
DC_BINNAMES | pOutput 參數指向函式應該填入字元串緩衝區陣列的緩衝區,長度每24個字元。 陣列中的每個字串緩衝區都應該包含一個寬字元的NULL 終止字串,指定紙張來源量化的名稱。 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_BINS | pOutput 參數會指向函式應該填入 WORD 陣列的緩衝區。 每個陣列元素都應該包含 DMBIN 前置常數(或自定義值),代表支援的紙張來源量化。 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_COLLATE | 不使用 pOutput 參數。 如果印表機支援定序,則函式的傳回值應該是1;否則,傳回值應該是零。 |
DC_COLORDEVICE | 不使用 pOutput 參數。 如果印表機支援彩色列印,則函式的傳回值應該是1;否則,傳回值應該是零。 |
DC_COPIES | 不使用 pOutput 參數。 函式的傳回值應該是印表機可支援的最大複本數目。 |
DC_DATATYPE_PRODUCED | 不適用於 NT 型作系統。 |
DC_DRIVER | 不使用 pOutput 參數。 函式的傳回值應該是驅動程序內部 [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew) 結構的 dmDriverVersion 成員。 |
DC_DUPLEX | 不使用 pOutput 參數。 如果印表機支援雙面列印,則函式的傳回值應該是1;否則,傳回值應該是零。 |
DC_EMF_COMPLIANT | 不適用於 NT 型作系統。 |
DC_ENUMRESOLUTIONS | pOutput 參數指向函式應該填入 LONG 陣列的緩衝區。 針對印表機支援的每個解析度,函式應該傳回兩個長字(一個用於 x 維度,另一個用於解析度的 y 維度),以每英吋點為單位。 函式的傳回值應該是支援的解析度數目。 如果 pOutputNULL,則函式應該只會傳回支援的解析度數目。 |
DC_EXTRA | 不使用 pOutput 參數。 函式的傳回值應該是驅動程序內部 [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew) 結構的 dmDriverExtra 成員。 |
DC_FIELDS | 不使用 pOutput 參數。 函式的傳回值應該是驅動程序內部 [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi/ns-wingdi-devmodew) 結構的 dmFields 成員。 dmFields 成員表示列印機驅動程序支援 DEVMODEW 結構裝置獨立部分的成員。 |
DC_FILEDEPENDENCIES | pOutput 參數會指向函式應該填入字元串緩衝區陣列的緩衝區,長度每 64 個字元。 數位中的每個字串緩衝區都應該包含寬字元、以 NULL 結尾的字串,指定必須隨驅動程式一起安裝的檔名。 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_MANUFACTURER | 不適用於 NT 型作系統。 |
DC_MAXEXTENT | 不使用 pOutput 參數。 函式應該會傳回 POINTS 結構(如Microsoft Windows SDK 檔中所述)。 結構應包含印表機 DEVMODEW 結構之 dmPaperWidth (x 維度) 和 dmPaperLength (y 維度) 成員的允許值上限。 |
DC_MEDIAREADY | pOutput 參數會指向函式應該填入字元串緩衝區陣列的緩衝區,長度每 64 個字元。 陣列中的每個字串緩衝區都應該包含寬字元的NULL終止字串,指定可供使用的紙張窗體名稱。 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_MEDIATYPENAMES | pOutput 參數會指向函式應該填入字元串緩衝區陣列的緩衝區,長度每 64 個字元。 陣列中的每個字串緩衝區都應該包含寬字元、以NULL 結尾的字串,以指定支援的媒體類型名稱。 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_MEDIATYPES | pOutput 參數指向函式應該填入 DWORD 陣列的緩衝區。 每個陣列元素都應該包含 DMMEDIA 前置常數(請參閱 [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi-devmodew) 或自定義值,代表支持的媒體類型。 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_MINEXTENT | 不使用 pOutput 參數。 函式應該會傳回 POINTS 結構(如 Windows SDK 檔中所述)。 結構應包含印表機 DEVMODEW 結構的 dmPaperWidthx 維度)和 dmPaperLength (y 維度) 成員的最小允許值。 |
DC_MODEL | 不適用於 NT 型作系統。 |
DC_NUP | pOutput 參數指向函式應該填入 DWORD 陣列的緩衝區。 每個數位元素都應該包含代表 N-up 選項的整數(也就是說,每個整數應該代表每個實體頁面支援的文件頁數)。 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_ORIENTATION | 不使用 pOutput 參數。 函式的傳回值應該是從直向產生橫向方向所需的旋轉度數。 值為零表示不支援橫向方向。 |
DC_PAPERNAMES | pOutput 參數會指向函式應該填入字元串緩衝區陣列的緩衝區,長度每 64 個字元。 陣列中的每個字串緩衝區都應該包含指定紙張表單名稱的寬字元 NULL 終止字串。 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_PAPERS | pOutput 參數會指向函式應該填入 WORD 陣列的緩衝區。 每個數位元素都應該包含代表支援紙張表單的 DMPAPER 前置常數(或自定義值)。 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_PAPERSIZE | pOutput 參數會指向函式應該填入 POINT 陣列的緩衝區。 每個陣列元素都應該包含 x,並以直向方向,以0.1公厘為單位的表單紙張大小 y 維度。 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_PERSONALITY | pOutput 參數指向函式應該填入字元串緩衝區陣列的緩衝區,長度每32個字元。 數位中的每個字串緩衝區都應該包含寬字元的NULL 終止字串,指定印表機支援的印表機描述語言(例如 L“HP-GL/2” 函式的傳回值應該是傳回數位列中的項目數。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_PRINTERMEM | 不使用 pOutput 參數。 函式的傳回值應該是整數,代表可用印表機記憶體的數量,以 KB 為單位。 |
DC_PRINTRATE | 不使用 pOutput 參數。 函式的傳回值應該是代表列印速率的整數,以指定給DC_PRINTRATEUNIT的單位。 |
DC_PRINTRATEPPM | 不使用 pOutput 參數。 函式的傳回值應該是代表列印速率的整數,以每分鐘為單位。 |
DC_PRINTRATEUNIT | 不使用 pOutput 參數。 函式的傳回值應該識別用來指定針對 DC_PRINTRATE 傳回值的單位。 必須指定下列其中一個常數:PRINTRATEUNIT_PPM - pages/min。 PRINTRATEUNIT_CPS - chars./sec. PRINTRATEUNIT_LPM - lines/min。 PRINTRATEUNIT_IPM - 英吋/分鐘。 |
DC_SIZE | 不使用 pOutput 參數。 函式的傳回值應該是驅動程序內部 [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi/ns-wingdi-devmodew) 結構的 dmSize 成員。 |
DC_STAPLE | 不使用 pOutput 參數。 如果印表機支援裝訂,則函式的傳回值應該 TRUE,如果印表機不支援裝訂,FALSE。 |
DC_TRUETYPE | 不使用 pOutput 參數。 函式的傳回值可以是零、一或多個下列旗標:DCTT_BITMAP:裝置可以將 TrueType 字型列印為圖形。 DCTT_DOWNLOAD:裝置可以接受下載的 TrueType 字型。 DCTT_DOWNLOAD_OUTLINE: (僅限 Windows 95/98/Me) 裝置可以下載大綱 TrueType 字型。 DCTT_SUBDEV:裝置可以將裝置字型取代為 TrueType 字型。 |
DC_VERSION | 不使用 pOutput 參數。 函式的傳回值應該是驅動程序內部 [DEVMODEW](/windows/win32/api/wingdi/ns-wingdi/ns-wingdi-devmodew) 結構的 dmSpecVersion 成員。 |
[out] pOutput
呼叫端提供的緩衝區指標,以接收函式提供的資訊。 緩衝區的使用取決於針對 Capability 參數收到的值。
[in, optional] pDevmode
描述目前列印作業特性之 DEVMODEW 結構的呼叫端提供的指標。 如果此參數 NULL,DrvDeviceCapabilities 擷取指定印表機驅動程式目前的預設初始化值,例如列印佇列的用戶預設 DEVMODEW 結構。
傳回值
函式的傳回值取決於針對 Capability 參數收到的值。 如果收到的 功能 值代表驅動程式不支援的功能,或遇到錯誤,函式應該會傳回GDI_ERROR。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | winddiui.h (包括 Winddiui.h) |