Compartilhar via


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

O método IPrintOemPS::EnableDriver permite que um plug-in de renderização para Pscript conecte algumas funções DDI gráficas.

Sintaxe

HRESULT EnableDriver(
  DWORD          DriverVersion,
  DWORD          cbSize,
  PDRVENABLEDATA pded
);

Parâmetros

DriverVersion

Número de versão da interface fornecida pelo chamador. Esse valor é definido por PRINTER_OEMINTF_VERSION, em printoem.h.

cbSize

Tamanho fornecido pelo chamador, em bytes, da estrutura apontada pelo pded.

pded

Ponteiro fornecido pelo chamador para uma estrutura DRVENABLEDATA .

Retornar valor

O método deve retornar um dos seguintes valores:

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::EnableDriver permite que um plug-in de renderização execute os mesmos tipos de operações que a função DrvEnableDriver exportada por DLLs de gráficos de impressora.

Assim como a função DrvEnableDriver , o método IPrintOemPS::EnableDriver é responsável por fornecer endereços de funções DDI gráficas com suporte interno, conhecidas como funções de conexão. Ele também pode executar outras operações de inicialização única. Ao contrário da função DrvEnableDriver , a implementação do método IPrintOemPS::EnableDriver é opcional.

Se você implementar IPrintOemPS::EnableDriver, também deverá implementar IPrintOemPS::D isableDriver. As ações iniciadas no método anterior podem precisar ser concluídas no último método. Por exemplo, se um buffer grande for alocado em IPrintOemPS::EnableDriver, mas não desalocado em IPrintOemPS::D isableDriver, poderá ocorrer um vazamento de memória.

O método deve preencher a estrutura DRVENABLEDATA fornecida e alocar uma matriz de estruturas DRVFN . Ele deve preencher a matriz com ponteiros para funções de conexão, juntamente com valores de índice definidos por winddi.h que identificam as funções DDI de elementos gráficos fisgados.

Um plug-in de renderização para Pscript5 só poderá conectar uma função DDI gráfica se o driver Pscript5 definir a função. As seguintes funções DDI gráficas são definidas em Pscript5 e ou Unidrv e, portanto, podem ser conectadas:

Se você fornecer uma função de gancho personalizada, ela antecipará a função DDI de elementos gráficos equivalentes do driver. As funções de conexão também podem chamar de volta para as funções DDI de elementos gráficos do driver. Para obter mais informações, consulte Funções DDI de gráficos personalizados.

As funções de gancho personalizadas têm os mesmos parâmetros de entrada e saída que a função DDI de elementos gráficos equivalentes, com uma exceção : em que as funções DDI de gráficos recebem ponteiros PDEV, as funções de gancho personalizadas recebem ponteiros DEVOBJ . Há duas maneiras para essas funções receberem ponteiros PDEV:

  1. Como o conteúdo do membro dhpdev de uma estrutura SURFOBJ para a superfície de destino. Para a função de gancho personalizada equivalente, o membro dhpdev da estrutura SURFOBJ de destino aponta para uma estrutura DEVOBJ e deve ser convertido para o tipo PDEVOBJ quando referenciado. Uma função DDI de gráficos de exemplo é DrvBitBlt.

  2. Como um argumento de entrada para um parâmetro dhpdev . A função de gancho personalizada equivalente deve converter esse parâmetro de entrada para o tipo PDEVOBJ ao referenciá-lo. Uma função DDI de gráficos de exemplo é DrvDitherColor.

Embora uma DLL de gráficos de impressora inclua os endereços de suas funções DrvEnablePDEV, DrvDisablePDEV e DrvResetPDEV na estrutura DRVENABLEDATA, um plug-in de renderização para Pscript5 implementa EnablePDEV, DisablePDEV e ResetPDEV como métodos da interface IPrintOemPS e não coloca seus endereços na estrutura DRVENABLEDATA.

Se os métodos IPrintOemPS::EnableDriver 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.

Cada função DDI gráfica pode ser conectada por um plug-in de renderização. Se vários plug-ins tentarem conectar a mesma função DDI de elementos gráficos, todos os ganchos após o primeiro serão ignorados.

Para obter mais informações sobre como criar e instalar plug-ins de renderização, consulte Personalizando drivers de impressora da Microsoft.

Requisitos

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