次の方法で共有


IPrintOemPS::Command メソッド (prcomoem.h)

IPrintOemPS::Command メソッドは、印刷ジョブのデータ ストリームに PostScript コマンドを挿入するために、Microsoft PostScript プリンター ドライバーのプラグインをレンダリングすることによって使用されます。

構文

HRESULT Command(
        PDEVOBJ   pdevobj,
        DWORD     dwIndex,
        PVOID     pData,
        DWORD     cbSize,
  [out] OUT DWORD *pdwResult
);

パラメーター

pdevobj

呼び出し元が指定した DEVOBJ 構造体へのポインター。

dwIndex

印刷ジョブのデータ ストリーム内の現在の挿入ポイントを表す呼び出し元から指定された値。 詳細については、「解説」を参照してください。

pData

使用しません。

cbSize

使用しません。

[out] pdwResult

挿入操作の結果を示すメソッド指定の値を受け取ります。 挿入が成功した場合は、この値をERROR_SUCCESSする必要があります。 挿入が失敗した場合、値は winerror.h で定義されているエラー コードのいずれかである必要があります。 メソッドが指定した dwIndex 値のデータを挿入しようとしない場合は、値をERROR_NOT_SUPPORTEDする必要があります。

戻り値

メソッドは、次のいずれかの値を返す必要があります。

リターン コード 説明
S_OK
操作が成功しました。
E_FAIL
操作に失敗しました
E_NOTIMPL
このメソッドは実装されていません。

注釈

IPrintOemPS::Command メソッドは、Microsoft PostScript プリンター ドライバーによって生成されたデータ ストリームに PostScript コマンドを挿入するために使用されます。 このメソッドを指定する場合は、レンダリング プラグインで定義する必要があります。

IPrintOemPS::Command メソッドが呼び出されると、その dwIndex パラメーターは、印刷ジョブのデータ ストリーム内の現在の挿入ポイントを指定します。 メソッドでは、この値を使用して、実行する操作 (ある場合) を決定する必要があります。 wingdi.h で定義されているインデックス値を次の表に示します。

インデックス値 受信日時
PSINJECT_BEGINDEFAULTS プリンター ドライバーが %%BeginDefaults をデータ ストリームに送信した後。
PSINJECT_BEGINPAGESETUP プリンター ドライバーが %%BeginPageSetup をデータ ストリームに送信した後。
PSINJECT_BEGINPROLOG プリンター ドライバーが %%BeginProlog をデータ ストリームに送信した後。
PSINJECT_BEGINSETUP プリンター ドライバーが %%BeginSetup をデータ ストリームに送信した後。
PSINJECT_BEGINSTREAM プリンター ドライバーがデータ ストリームの最初のバイトを送信する前に。
PSINJECT_BOUNDINGBOX プリンター ドライバーが %%BoundingBox: をデータ ストリームに挿入する準備ができたら。 IPrintOemPS::Command によって提供されるデータは、ドライバーの %%BoundingBox: コメントに置き換えられます。
PSINJECT_COMMENTS プリンター ドライバーが %%EndComments をデータ ストリームに送信する前に。
PSINJECT_DLFONT 印刷ドライバーがソフト フォントをダウンロードする前に。
PSINJECT_DOCNEEDEDRES プリンター ドライバーが %%DocumentNeededResources: をリソース情報と共にデータ ストリームに送信した後。 IPrintOemPS::Command メソッドがリソース情報を送信すると、ドライバーのリソース情報の後にストリームに追加されます。 エントリの形式は次のとおりです。

%%+ResourceTypeResourceNames

プリンター ドライバーは、%%トレーラー セクションの送信後に %%DocumentNeededResources: を送信します。

PSINJECT_DOCSUPPLIEDRES プリンター ドライバーが %%DocumentSuppliedResources: をリソース情報と共にデータ ストリームに送信した後。 IPrintOemPS::Command メソッドがリソース情報を送信すると、ドライバーのリソース情報の後にストリームに追加されます。 エントリの形式は次のとおりです。

%%+ResourceTypeResourceNames

プリンター ドライバーは 、%%DocumentSuppliedResources:%%Trailer セクションの送信後に送信します。

PSINJECT_DOCUMENTPROCESSCOLORS
プリンター ドライバーが %%DocumentProcessColors:color をデータ ストリームに挿入する準備ができたら。 IPrintOemPS::Command によって提供されるデータは、ドライバーの %%DocumentProcessColors:color コメントに置き換えられます。
PSINJECT_DOCUMENTPROCESSCOLORSATEND
プリンター ドライバーが %%DocumentProcessColors:(atend) をデータ ストリームに挿入する準備ができたら。 IPrintOemPS::Command によって提供されるデータは、ドライバーの %%DocumentProcessColors:(atend) コメントに置き換えられます。
PSINJECT_ENDDEFAULTS プリンター ドライバーが %%EndDefaults をデータ ストリームに送信する前に。
PSINJECT_ENDPAGECOMMENTS プリンター ドライバーが %%EndPageComments をデータ ストリームに送信する前に。
PSINJECT_ENDPAGESETUP プリンター ドライバーが %%EndPageSetup をデータ ストリームに送信する前に。
PSINJECT_ENDPROLOG プリンター ドライバーが %%EndProlog を データ ストリームに送信する前に。
PSINJECT_ENDSETUP プリンター ドライバーが %%EndSetup をデータ ストリームに送信する前に。
PSINJECT_ENDSTREAM プリンター ドライバーがデータ ストリームの最後のバイトを送信した後。
PSINJECT_EOF プリンター ドライバーが %%EOF をデータ ストリームに送信した後。
PSINJECT_ORIENTATION プリンター ドライバーが %%Orientation: をデータ ストリームに挿入する準備ができたら。 IPrintOemPS::Command によって提供されるデータは、ドライバーの %%Orientation: コメントに置き換えられます。
PSINJECT_PAGEBBOX プリンター ドライバーが %%PageBoundingBox を データ ストリームに挿入する準備ができたら。 IPrintOemPS::Command によって提供されるデータは、ドライバーの %%PageBoundingBox: コメントに置き換えられます。
PSINJECT_PAGENUMBER プリンター ドライバーが %%Page: をデータ ストリームに挿入する準備ができたら。 IPrintOemPS::Command によって提供されるデータは、ドライバーの %%Page: コメントに置き換えられます。
PSINJECT_PAGEORDER プリンター ドライバーが %%PageOrder: をデータ ストリームに挿入する準備ができたら。 IPrintOemPS::Command によって提供されるデータは、ドライバーの %%PageOrder: コメントに置き換えられます。
PSINJECT_PAGES プリンター ドライバーがデータ ストリームに %%Pages:nnn を挿入する準備ができたら。 IPrintOemPS::Command によって提供されるデータは、ドライバーの %%Pages:nnn コメントに置き換えられます。
PSINJECT_PAGESATEND プリンター ドライバーがデータ ストリームに %%Pages:(atend) を挿入する準備ができたら。 IPrintOemPS::Command によって提供されるデータは、ドライバーの %%Pages:(atend) コメントに置き換えられます。
PSINJECT_PAGETRAILER プリンター ドライバーが %%PageTrailer をデータ ストリームに送信した後。
PSINJECT_PLATECOLOR プリンター ドライバーがデータ ストリームに %%PlateColor:color を挿入する準備ができたら。 IPrintOemPS::Command によって提供されるデータは、ドライバーの %%PlateColor:color コメントに置き換えられます。
PSINJECT_PSADOBE プリンター ドライバーが %! を送信する前に PS-Adobe からデータ ストリームへ。
PSINJECT_SHOWPAGE プリンター ドライバーが showpage コマンドを送信する前に。
PSINJECT_TRAILER プリンター ドライバーが %%Trailer をデータ ストリームに送信した後。
PSINJECT_VMRESTORE プリンター ドライバーが 復元 コマンドを送信した後。 (リソースを再利用する場合は、最後のPSINJECT_VMSAVEの後に送信されたすべてのリソースを IPrintOemPS::Command メソッドで再送信する必要があります)。
PSINJECT_VMSAVE プリンター ドライバーが 保存 コマンドを送信する前に。 (「PSINJECT_VMRESTORE」を参照)。

IPrintOemPS::Command メソッドは、PostScript コマンドを挿入するために IPrintOemDriverPS::D rvWriteSpoolBuf を呼び出す必要があります。

IPrintOemPS::Command メソッドが複数のレンダリング プラグインによってエクスポートされる場合、プリンター ドライバーが挿入ポイントに到達するたびに、インストール用にプラグインが指定された順序でメソッドが呼び出されます。 次の規則が適用されます。

  • 挿入ポイントがプリンター ドライバーが提供するデータに指定されたデータが追加される場合、各プラグインが呼び出され、各プラグインで PostScript コマンドの追加が許可されます。

  • 挿入ポイントがプリンター ドライバーが提供するデータを置き換えるデータの挿入ポイントである場合、1 つの IPrintOemPS::Command メソッドが dwResult にERROR_SUCCESSを提供するまで、プラグインが呼び出されます。 他のプラグインは呼び出されません。 すべてのプラグインがERROR_NOT_SUPPORTEDを指定した場合、ドライバーが提供するデータは置き換えされません。

  • 挿入ポイントがプリンター ドライバーが提供するデータを置き換えるデータの挿入ポイントである場合、また、 POSTSCRIPT_INJECTIONプリンター エスケープ 関数を使用して、アプリケーションが既にドライバーから提供されたデータを置き換えた場合、プラグインは呼び出されません。

要件

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