Partilhar via


Método IPrintOemPS::Command (prcomoem.h)

O método IPrintOemPS::Command é usado pela renderização de plug-ins para o driver de impressora Do Microsoft PostScript, a fim de inserir comandos PostScript no fluxo de dados do trabalho de impressão.

Sintaxe

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

Parâmetros

pdevobj

Ponteiro fornecido pelo chamador para uma estrutura de DEVOBJ.

dwIndex

Valor fornecido pelo chamador que representa o ponto de injeção atual no fluxo de dados do trabalho de impressão. Para obter mais informações, consulte a seção Comentários a seguir.

pData

Não usado.

cbSize

Não usado.

[out] pdwResult

Recebe um valor fornecido pelo método que indica o resultado da operação de inserção. Se a inserção for bem-sucedida, esse valor deverá ser ERROR_SUCCESS. Se a inserção falhar, o valor deverá ser um dos códigos de erro definidos em winerror.h. Se o método não tentar inserir dados para um valor dwIndex especificado, o valor deverá ser ERROR_NOT_SUPPORTED.

Valor de retorno

O método deve retornar um dos valores a seguir.

Código de retorno Descrição
S_OK
A operação foi bem-sucedida.
E_FAIL
Falha na operação
E_NOTIMPL
O método não é implementado.

Observações

O método IPrintOemPS::Command é usado para inserir comandos PostScript no fluxo de dados gerado pelo do Driver de Impressora PostScript da Microsoft. Se você quiser fornecer esse método, deverá defini-lo em um plug-in de renderização.

Quando o método IPrintOemPS::Command é chamado, seu parâmetro dwIndex especifica o ponto de injeção atual dentro do fluxo de dados do trabalho de impressão. O método deve usar esse valor para determinar qual operação, se houver, deve ser executada. Os valores de índice, que são definidos em wingdi.h, são listados na tabela a seguir.

Valor do índice Quando recebido
PSINJECT_BEGINDEFAULTS Depois que o driver da impressora envia %%BeginDefaults para o fluxo de dados.
PSINJECT_BEGINPAGESETUP Depois que o driver da impressora envia %%BeginPageSetup para o fluxo de dados.
PSINJECT_BEGINPROLOG Depois que o driver da impressora envia %%BeginProlog para o fluxo de dados.
PSINJECT_BEGINSETUP Depois que o driver da impressora envia %%BeginSetup para o fluxo de dados.
PSINJECT_BEGINSTREAM Antes que o driver da impressora envie o primeiro byte do fluxo de dados.
PSINJECT_BOUNDINGBOX Quando o driver da impressora estiver pronto para inserir %%BoundingBox: no fluxo de dados. Os dados fornecidos pelo IPrintOemPS::Command substitui o %%BoundingBoxdo driver: comentário.
PSINJECT_COMMENTS Antes que o driver da impressora envie %%EndComments para o fluxo de dados.
PSINJECT_DLFONT Antes que o driver de impressão baixe uma fonte flexível.
PSINJECT_DOCNEEDEDRES Depois que o driver da impressora envia %%DocumentNeededResources: para o fluxo de dados, juntamente com as informações do recurso. Se o método IPrintOemPS::Command enviar informações de recurso, ele será acrescentado ao fluxo após as informações de recurso do driver. O formato de entrada é o seguinte:

%%+ ResourceTypeResourceNames

O driver da impressora envia %%DocumentNeededResources: depois de enviar %%Trailer seção.

PSINJECT_DOCSUPPLIEDRES Depois que o driver da impressora envia %%DocumentSuppliedResources: para o fluxo de dados, juntamente com as informações do recurso. Se o método IPrintOemPS::Command enviar informações de recurso, ele será acrescentado ao fluxo após as informações de recurso do driver. O formato de entrada é o seguinte:

%%+ ResourceTypeResourceNames

O driver da impressora envia %%DocumentSuppliedResources: depois de enviar %%Trailer seção.

PSINJECT_DOCUMENTPROCESSCOLORS
Quando o driver da impressora estiver pronto para inserir %%DocumentProcessColors:cor no fluxo de dados. Os dados fornecidos pelo IPrintOemPS::Command substitui o %%DocumentProcessColorsdo driver:cor comentário.
PSINJECT_DOCUMENTPROCESSCOLORSATEND
Quando o driver da impressora estiver pronto para inserir %%DocumentProcessColors:(atend) no fluxo de dados. Os dados fornecidos pelo IPrintOemPS::Command substitui o %%DocumentProcessColorsdo driver: comentário(atend).
PSINJECT_ENDDEFAULTS Antes que o driver da impressora envie %%EndDefaults para o fluxo de dados.
PSINJECT_ENDPAGECOMMENTS Antes que o driver da impressora envie %%EndPageComments para o fluxo de dados.
PSINJECT_ENDPAGESETUP Antes que o driver da impressora envie %%EndPageSetup para o fluxo de dados.
PSINJECT_ENDPROLOG Antes que o driver da impressora envie %%EndProlog para o fluxo de dados.
PSINJECT_ENDSETUP Antes que o driver da impressora envie %%EndSetup para o fluxo de dados.
PSINJECT_ENDSTREAM Depois que o driver da impressora envia o último byte do fluxo de dados.
PSINJECT_EOF Depois que o driver da impressora envia %%EOF para o fluxo de dados.
PSINJECT_ORIENTATION Quando o driver da impressora estiver pronto para inserir %%Orientation: no fluxo de dados. Os dados fornecidos pelo IPrintOemPS::Command substitui o %%Orientationdo driver: comentário.
PSINJECT_PAGEBBOX Quando o driver da impressora estiver pronto para inserir %%PageBoundingBox: no fluxo de dados. Os dados fornecidos pelo IPrintOemPS::Command substitui o %%PageBoundingBoxdo driver: comentário.
PSINJECT_PAGENUMBER Quando o driver da impressora estiver pronto para inserir %%Page: no fluxo de dados. Os dados fornecidos pelo IPrintOemPS::Command substitui o %%Pagedo driver: comentário.
PSINJECT_PAGEORDER Quando o driver da impressora estiver pronto para inserir %%PageOrder: no fluxo de dados. Os dados fornecidos pelo IPrintOemPS::Command substitui o %%PageOrderdo driver: comentário.
PSINJECT_PAGES Quando o driver da impressora estiver pronto para inserir %%Pages:nnn no fluxo de dados. Os dados fornecidos pelo IPrintOemPS::Command substitui o %%Pagesdo driver:nnn comentário.
PSINJECT_PAGESATEND Quando o driver da impressora estiver pronto para inserir %%Pages:(atend) no fluxo de dados. Os dados fornecidos pelo IPrintOemPS::Command substitui o %%Pagesdo driver: comentário(atend).
PSINJECT_PAGETRAILER Depois que o driver da impressora envia %%PageTrailer para o fluxo de dados.
PSINJECT_PLATECOLOR Quando o driver da impressora estiver pronto para inserir %%PlateColor:cor no fluxo de dados. Os dados fornecidos pelo IPrintOemPS::Command substitui o %%PlateColordo driver:cor comentário.
PSINJECT_PSADOBE Antes que o driver da impressora envie %! O PS-Adobe ao fluxo de dados.
PSINJECT_SHOWPAGE Antes que o driver da impressora envie um comando showpage.
PSINJECT_TRAILER Depois que o driver da impressora envia %%Trailer para o fluxo de dados.
PSINJECT_VMRESTORE Depois que o driver da impressora envia um comando de restauração . (O método IPrintOemPS::Command deve reenviar todos os recursos enviados após a última PSINJECT_VMSAVE, se os recursos forem reutilizados.)
PSINJECT_VMSAVE Antes que o driver da impressora envie um comando salvar. (Consulte PSINJECT_VMRESTORE.)

O método IPrintOemPS::Command deve chamar IPrintOemDriverPS::D rvWriteSpoolBuf para inserir os comandos PostScript.

Se métodos IPrintOemPS::Command são exportados por vários plug-ins de renderização, os métodos são chamados na ordem em que os plug-ins são especificados para instalação, sempre que o driver da impressora atinge um ponto de injeção. As seguintes regras se aplicam:

  • Se o ponto de injeção for um para o qual os dados fornecidos serão acrescentados aos dados fornecidos pelo driver de impressora, cada plug-in será chamado e cada plug-in poderá acrescentar comandos PostScript.

  • Se o ponto de injeção for um para o qual os dados fornecidos substituem os dados fornecidos pelo driver da impressora, os plug-ins serão chamados até que um método IPrintOemPS::Command forneça ERROR_SUCCESS para dwResult. Nenhum outro plug-in é chamado. Se todos os plug-ins fornecerem ERROR_NOT_SUPPORTED, os dados fornecidos pelo driver não serão substituídos.

  • Se o ponto de injeção for um para o qual os dados fornecidos substituirão os dados fornecidos pelo driver de impressora e se um aplicativo já tiver substituído os dados fornecidos pelo driver usando a função de escape da impressora POSTSCRIPT_INJECTION, nenhum plug-in será chamado.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho prcomoem.h (inclua Prcomoem.h)