Compartilhar via


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

O método IPrintOemUni::EnableDriver permite que um plug-in de renderização para Unidrv 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 por pded.

pded

Ponteiro fornecido pelo chamador para uma estrutura DRVENABLEDATA .

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

Comentários

Um plug-in de renderização para Unidrv deve implementar o método IPrintOemUni::EnableDriver .

O método IPrintOemUni::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 IPrintOemUni::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 de IPrintOemUni::EnableDriver é opcional.

Se você implementar IPrintOemUni::EnableDriver, também deverá implementar IPrintOemUni::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 IPrintOemUni::EnableDriver, mas não desalocado em IPrintOemUni::D isableDriver, poderá ocorrer uma perda 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 gráficos fisgados.

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

Se você fornecer uma função de conexão personalizada, ela preempõe 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 gráficas 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 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 de funções DDI gráficas receberem ponteiros PDEV:

  • 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 no tipo PDEVOBJ quando referenciado. Uma função DDI de gráficos de exemplo é DrvBitBlt.

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

Observe que, 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 exporta explicitamente EnablePDEV, DisablePDEV e ResetPDEV como métodos da interface IPrintOemUni e não coloca seus endereços na estrutura DRVENABLEDATA.

Se os métodos IPrintOemUni::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 apenas um plug-in de renderização. Se vários plug-ins tentarem conectar a mesma função DDI gráfica, 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)