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 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.

Retornar valor

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

Código de retorno Descrição
S_OK
A operação foi realizada com êxito.
E_FAIL
Falha na operação
E_NOTIMPL
O método não está implementado.

Comentários

O método IPrintOemPS::Command é usado para inserir comandos PostScript no fluxo de dados gerado pelo 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 de impressora envia %%BeginDefaults para o fluxo de dados.
PSINJECT_BEGINPAGESETUP Depois que o driver de impressora envia %%BeginPageSetup para o fluxo de dados.
PSINJECT_BEGINPROLOG Depois que o driver de impressora envia %%BeginProlog para o fluxo de dados.
PSINJECT_BEGINSETUP Depois que o driver de 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 por IPrintOemPS::Command substituem o comentário %%BoundingBox: do driver.
PSINJECT_COMMENTS Antes que o driver de 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 de 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 a seção %%Trailer .

PSINJECT_DOCSUPPLIEDRES Depois que o driver de 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 a seção %%Trailer .

PSINJECT_DOCUMENTPROCESSCOLORS
Quando o driver da impressora estiver pronto para inserir %%DocumentProcessColors:color no fluxo de dados. Os dados fornecidos por IPrintOemPS::Command substituem o comentário %%DocumentProcessColors:color do driver.
PSINJECT_DOCUMENTPROCESSCOLORSATEND
Quando o driver de impressora estiver pronto para inserir %%DocumentProcessColors:(atend) no fluxo de dados. Os dados fornecidos por IPrintOemPS::Command substituem o comentário %%DocumentProcessColors:(atend) do driver.
PSINJECT_ENDDEFAULTS Antes que o driver de impressora envie %%EndDefaults para o fluxo de dados.
PSINJECT_ENDPAGECOMMENTS Antes que o driver de impressora envie %%EndPageComments para o fluxo de dados.
PSINJECT_ENDPAGESETUP Antes que o driver de impressora envie %%EndPageSetup para o fluxo de dados.
PSINJECT_ENDPROLOG Antes que o driver de impressora envie %%EndProlog para o fluxo de dados.
PSINJECT_ENDSETUP Antes que o driver de 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 de 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 por IPrintOemPS::Command substituem o comentário %%Orientation: do driver.
PSINJECT_PAGEBBOX Quando o driver de impressora estiver pronto para inserir %%PageBoundingBox: no fluxo de dados. Os dados fornecidos por IPrintOemPS::Command substituem o comentário %%PageBoundingBox: do driver.
PSINJECT_PAGENUMBER Quando o driver da impressora estiver pronto para inserir %%Page: no fluxo de dados. Os dados fornecidos por IPrintOemPS::Command substituem o comentário %%Page: do driver.
PSINJECT_PAGEORDER Quando o driver da impressora estiver pronto para inserir %%PageOrder: no fluxo de dados. Os dados fornecidos por IPrintOemPS::Command substituem o comentário %%PageOrder: do driver.
PSINJECT_PAGES Quando o driver de impressora estiver pronto para inserir %%Pages:nnn no fluxo de dados. Os dados fornecidos por IPrintOemPS::Command substituem o comentário %%Pages:nnn do driver.
PSINJECT_PAGESATEND Quando o driver da impressora estiver pronto para inserir %%Pages:(atend) no fluxo de dados. Os dados fornecidos por IPrintOemPS::Command substituem o comentário %%Pages:(atend) do driver.
PSINJECT_PAGETRAILER Depois que o driver de impressora envia %%PageTrailer para o fluxo de dados.
PSINJECT_PLATECOLOR Quando o driver da impressora estiver pronto para inserir %%PlateColor:color no fluxo de dados. Os dados fornecidos por IPrintOemPS::Command substituem o comentário %%PlateColor:color do driver.
PSINJECT_PSADOBE Antes que o driver da impressora envie %! PS-Adobe para o fluxo de dados.
PSINJECT_SHOWPAGE Antes que o driver da impressora envie um comando showpage .
PSINJECT_TRAILER Depois que o driver de 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 do PostScript.

Se os métodos IPrintOemPS::Command forem exportados por vários plug-ins de renderização, os métodos serã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 aquele para o qual os dados fornecidos serão acrescentados aos dados fornecidos pelo driver da impressora, cada plug-in será chamado e cada plug-in poderá acrescentar comandos PostScript.

  • Se o ponto de injeção for aquele 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 aquele 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 POSTSCRIPT_INJECTION impressora, nenhum plug-in será chamado.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho prcomoem.h (inclua Prcomoem.h)