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終止字串,以指定紙張源站的名稱。 函式的傳回值應該是傳回數位中的元素數目。 如果 pOutput 為 NULL,函式應該只會傳回所需的陣列元素數目。 |
DC_BINS | pOutput 參數指向函式應該填滿 WORD 陣列的緩衝區。 每個陣列元素都應該包含 DMBIN 前置常數 (或自定義值,) 代表支援的紙張源站。 函式的傳回值應該是傳回數位中的元素數目。 如果 pOutput 為 NULL,函式應該只會傳回所需的陣列元素數目。 |
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 維度) ,以每英吋點為單位。 函式的傳回值應該是支援的解析度數目。 如果 pOutput 為 NULL,函式應該只會傳回支援的解析度數目。 |
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終止字串,指定必須與驅動程式一起安裝的檔名。 函式的傳回值應該是傳回數位中的元素數目。 如果 pOutput 為 NULL,函式應該只會傳回所需的陣列元素數目。 |
DC_MANUFACTURER | 不適用於 NT 型作業系統。 |
DC_MAXEXTENT | 不會使用 pOutput 參數。 此函式應該會傳回 Microsoft Windows SDK 檔) 中所述 (的 POINTS 結構。 結構應該包含 dmPaperWidth (x 維度) 和 dmPaperLength (y 維度的最大允許值,) 印表機 DEVMODEW 結構的成員。 |
DC_MEDIAREADY | pOutput 參數指向函式應該填入字串緩衝區陣列的緩衝區,每個長度為64個字元。 陣列中的每個字串緩衝區都應該包含寬字元的NULL終止字串,指定可供使用的紙張窗體名稱。 函式的傳回值應該是傳回數位中的元素數目。 如果 pOutput 為 NULL,函式應該只會傳回所需的陣列元素數目。 |
DC_MEDIATYPENAMES | pOutput 參數指向函式應該填入字串緩衝區陣列的緩衝區,每個長度為64個字元。 陣列中的每個字串緩衝區都應該包含寬字元的NULL終止字串,指定支援的媒體類型名稱。 函式的傳回值應該是傳回數位中的元素數目。 如果 pOutput 為 NULL,函式應該只會傳回所需的陣列元素數目。 |
DC_MEDIATYPES | pOutput 參數指向函式應該填入 DWORD 陣列的緩衝區。 每個陣列元素都應該包含 DMMEDIA 前置常數 (請參閱代表支援媒體類型的 [DEVMODEW] (/windows/win32/api/wingdi/ns-wingdi-devmodew) 結構) 或自定義值。 函式的傳回值應該是傳回數位中的元素數目。 如果 pOutput 為 NULL,函式應該只會傳回所需的陣列元素數目。 |
DC_MINEXTENT | 不會使用 pOutput 參數。 此函式應該會傳回 (Windows SDK 檔) 中所述的 POINTS 結構。 結構應包含 dmPaperWidth (x 維度) 和 dmPaperLength (y 維度) 印表機 DEVMODEW 結構成員的最小允許值。 |
DC_MODEL | 不適用於 NT 型作業系統。 |
DC_NUP | pOutput 參數指向函式應該填入 DWORD 陣列的緩衝區。 每個陣列元素都應該包含整數,代表 N 向上選項 (,也就是說,每個整數應該代表每個實體頁面支援的文件頁數) 。 函式的傳回值應該是傳回數位中的元素數目。 如果 pOutput 為 NULL,函式應該只會傳回所需的陣列元素數目。 |
DC_ORIENTATION | 不會使用 pOutput 參數。 函式的傳回值應該是從直向產生橫向方向所需的旋轉度數。 值為零表示不支援橫向方向。 |
DC_PAPERNAMES | pOutput 參數指向函式應該填入字元串緩衝區陣列的緩衝區,每64個字元的長度。 陣列中的每個字串緩衝區都應該包含寬字元、以NULL 結尾的字串,以指定紙張窗體的名稱。 函式的傳回值應該是傳回數位列中的項目數目。 如果 pOutput 為 NULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_PAPERS | pOutput 參數會指向函式應該填入 WORD 陣列的緩衝區。 每個陣列元素都應該包含 DMPAPER 前置常數 (或自定義值,) 代表支援的紙張形式。 函式的傳回值應該是傳回數位列中的項目數目。 如果 pOutput 為 NULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_PAPERSIZE | pOutput 參數會指向函式應該填入 POINT 陣列的緩衝區。 每個陣列元素都應該包含表單紙張大小的 x 和 y 維度,以直向為單位 0.1 公厘。 函式的傳回值應該是傳回數位列中的項目數目。 如果 pOutput 為 NULL,則函式應該只會傳回所需的陣列元素數目。 |
DC_PERSONALITY | pOutput 參數指向函式應該填入字元串緩衝區陣列的緩衝區,每32個字元的長度。 數位中的每個字串緩衝區都應該包含寬字元、NULL 終止的字串,指定印表機支援 (印表機描述語言,例如 L“HP-GL/2”) 。 函式的傳回值應該是傳回數位列中的項目數目。 如果 pOutput 為 NULL,則函式應該只會傳回所需的陣列元素數目。 |
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) |