Acessando interfaces de drivers de impressora de plug-ins
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.
Se um plug-in chamar métodos que pertencem às interfaces COM IPrintOemDriverUI, IPrintCoreHelperPS, IPrintCoreHelperUni, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS, ou IPrintCorePS2 fornecidas pelo driver, ele deverá obter um ponteiro de interface do driver da seguinte maneira
O plug-in deve implementar o método PublishDriverInterface da interface IPrintOemUI, IPrintOemUI2, IPrintOemUni, IPrintOemUni2, IPrintOemPS ou IPrintOemPS2.
Quando o driver (Unidrv ou Pscript5) chama o método PublishDriverInterface do plug-in, ele fornece um ponteiro para a interface IUnknown da instância IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS, ou IPrintCorePS2.
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 da interface IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS, ou IPrintCorePS2. (Para obter mais informações, consulte Identificadores de interface para drivers de impressora.)
Se o plug-in especificar um identificador de interface que representa uma versão de interface compatível com o driver, QueryInterface retornará um ponteiro para a interface IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS, ou 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 posteriormente para chamar métodos de interface.
Quando o ponteiro da interface IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS ou IPrintCorePS2 não for mais necessário, o plug-in deverá chamar o método Release da interface (descrito na documentação do SDK do Windows).
Para que os plug-ins usem a nova interfaceIPrintCoreHelperPS ou IPrintCoreHelperUni interface, do Windows Vista, o plug-in precisa adicionar suporte para OEMGI_GETREQUESTEDHELPERINTERFACES em seu método IPrintOemUI::GetInfo, IPrintOemPS::GetInfo, ou IPrintOemUni::GetInfo.