DeviceCapabilities

DeviceCapabilities,該函式檢索印表機設備驅動器的性能。

函式功能

函式檢索印表機設備驅動器的性能。

函式原型

DWORD DeviceCapabilities(LPCTSTR pDevice, LPCTSTR pPort, WORD fwCapability, LPTSTR pOutput, CONST DEVMODE *pDevMode);

主要參數

pDevice:指向以null結尾的字元串的指針,該字元串包含印表機名,注意是印表機名,而不是列印驅動器名。
nPort:指向以null結尾的字元串的指針,該字元串包含了設備連線的通訊口的名字,如LPT1。
fwCapablity:指定要查詢的性能,該參數可取下列值之一:
DC_BINADJUST:Windows 95檢索在DEVMODE結構中指定的紙張資源的頁面位置,DEVMODE結構由指定,返回值可能如下:
DCBA_FACEDOWNCENTER, DCBA_FACEUPCENTER, DCBA_FACEUPLEFT, DCBA_FACEUPRIGHT, DCBA_FACEDOWNNONE, DCBA_FACEDOWNCENTER, DCBA_FACEDOWNLEFT, DCBA_FACEDOWNRIGHT, windows 98不支持。
DC_BINNAMES:拷貝一個包含一系列紙張接收器名的數組。這個數組的格式為char PaperName [cBinMax] [cchBinName],其中cchBinName為24。如果pOutput參數為NULL,返回值是所需的接收器項數,否則返回值是接收器的拷貝數。
DC_BINS:檢索一系列可用的紙張接收器,該函式把列表作為一個WORD數組拷貝到pOutput參數中,如果pOutput為NULL,則函式返回所支持的接收器的數目,以使應用程式有機會分配準確尺寸的緩衝區,至於有關接收器的更多信息,請參見結構的元素的描述。
DC_COPIES:返回設備可以列印的拷貝數。DC_DRIVER返回列印驅動程式的版本數。
DC_DATATYPE_PRODUCED:在Windows 95中返回值是列印驅動程式支持的數據類型數,如果函式返回-1,驅動程式只能理解RAW數據類型,被支持的數據類型名拷貝到一個數組中,在調用StartDoc函式指定該數據類型時,使用DOCINFO結構中的名字。Windows 98不支持。
DC_DUPLEX:返回雙向支持的級別,如果印表機有雙向列印的能力,函式返回1,否則值為零。
DC_EMF_COMPLIANT:在Windows 95中確定印表機驅動程式是否支持增強圖元檔案(EMF),返回值為1表明印表機驅動支持EMF,-1表示不支持EMF,Windows 98不支持。
DC_ENUMRESOLUTIONS:返回一系列可用的解析度,如果pOutput為Null,則函式返回可用的解析度配置,解析度由一對LONG類型整數來分別表示水平和垂直解析度(每英寸點數)。
DC_EXTRA:返回列印驅動DEVMODE結構的設備專用部分所需的位元組。
DC_FIELDS:返回列印驅動DEVMODE結構的dmFields元素。DmFilelds元素指定結構的設備無關部分中哪些成員是列印驅動支持的。
DC_FILEFEPENDENCIES:返回安裝驅動程式時必須裝載的系列檔案。如果pOutput參數為Null函式返回檔案個數,否則pOutput用char [chFileName, 64]形式指向一個檔案名稱數組,每個檔案名稱都是以Null結束的字元串。
DC_MAXEXTENT:返回POINTS結構,該結構包含印表機驅動程式的DEVMODE結構的dmPaperLength和dmPaperWidth元素可指定的最大紙張規格,POINTS結構的X元素包含最大dmPaperWidth值。Y元素包含最大dmPaperLength值。
DC_MINEXTENT:返回POINTS結構,該結構包含印表機驅動程式的DEVMODE結構的dmPaperLengh和dmPaperWidth元素可指定的最小紙張規格,POINTS結構的x元素包含最大dmPaperWidth值,y元素包含最大dmPaperLength值。
DC_ORIETATION:返回設備縱向和橫向列印之間的關係,以縱向列印逆時針旋轉產生橫向列印時旋轉的度數來表示,返回值如下:
0:沒有橫向,90:縱向旋轉90度產生橫向,270:縱向旋轉270度產生橫向。
DC_PAPERNAMES:檢索一系列支持的紙名(如Letter或Lega)。如果pOutput參數為Null,則函式返回可用的印表機規格數。否則pOutput以char [cpaperNames, 64]的形式指向一個列印紙名數組,每一個紙張名都是以null結束的字元串。
DC_PAPERS:檢索一系列支持的紙張規格,函式把列表作為一個WORD數組拷貝到pOutput中,並且返回數組中的項數。如果pOutput為Null,則函式返回所支持的紙張規格數以使應用程式有機會分配準確尺寸的緩衝區,有關列印紙規格的更多信息,請參見DEVMOVE結構中關於dmPagerSize成員的描述。
DC_PAPERSIZE:以十分之一毫米為單位,把所有支持的印表機尺寸,拷貝到由pOutput參數指定的POINT結構數組中去。如果印表機在DMORIENT_PORTRAIT方向,則返回紙張尺雨的寬(x維)和長(y維)。
DC_SIZE:返回印表機驅動程式DEVMODE結構的dmSize元素值。
DC_TRUETYPE:檢索驅動程式使用TrueType字型的能力,對於DC_TRUETYPE,pOutput參數應為NULL,返回如下一值或多值,其值的含義為:
DCTT_BITMAP:設備可以按圖形方式列印TrueType字型。DCTT_DOWNLOAD:設備能夠卸載TrueType字型。
DCTT_DOWNLOAD_OUTLINE:在Windows 95和Windows 98中設備可以卸載TrueType字型。
DCTT_SUBDEV:設備可以用TrueType字型替代設備字型。
DC_VERSION:返回印表機驅動程式遵循的指定版本。
Poutput:指向一個位元組數組,數組的格式依賴於fwCapabilities參數的設定。如果pOutput為零,則DeiceCapabilities返回輸出數據所需的位元組數。
PdevMode:指向一個DEVMODE結構,如果該參數為NULL,DeviceCapabilities則檢索指定印表機驅動程式的當前預設的初始化值,否則該函式檢索包含在由pDevMode指向的結構中的值。
返回值:如果成功,返回值依賴於fwCapabilities參數的設定,如果失敗,則返回C1。
Windows NT:若想獲得更多錯誤信息,請調用GetLastError函式。
注釋:在16位Windows版本中,DeviceCapabilities函式在印表機驅動程式中執行,並且需要調用LoadLibrary和GetProcAddress函式得到該函式的指針,但這些都不再需要了。因為DeviceCapabilities是WinAPI的一部分。
在印表機驅動程式中不需要調用LoadLibraryp函式,由DevMode參數指向的DEVMODE結構,可以通過調用DocumentProperties函式而得到。
速查:Windows NT:3.1及以上版本;Windows:不支持;Windows CE:不支持;頭檔案:wingdi.h;庫檔案:winspool.lib;Unicode:在Windows NT上實現為Unicode和ANSI兩種版本。

相關詞條

相關搜尋

熱門詞條

聯絡我們