Compartilhar via


Publicando as interfaces

Importante

A plataforma de impressão moderna é o meio preferido do Windows para se comunicar com as impressoras. Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft juntamente com PSA (Aplicativos de Suporte à Impressão) para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.

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

Os plug-ins normalmente recebem instâncias de objetos que implementam o comportamento nos drivers principais por um mecanismo chamado publicação. As interfaces auxiliares IPrintCoreHelper, IPrintCoreHelperPS e IPrintCoreHelperUni são publicadas por meio desse mesmo modelo, com algumas pequenas diferenças.

As listas a seguir resumem a ordem na qual os objetos são publicados na interface do usuário (interface do usuário) e nos módulos de renderização, para Unidrv e Pscript5. Para cada um dos quatro módulos, o número na lista indica a ordem na qual um objeto é publicado e as interfaces COM nomeadas indicam quais interfaces o objeto implementa.

Em qualquer módulo, o driver deve manter apenas um dos objetos publicados salvando um ponteiro e chamando o método AddRef nesse objeto. Depois que o plug-in armazena a referência ao objeto, o plug-in deve retornar S_OK. O driver principal interromperá a publicação de interfaces. Este modelo não é significativamente diferente do mecanismo de publicação anterior.

No contexto da interface do usuário, os objetos são publicados na interface IPrintOemUI na classe cujo identificador de classe é CLSID_OEMUI. No contexto de renderização, os objetos são publicados nas interfaces IPrintOemPS ou IPrintOemUni.

Os objetos marcados com um asterisco (*) nas listas a seguir são publicados na interface IPrintOemPrintTicketProvider.

Ordem de publicação do módulo Unidrv UI

  1. IUnknown e *IPrintCoreHelper e IPrintCoreHelperUni

  2. IUnknown e IPrintOemDriverUI

Ordem de publicação do módulo de renderização Unidrv

  1. IUnknown e *IPrintCoreHelper e IPrintCoreHelperUni

  2. IUnknown e IPrintOemDriverUni

Ordem de publicação do módulo de interface do usuário pscript5

  1. IUnknown e *IPrintCoreHelper e IPrintCoreHelperPS

  2. IUnknown e IPrintCoreUI2

  3. IUnknown e IPrintOemDriverUI

Ordem de publicação do módulo de renderização Pscript5

  1. IUnknown e *IPrintCoreHelper e IPrintCoreHelperPS

  2. IUnknown e IPrintCorePS2