Метод 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.
Возвращаемое значение
Метод должен возвращать одно из следующих значений.
Возвращаемый код | Описание |
---|---|
|
Операция завершилась успешно. |
|
Сбой операции |
|
Метод не реализован. |
Замечания
Метод 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) |