Share via


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-devmodew) 結構的 dmFields 成員。 dmFields 成員表示印表機驅動程式支援 DEVMODEW 結構的裝置獨立部分中的哪些成員。
DC_FILEDEPENDENCIES pOutput 參數指向函式應該填入字串緩衝區陣列的緩衝區,每個長度為64個字元。 數位中的每個字串緩衝區都應該包含寬字元的NULL終止字串,指定必須與驅動程式一起安裝的檔名。 函式的傳回值應該是傳回數位中的元素數目。 如果 pOutputNULL,函式應該只會傳回所需的陣列元素數目。
DC_MANUFACTURER 不適用於 NT 型作業系統。
DC_MAXEXTENT 不會使用 pOutput 參數。 此函式應該會傳回 Microsoft Windows SDK 檔) 中所述 (的 POINTS 結構。 結構應該包含 dmPaperWidth (x 維度) 和 dmPaperLength (y 維度的最大允許值,) 印表機 DEVMODEW 結構的成員。
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 參數。 此函式應該會傳回 (Windows SDK 檔) 中所述的 POINTS 結構。 結構應包含 dmPaperWidth (x 維度) 和 dmPaperLength (y 維度) 印表機 DEVMODEW 結構成員的最小允許值。
DC_MODEL 不適用於 NT 型作業系統。
DC_NUP pOutput 參數指向函式應該填入 DWORD 陣列的緩衝區。 每個陣列元素都應該包含整數,代表 N 向上選項 (,也就是說,每個整數應該代表每個實體頁面支援的文件頁數) 。 函式的傳回值應該是傳回數位中的元素數目。 如果 pOutputNULL,函式應該只會傳回所需的陣列元素數目。
DC_ORIENTATION 不會使用 pOutput 參數。 函式的傳回值應該是從直向產生橫向方向所需的旋轉度數。 值為零表示不支援橫向方向。
DC_PAPERNAMES pOutput 參數指向函式應該填入字元串緩衝區陣列的緩衝區,每64個字元的長度。 陣列中的每個字串緩衝區都應該包含寬字元、以NULL 結尾的字串,以指定紙張窗體的名稱。 函式的傳回值應該是傳回數位列中的項目數目。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。
DC_PAPERS pOutput 參數會指向函式應該填入 WORD 陣列的緩衝區。 每個陣列元素都應該包含 DMPAPER 前置常數 (或自定義值,) 代表支援的紙張形式。 函式的傳回值應該是傳回數位列中的項目數目。 如果 pOutputNULL,則函式應該只會傳回所需的陣列元素數目。
DC_PAPERSIZE pOutput 參數會指向函式應該填入 POINT 陣列的緩衝區。 每個陣列元素都應該包含表單紙張大小的 xy 維度,以直向為單位 0.1 公厘。 函式的傳回值應該是傳回數位列中的項目數目。 如果 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 - 頁面/分鐘。 PRINTRATEUNIT_CPS - chars./sec. PRINTRATEUNIT_LPM - lines/min. PRINTRATEUNIT_IPM - 英吋/分鐘。
DC_SIZE 不會使用 pOutput 參數。 函式的傳回值應該是驅動程序內部 [DEVMODEW] (/windows/win32/api/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-devmodew) 結構的 dmSpecVersion 成員。

[out] pOutput

呼叫端提供的緩衝區指標,用來接收函式提供的資訊。 緩衝區的使用取決於 針對 Capability 參數收到的值。

[in, optional] pDevmode

描述目前列印作業特性之 DEVMODEW 結構的呼叫端提供指標。 如果此參數為 NULL,DrvDeviceCapabilities 會擷取指定印表機驅動程式目前的預設初始化值,例如列印佇列的用戶預設 DEVMODEW 結構。

傳回值

函式的傳回值取決於 針對 Capability 參數收到的值。 如果收到的 Capability 值代表驅動程式不支援的功能,或遇到錯誤,函式應該會傳回GDI_ERROR。

規格需求

需求
目標平台 桌面
標頭 winddiui.h (包含Winddiui.h)