Partilhar via


Aceder às interfaces do driver da impressora a partir de Plug-Ins

Importante

A moderna plataforma de impressão é o meio preferido do Windows para comunicar com as impressoras. Recomendamos que utilize o controlador de classe da caixa de entrada IPP da Microsoft, juntamente com as Aplicações de Suporte de Impressão (PSA), 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 Guia de design do aplicativo de suporte de impressão v1 e v2.

Se um plug-in chamar métodos que pertencem às interfaces COM fornecidas pelo driver, como IPrintOemDriverUI, IPrintCoreHelperPS, IPrintCoreHelperUni, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPSou IPrintCorePS2, ele deve obter um ponteiro de interface do driver da seguinte maneira:

  1. O plug-in deve implementar o método PublishDriverInterface da interface IPrintOemUI, IPrintOemUI2, IPrintOemUni2, IPrintOemPS ou interface IPrintOemPS2.

  2. Quando o driver (Unidrv ou Pscript5) chama o método PublishDriverInterface do plug-in, é fornecido um ponteiro para as interfaces IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS, ou IUnknown da instância de IPrintCorePS2.

  3. O plug-in deve usar o ponteiro de interface IUnknown para chamar IUnknown::QueryInterface, especificando o identificador de interface que representa a versão desejada do IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPSou interface IPrintCorePS2. (Para obter mais informações, consulte Identificadores de Interface para Drivers de Impressora.)

  4. Se o plug-in especificar um identificador de interface representando uma versão de interface suportada pelo driver, QueryInterface retornará um ponteiro para o IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPSou interface IPrintCorePS2. Observe que o driver chama o método AddRef da interface (descrito na documentação do SDK do Windows) antes de retornar o ponteiro da interface para o plug-in. O plug-in deve salvar esse ponteiro para usá-lo mais tarde para chamar métodos de interface.

  5. Quando os ponteiros de interface IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPSe IPrintCorePS2 não são mais necessários, o plug-in deve chamar o método Release da interface (descrito na documentação do SDK do Windows).

Para que os plug-ins usem a nova interface IPrintCoreHelperPS do Windows Vista ou IPrintCoreHelperUni, o plug-in precisa adicionar suporte para OEMGI_GETREQUESTEDHELPERINTERFACES no seu método IPrintOemUI::GetInfo, IPrintOemPS::GetInfo, ou IPrintOemUni::GetInfo.