Поделиться через


Метод 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 dwIn dex, значение должно быть 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:цвет в поток данных. Данные, предоставленные 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 предоставляет ERROR_SUCCESS для dwResult. Другие подключаемые модули не вызываются. Если все подключаемые модули предоставляют ERROR_NOT_SUPPORTED, данные, предоставленные драйвером, не заменяются.

  • Если точка внедрения является одной из них, для которой предоставленные данные заменяют данные, предоставляемые драйвером принтера, и если приложение уже заменило предоставленные драйвером данные с помощью функции escape-обхода принтера POSTSCRIPT_INJECTION, подключаемые модули не вызываются.

Требования

Требование Ценность
целевая платформа Настольный
заголовка prcomoem.h (include Prcomoem.h)