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 によって EngAssociateSurface に渡されます。 (デバイスで管理されるサーフェスをサポートするには、レンダリング プラグインですべての描画関数をフックする必要があることに注意してください)。詳細については、「 Device-Managedサーフェスの処理」を参照してください。

pBuffer が指すバッファー内のフラグを設定する場合IPrintOemUni::DriverDMS、Unidrv は EngCreateDeviceSurface を呼び出してデバイスで管理されるサーフェイスを作成します。 フラグを設定しない場合 IPrintOemUni::DriverDMS 、Unidrv は EngCreateBitmap を呼び出して GDI で管理されるサーフェイスを作成します。 いずれの場合も、 IPrintOemUni::DriverDMS S_OKを返す必要があります。

cbSize で指定された出力バッファー サイズが小さすぎる場合、メソッドは pcbNeeded が指す場所に必要なサイズを指定し、SetLastError(ERROR_INSUFFICIENT_BUFFER) を呼び出して、E_FAILを返す必要があります。

要件

   
対象プラットフォーム デスクトップ
Header prcomoem.h (Prcomoem.h を含む)