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 サーフェスの処理」を参照してください。
IPrintOemUni::DriverDMS
pBuffer が指すバッファー内のフラグを設定すると、Unidrv は EngCreateDeviceSurface を呼び出してデバイス管理サーフェスを作成します。 フラグが設定されていない場合 IPrintOemUni::DriverDMS
、Unidrv は EngCreateBitmap を呼び出して GDI で管理されるサーフェイスを作成します。 どちらの場合も、 IPrintOemUni::DriverDMS
は S_OKを返す必要があります。
cbSize で指定された出力バッファー サイズが小さすぎる場合、メソッドは pcbNeeded が指す場所に必要なサイズを指定し、SetLastError(ERROR_INSUFFICIENT_BUFFER) を呼び出して、E_FAILを返す必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | prcomoem.h (Prcomoem.h を含む) |