使用英语阅读

通过


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

打印机驱动程序在发送 %%Trailer 节后发送 %%DocumentNeededResources:

PSINJECT_DOCSUPPLIEDRES 打印机驱动程序发送 %%DocumentSuppliedResources后: 数据流以及资源信息。 如果 IPrintOemPS::Command 方法发送资源信息,则会在驱动程序的资源信息之后将其追加到流中。 条目格式如下所示:

%%+ ResourceTypeResourceNames

打印机驱动程序发送 %%DocumentSuppliedResources:发送 %%Trailer 节后

PSINJECT_DOCUMENTPROCESSCOLORS
打印机驱动程序准备好在数据流中插入 %%DocumentProcessColors:颜色IPrintOemPS::Command 提供的数据将替换驱动程序的 %%DocumentProcessColors:颜色 注释。
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:颜色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 (include Prcomoem.h)