VB聲明 |
|
Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, ByVal lpPort As String, ByVal iIndex As Long, ByVal lpOutput As String, lpDevMode As DEVMODE) As Long |
|
說明 |
|
利用這個函數(shù)可獲得與一個設(shè)備的能力有關(guān)的信息 |
|
返回值 |
|
Long,由iIndex參數(shù)的值決定,請參考設(shè)備能力常數(shù)表。如函數(shù)執(zhí)行失敗,或打印機(jī)的驅(qū)動程序不支持這個函數(shù),那么函數(shù)就會返回-1 |
|
參數(shù)表 |
|
參數(shù) |
類型及說明 |
lpDeviceName |
String,設(shè)備名 |
lpPort |
String,指定連接了指定設(shè)備的那個端口 |
iIndex |
Long,欲測試的能力。請參考設(shè)備能力常數(shù)表,其中列出了可選的值 |
lpOutput |
String,指定一個緩沖區(qū)的地址,能力數(shù)據(jù)會裝載到這個緩沖區(qū)中。在設(shè)備能力常數(shù)表中,針對每個fwCapabilities值的緩沖區(qū)的內(nèi)容都進(jìn)行了總結(jié)。這個表格同時總結(jié)了應(yīng)將參數(shù)設(shè)為vbNullString的一些情況 |
lpDevMode |
DEVMODE,一個DEVMODE結(jié)構(gòu)的地址,或者為零。如指定了那個結(jié)構(gòu),函數(shù)會根據(jù)這個結(jié)構(gòu)的設(shè)置來接收信息。如果為零,函數(shù)就會根據(jù)打印機(jī)驅(qū)動程序的默認(rèn)值接收信息 |
注解 |
|
使用lpOutput時要注意:在許多時候,這個函數(shù)會返回一系列名稱的列表。例如,假設(shè)將fwCapabilities標(biāo)志設(shè)為DC_PAPERNAMES,那么就會得到一系列支持的紙張尺寸的名字。在這種情況下,lpOutput緩沖區(qū)應(yīng)該是一個String變量,而且根據(jù)設(shè)備能力常數(shù)表的總結(jié)預(yù)先初始化成合適的長度。函數(shù)會在緩沖區(qū)中載入所有名稱,而且每個名稱在字串中都占用固定的空間。所以,我們完全能用Mid函數(shù)提取出每一個條目。 某些情況下,lpOutput需要指向一個數(shù)值數(shù)組的指針 |
fwCapabilities |
說明 |
|
DC_BINADJUST |
返回來自API32.TXT的某個常數(shù)。它應(yīng)帶有 DCBA_ 前綴,用于指定當(dāng)前紙張?jiān)吹恼_紙張方向。僅適用于Win95 |
|
DC_BINNAMES |
如lpOutput為零,就返回由打印機(jī)支持的紙匣數(shù)量。否則,lpOutput應(yīng)指向一個緩沖區(qū)(長度至少為24×紙匣數(shù))。每24個字節(jié)都會保存一個紙匣的NULL中止名稱 |
|
DC_BINS |
如lpOutput為零,就返回由打印機(jī)支持的紙匣數(shù)量。否則,lpOutput應(yīng)指向一個整數(shù)數(shù)組(長度至少為紙匣數(shù)量)。這些值對應(yīng)于為DEVMODE結(jié)構(gòu)定義的 DMBIN_??? 常數(shù) |
|
DC_COPIES |
返回打印機(jī)能夠打印的最大副本數(shù)量 |
|
DC_DATATYPE_PRODUCED |
接收由打印機(jī)支持的一系列數(shù)據(jù)類型。這些類型可作為由StartDoc函數(shù)使用的DOCINFO結(jié)構(gòu)的輸出數(shù)據(jù)類型提供。如這個函數(shù)返回-1,那么支持的唯一數(shù)據(jù)類型就是 RAW 。僅適用于Win95 |
|
DC_DRIVER |
返回打印機(jī)驅(qū)動程序的版本號 |
|
DC_DUPLEX |
如打印機(jī)有雙面打印功能,就返回1;否則返回0 |
|
DC_EMF_COMPLIANT |
如打印機(jī)能直接支持增強(qiáng)型圖元文件,就返回TRUE。僅適用于Win95 |
|
DC_ENUMRESOLUTIONS |
如lpOutput為零,就返回由打印機(jī)支持的分辨率數(shù)量。否則,lpOutput應(yīng)該是一個指向Long型數(shù)組的指針。該數(shù)組至少應(yīng)包含(2×分辨率數(shù)量)個條目。每對條目都反映出水平和垂直分辨率(以每英寸的點(diǎn)數(shù)——dpi——為單位) |
|
DC_EXTRA |
返回與具體設(shè)備有關(guān)的特殊字節(jié),它們要為這個設(shè)備追加到DEVMODE結(jié)構(gòu)后面 |
|
DC_FIELDS |
針對設(shè)備默認(rèn)的DEVMODE數(shù)據(jù)結(jié)構(gòu),返回dmFields字段的值 |
|
DC_FILEDEPENDENCIES |
如lpOutput為零,就返回打印機(jī)驅(qū)動程序要求的文件數(shù)量。否則,lpOutput應(yīng)指向一個至少有(64×文件數(shù))個字節(jié)的緩沖區(qū)。每64個字節(jié)都會保存一個請求文件的NULL中止名稱 |
|
DC_MAXEXTENT |
返回一個Long型值,其中包含打印機(jī)支持的最大紙張長度和寬度。其中,低字(16位)包含的是寬度數(shù)據(jù)。它們是由dmPaperWidth 和 dmPaperLength這兩個DEVMODE字段的最大值 |
|
DC_MINEXTENT |
返回一個Long型值,其中包含打印機(jī)支持的最小紙張長度和寬度。其中,低字(16位)包含的是寬度數(shù)據(jù)。它們是由dmPaperWidth 和 dmPaperLength這兩個DEVMODE字段的最大值 |
|
DC_ORIENTATION |
返回橫向模式和縱向模式間的旋轉(zhuǎn)度數(shù)。如果是零,表示驅(qū)動程序不支持橫向打印模式。對于激光打印機(jī),90度是最常見的一個設(shè)置;而對于點(diǎn)陣式打印機(jī),一般都是270度 |
|
DC_PAPERNAMES |
如lpOutput為零,就返回由打印機(jī)支持的紙張尺寸數(shù)量。否則,lpOutput就應(yīng)指向一個緩沖區(qū)(長度至少為64×紙張尺寸種數(shù))。每64個字節(jié)都會裝載一種支持的紙張尺寸的空中止名稱 |
|
DC_PAPERS |
如lpOutput為零,就返回由打印機(jī)支持的紙張尺寸數(shù)量。否則,lpOutput就應(yīng)指向一個整數(shù)數(shù)組(長度至少為紙張的尺寸種數(shù))。值對應(yīng)于為DEVMODE結(jié)構(gòu)定義的 DMPAPER_??? 常數(shù) |
|
DC_SIZE |
返回打印機(jī)DEVMODE數(shù)據(jù)結(jié)構(gòu)的dmSize字段 |
|
DC_TRUETYPE |
下述常數(shù)之一: |
|
DCTT_BITMAP |
設(shè)備能將TrueType字體當(dāng)作圖形打印 |
|
DCTT_DOWNLOAD |
設(shè)備能下載TrueType字體 |
|
DCTT_OUTLINE |
設(shè)備能下載輪廓型TrueType字體 |
|
DCTT_SUBDEV |
設(shè)備能取代與對應(yīng)的TrueType字體兼容的內(nèi)建字體 |
|
DC_VERSION |
返回設(shè)備驅(qū)動程序的規(guī)格版本號 |