次の方法で共有


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 サーフェスの処理」を参照してください。

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

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

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー prcomoem.h (Prcomoem.h を含む)