Compartilhar via


Acessando interfaces de Plug-In de drivers de impressora

Importante

Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft, juntamente com o PSA (Aplicativos de Suporte para Impressão), para personalizar a experiência de impressão em Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.

Para obter mais informações, consulte o Guia de design do aplicativo de suporte para impressão.

Se um plug-in de interface do usuário ou plug-in de renderização estiver instalado, o driver de impressora (Unidrv ou Pscript5) usará a seguinte sequência de chamadas para obter acesso à interface IPrintOemUI, IPrintOemUI2, IPrintOemUni, IPrintOemUni2, IPrintOemUni3, IPrintOemPS ou IPrintOemPS2 COM:

  1. O driver chama LoadLibrary para carregar a DLL do plug-in, o que causa uma chamada para a função do DllMain plug-in.

  2. O driver chama a função do DllGetClassObject plug-in, que retorna um ponteiro para a interface IClassFactory do plug-in.

  3. O driver chama o método CreateInstance da interface IClassFactory, especificando um identificador de interface de IID_IUnknown, o que faz com que o método crie uma instância da interface IPrintOemUI, IPrintOemUI2, IPrintOemUI2, IPrintOemUni, IPrintOemUni2, IPrintOemUni3, IPrintOemPS ou IPrintOemPS2 e retorne um ponteiro para a interface IUnknown da instância.

  4. O driver chama o método QueryInterface da interface IUnknown para determinar qual versão da interface IPrintOemUI, IPrintOemUI2, IPrintOemUni, IPrintOemUni2, IPrintOemUni3, IPrintOemPS ou IPrintOemPS2 tem suporte do plug-in e para receber um ponteiro para a interface com suporte.

  5. O driver chama o método da interface de PublishDriverInterface plug-in para disponibilizar a interface IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS ou IPrintCorePS2 do driver para o plug-in.

  6. Se o plug-in tiver implementado a interface IPrintOemUni , o driver chamará IPrintOemUni::GetImplementedMethod para determinar quais métodos de interface foram implementados. Da mesma forma, se o plug-in tiver implementado a interface IPrintOemUni2 , o driver chamará IPrintOemUni2::GetImplementedMethod para a mesma finalidade.