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 傳遞至 EngAssociateSurface。 (請注意,若要支援裝置管理的介面,轉譯外掛程式必須連結所有繪圖函式。) 如需詳細資訊,請參閱 處理 Device-Managed Surface。
如果在 IPrintOemUni::DriverDMS
pBuffer 指向的緩衝區中設定旗標,Unidrv 會呼叫 EngCreateDeviceSurface 來建立裝置管理的介面。 如果未 IPrintOemUni::DriverDMS
設定任何旗標,Unidrv 會呼叫 EngCreateBitmap 來建立 GDI 管理的介面。 在這些情況下, IPrintOemUni::DriverDMS
應該傳回S_OK。
如果 cbSize 指定的輸出緩衝區大小太小,方法應該在 由 (ERROR_INSUFFICIENT_BUFFER) 呼叫 SetLastError 的位置指定所需的大小,並傳回E_FAIL。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | prcomoem.h (包括 Prcomoem.h) |