DeviceCapabilitiesA 函式 (wingdi.h)
DeviceCapabilities 函式會擷取印表機驅動程式的功能。
語法
int DeviceCapabilitiesA(
[in] LPCSTR pDevice,
[in] LPCSTR pPort,
[in] WORD fwCapability,
[out] LPSTR pOutput,
[in] const DEVMODEA *pDevMode
);
參數
[in] pDevice
包含印表機名稱之 Null 終止字串的指標。 請注意,這是印表機的名稱,而不是印表機驅動程序的名稱。
[in] pPort
Null 終止字串的指標,其中包含裝置所連接的埠名稱,例如 LPT1。
[in] fwCapability
要查詢的功能。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
擷取印表機紙匣的名稱。 pOutput 緩衝區會接收字串緩衝區的陣列。 每個字串緩衝區長度為 24 個字元,且包含紙箱的名稱。 傳回值表示陣列中的項目數。 除非名稱長度為 24 個字元,否則名稱字串會以 Null 結尾。 如果 pOutput 為 NULL,則傳回值是所需的 bin 項目數目。 |
|
擷取可用紙匣的清單。 pOutput 緩衝區會接收 WORD 值的陣列,指出印表機的可用紙張來源。 傳回值表示陣列中的項目數。 如需可能陣列值的清單,請參閱DEVMODE結構的 dmDefaultSource 成員描述。 如果 pOutput 為 NULL,則傳回值會指出陣列中所需的項目數目。 |
|
如果印表機支援定序,則傳回值為1;否則,傳回值為零。 不會使用 pOutput 參數。 |
|
如果印表機支援彩色列印,則傳回值為1;否則,傳回值為零。 不會使用 pOutput 參數。 |
|
傳回裝置可列印的複本數目。 |
|
傳回印表機驅動程式的版本號碼。 |
|
如果印表機支援雙工列印,則傳回值為1;否則,傳回值為零。 不會使用 pOutput 參數。 |
|
擷取印表機所支援解析度的清單。 pOutput 緩衝區會接收 LONG 值的陣列。 針對每個支援的解析度,數位包含一組 LONG 值,以每英吋點為單位指定解析度的 x 和 y 維度。 傳回值表示支援的解析度數目。 如果 pOutput 為 NULL,則傳回值會指出支援的解析度數目。 |
|
傳回印表機驅動程式 之 DEVMODE 結構之裝置特定部分所需的位元元組數目。 |
|
傳回印表機驅動程式 DEVMODE 結構的 dmFields 成員。 dmFields成員表示印表機驅動程式支持結構中與裝置無關部分的成員。 |
|
擷取安裝驅動程式時需要載入的任何其他檔名。 pOutput 緩衝區會接收字串緩衝區的陣列。 每個字串緩衝區長度為64個字元,且包含檔名。 傳回值表示陣列中的項目數。 除非名稱長度為 64 個字元,否則名稱字串會以 Null 結尾。 如果 pOutput 為 NULL,則傳回值會是檔案數目。 |
|
會傳回印表機驅動程式 DEVMODE 結構可以指定的 dmPaperLength 和 dmPaperWidth 成員的最大紙張大小。 傳回值的 LOWORD 包含 dmPaperWidth 值上限,而 HIWORD 則包含最大 dmPaperLength 值。 |
|
擷取目前可供使用的紙張窗體名稱。 pOutput 緩衝區會接收字串緩衝區的陣列。 每個字串緩衝區長度為64個字元,且包含紙張窗體的名稱。 傳回值表示陣列中的項目數。 除非名稱長度為 64 個字元,否則名稱字串會以 Null 結尾。 如果 pOutput 為 NULL,則傳回值為紙張窗體的數目。 |
|
擷取支援的媒體類型名稱。 pOutput 緩衝區會接收字串緩衝區的陣列。 每個字串緩衝區長度為64個字元,且包含支援的媒體類型名稱。 傳回值表示陣列中的項目數。 除非名稱長度為 64 個字元,否則字串會以 Null 結尾。 如果 pOutput 為 NULL,則傳回值是所需的媒體類型名稱數目。 |
|
擷取支援的媒體類型清單。 pOutput 緩衝區會接收指出支持的媒體類型的 DWORD 值陣列。 傳回值表示陣列中的項目數。 如需可能的陣列值清單,請參閱 DEVMODE 結構的 dmMediaType 成員描述。 如果 pOutput 為 NULL,則傳回值會指出陣列中所需的項目數目。 |
|
會傳回印表機驅動程式 DEVMODE 結構可以指定的 dmPaperLength 和 dmPaperWidth 成員的最小紙張大小。 傳回值的 LOWORD 包含最小值 dmPaperWidth 值,而 HIWORD 則包含最小值 dmPaperLength 值。 |
|
傳回裝置的直向和橫向方向之間的關聯性,就直向旋轉逆時針方向來產生橫向方向的程度而言。 傳回值可以是下列其中一個:
|
|
擷取整數數位,指出列印機能夠列印每一列印頁面的多個文件頁。 pOutput 緩衝區會接收 DWORD 值的陣列。 每個值都代表每個列印頁面支援的文件頁數。 傳回值表示陣列中的項目數。 如果 pOutput 為 NULL,則傳回值會指出陣列中所需的項目數目。 |
|
擷取支援的紙張名稱清單 (,例如 Letter 或 Legal) 。 pOutput 緩衝區會接收字串緩衝區的陣列。 每個字串緩衝區長度為64個字元,且包含紙張窗體的名稱。 傳回值表示陣列中的項目數。 除非名稱長度為 64 個字元,否則名稱字串會以 Null 結尾。 如果 pOutput 為 NULL,則傳回值為紙張窗體的數目。 |
|
擷取支援的紙張大小清單。 pOutput 緩衝區會收到 WORD 值的陣列,指出印表機可用的紙張大小。 傳回值表示陣列中的項目數。 如需可能陣列值的清單,請參閱 DEVMODE 結構的 dmPaperSize 成員描述。 如果 pOutput 為 NULL,則傳回值會指出陣列中所需的項目數目。 |
|
擷取每個支援紙張大小的十分之一公厘尺寸。 pOutput 緩衝區會接收 POINT 結構的數位。 每個 結構都包含 (x 維度) 寬度,以及紙張大小的 y 維度) 長度 (,就像紙張位於DMORIENT_PORTRAIT方向一 樣 。 傳回值表示陣列中的項目數。 |
|
擷取印表機所支援的印表機描述語言清單。 pOutput 緩衝區會接收字串緩衝區的陣列。 每個緩衝區長度為 32 個字元,且包含印表機描述語言的名稱。 傳回值表示陣列中的項目數。 除非名稱長度為 32 個字元,否則名稱字串會以 Null 結尾。 如果 pOutput 為 NULL,則傳回值會指出所需的陣列項目數目。 |
|
傳回值是可用印表機記憶體的數量,以 KB 為單位。 不會使用 pOutput 參數。 |
|
傳回值表示印表機的印表速率。 針對 DC_PRINTRATEUNIT 傳回的值會指出 DC_PRINTRATE 值的單位。 不會使用 pOutput 參數。 |
|
傳回值會以每分鐘為單位指出印表機的印表速率。 不會使用 pOutput 參數。 |
|
傳回值是下列其中一個值,表示 針對DC_PRINTRATE 旗標所傳回之值的列印速率單位。 不會使用 pOutput 參數。
|
|
傳回印表機驅動程式 DEVMODE 結構的 dmSize 成員。 |
|
如果印表機支援裝訂,則傳回值為非零值;否則,傳回值為零。 不會使用 pOutput 參數。 |
|
擷取驅動程式使用 TrueType 字型的能力。 針對DC_TRUETYPE,pOutput 參數應該是 NULL。 傳回值可以是下列其中一或多個值:
|
|
傳回印表機驅動程式符合的規格版本。 |
[out] pOutput
陣列的指標。 數位格式取決於 fwCapability 參數的設定。 請參閱上述每個功能,以瞭解 pOutput 為 NULL 時所傳回的內容。
[in] pDevMode
DEVMODE 結構的指標。 如果此參數為 NULL,DeviceCapabilities 會擷取指定印表機驅動程式目前的預設初始化值。 否則,函式會擷取 pDevMode 指向之結構中包含的值。
傳回值
如果函式成功,傳回值取決於 fwCapability 參數的設定。 傳回值為零通常表示函式順利完成時,有一些失敗類型,例如不支援的功能。 如需詳細資訊,請參閱 fwCapability 值的描述。
如果函式傳回 -1,這可能表示不支援此功能或發生一般函式失敗。
備註
如果印表機驅動程式支援自定義裝置功能,驅動程式必須針對每個自定義功能呼叫 SetPrinterData 函式。 SetPrinterData 函式會將適當的印表機數據新增至列印系統,讓 32 位應用程式能夠存取 64 位 Windows 安裝上的自定義功能。
針對每個自定義功能,您必須先新增描述功能類型的印表機數據。 若要這樣做,當您呼叫 SetPrinterData 時,請將 pValueName 字串設定為 CustomDeviceCapabilityType_Xxx,其中 「Xxx」 是功能的十六進位表示法。 例如,您可能有 「CustomDeviceCapabilityType_1234」。 您設定的登入資料必須是 REG_DWORD 類型,而且您必須將其值設定為下列其中一項:
- 0,如果自定義功能是 DWORD
- 1,如果自定義功能是位元組的緩衝區
- 2,如果自定義功能是項目的陣列
注意
wingdi.h 標頭會將 DeviceCapabilities 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wingdi.h (包含 Windows.h) |
程式庫 | WinSpool.lib |
Dll | WinSpool.drv |