共用方式為


IPrintOemPS::Command 方法 (prcomoem.h)

IPrintOemPS::Command 方法是透過轉譯 Microsoft PostScript 印表機驅動程式的外掛程式來使用,以便將 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 方法可用來將 PostScript 命令插入 Microsoft 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: 傳送 %%Trailer 區段之後。

PSINJECT_DOCSUPPLIEDRES 印表機驅動程式將 %%DocumentSuppliedResources: 傳送至數據流,以及資源資訊。 如果 IPrintOemPS::Command 方法傳送資源資訊,則會在驅動程式的資源資訊之後附加至數據流。 專案格式如下:

%%+ResourceTypeResourceNames

印表機驅動程式會傳送 %%DocumentSuppliedResources: 傳送 %%Trailer 區段之後。

PSINJECT_DOCUMENTPROCESSCOLORS
當印表機驅動程式準備好將 %%DocumentProcessColors:color 插入數據流中時。 IPrintOemPS::Command 所提供的數據會取代驅動程式的 %%DocumentProcessColors:color 批注。
PSINJECT_DOCUMENTPROCESSCOLORSATEND
當印表機驅動程式準備好將 %%DocumentProcessColors: () 插入數據流。 IPrintOemPS::Command 所提供的數據會取代驅動程式的 %%DocumentProcessColors: () 批注。
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: (end) 插入資料流。 IPrintOemPS::Command 所提供的數據會取代驅動程式的 %%Pages: () 批注。
PSINJECT_PAGETRAILER 印表機驅動程式將 %%PageTrailer 傳送至數據流之後。
PSINJECT_PLATECOLOR 當印表機驅動程式準備好將 %%PlateColor:color 插入資料流中時。 IPrintOemPS::Command 所提供的數據會取代驅動程式的 %%PlateColor:色彩批注。
PSINJECT_PSADOBE 印表機驅動程式傳送 %! 之前PS-Adobe 至數據流。
PSINJECT_SHOWPAGE 印表機驅動程式傳送 showpage 命令之前。
PSINJECT_TRAILER 印表機驅動程式將 %%Trailer 傳送至數據流之後。
PSINJECT_VMRESTORE 印表機驅動程式傳送 還原 命令之後。 (IPrintOemPS::Command 方法必須重新傳送最後一個PSINJECT_VMSAVE之後傳送的所有資源,如果資源將會重複使用。)
PSINJECT_VMSAVE 印表機驅動程式傳送 儲存 命令之前。 (請參閱 PSINJECT_VMRESTORE.)

IPrintOemPS::Command 方法必須呼叫 IPrintOemDriverPS::D rvWriteSpoolBuf 以插入 PostScript 命令。

如果多個轉譯外掛程式匯出 了 IPrintOemPS::Command 方法,則每次印表機驅動程式到達插入點時,都會依指定外掛程式安裝的順序呼叫方法。 適用的規則如下:

  • 如果插入點是其中一個提供的數據附加至印表機驅動程式所提供的數據,則會呼叫每個外掛程式,並允許每個外掛程式附加 PostScript 命令。

  • 如果插入點是其中一個提供的數據取代印表機驅動程式所提供的數據,則會呼叫外掛程式,直到一個 IPrintOemPS::Command 方法為 dwResult 提供ERROR_SUCCESS為止。 不會呼叫其他外掛程式。 如果所有外掛程式都提供ERROR_NOT_SUPPORTED,則不會取代驅動程式提供的數據。

  • 如果插入點是其中一個提供的數據會取代印表機驅動程式所提供的數據,而且如果應用程式已經使用 POSTSCRIPT_INJECTION 印表機逸出函式來取代驅動程式提供的數據,則不會呼叫任何外掛程式。

規格需求

需求
目標平台 桌面
標頭 prcomoem.h (包含 Prcomoem.h)