DeviceCapabilities

此頁沒有內(nèi)容條目
內(nèi)容

DeviceCapabilities

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ù)組的指針

設(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ī)格版本號

Top