IPrintOemUni::D riverDMS 方法 (prcomoem.h)
IPrintOemUni::DriverDMS
方法可讓轉譯外掛程式用於 Unidrv,以指出其使用裝置管理的繪圖介面。
語法
HRESULT DriverDMS(
PVOID pDevObj,
PVOID pBuffer,
DWORD cbSize,
PDWORD pcbNeeded
);
參數
pDevObj
DEVOBJ 結構的呼叫端提供的指標。
pBuffer
呼叫端提供的緩衝區指標,以接收方法指定的旗標。 (請參閱下列一節。
cbSize
呼叫端提供的緩衝區大小,以位元組為單位,由 pBuffer 所指向。
pcbNeeded
呼叫端提供的位置指標,以接收所需的最小 pBuffer 大小。
傳回值
方法必須傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
|
作業成功。 |
|
作業失敗 |
言論
Unidrv 的轉譯外掛程式必須實作 IPrintOemUni::DriverDMS
方法。 只有在 Unidrv 找到 OEM 轉譯外掛程式的有效介面指標時,才會呼叫 方法。
IPrintOemUni::DriverDMS
方法可讓轉譯外掛程式指出其將使用裝置管理的繪圖介面,而不是預設的 GDI 管理介面。
方法必須在 pBuffer所指向的緩衝區中指定HOOK_前置旗標,指出要針對繪圖介面呼叫哪個外掛程式圖形 DDI 勾點函式。 HOOK_前置旗標定義於winddi.h中,並描述於 EngAssociateSurface 函式的描述中。 由 IPrintOemUni::DriverDMS
unidrv 指定的旗標會由 Unidrv 傳遞至 EngAssociateSurface。 (請注意,若要支援裝置管理的介面,轉譯外掛程式必須勾出所有繪圖功能。如需詳細資訊,請參閱 處理 Device-Managed Surfaces。
如果 IPrintOemUni::DriverDMS
在 pBuffer 所指向的緩衝區中設定旗標,Unidrv 會呼叫 EngCreateDeviceSurface 來建立裝置管理介面。 如果 IPrintOemUni::DriverDMS
未設定任何旗標,Unidrv 會呼叫 EngCreateBitmap來建立 GDI 管理介面。 在這些情況下,IPrintOemUni::DriverDMS
應該傳回S_OK。
如果 cbSize 所指定的輸出緩衝區大小太小,方法應該在 所指向的位置指定所需的大小,呼叫 SetLastError(ERROR_INSUFFICIENT_BUFFER),並傳回E_FAIL。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | prcomoem.h (include Prcomoem.h) |