共用方式為


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 大小。

傳回值

方法必須傳回下列其中一個值。

傳回碼 描述
S_OK
作業成功。
E_FAIL
作業失敗

言論

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)