共用方式為


從印表機驅動程式存取外掛程式介面

重要

新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。

如需詳細資訊,請參閱 新式列印平臺列印支援應用程式設計指南

如果已安裝 UI 外掛程式或轉譯外掛程式,印表機驅動程式 (Unidrv 或 Pscript5) 會使用下列呼叫序列來取得外掛程式 IPrintOemUI、IPrintOemUI2IPrintOemUni、IPrintOemUni2、IPrintOemUni3IPrintOemPSIPrintOemPS2 COM 介面的存取權:

  1. 驅動程式會呼叫 LoadLibrary 以載入外掛程式 DLL,這會導致呼叫外掛程式的 DllMain 函式。

  2. 驅動程式會呼叫外掛程式的 DllGetClassObject 函式,此函式會傳回外掛程式 IClassFactory 介面的指標。

  3. 驅動程式會呼叫 IClassFactory 介面的 CreateInstance 方法,並指定 IID_IUnknown 的介面標識碼,這會導致 方法建立外掛程式 IPrintOemUI、IPrintOemUI2IPrintOemUni、IPrintOemUni2、IPrintOemUni2IPrintOemPS 或 IPrintOemPS2 介面的實例,並傳回實例 IUnknown 介面的指標。

  4. 驅動程式會呼叫 IUnknown 介面的 QueryInterface 方法,以判斷外掛程式支援 IPrintOemUI、IPrintOemUI2IPrintOemUni2、IPrintOemUni3IPrintOemPS 或 IPrintOemPS2 介面的版本,以及接收支援介面的指標。

  5. 驅動程式會呼叫外掛程式介面的 PublishDriverInterface 方法來讓驅動程式的 IPrintOemDriverUI、IPrintCoreUI2、IPrintOemDriverUni、IPrintOemDriverPS 或 IPrintCorePS2 介面可供外掛程式使用。

  6. 如果外掛程式已實作 IPrintOemUni 介面,驅動程式會呼叫 IPrintOemUni::GetImplementedMethod 來判斷已實作的介面方法。 同樣地,如果外掛程式已實 作 IPrintOemUni2 介面,驅動程式會呼叫 IPrintOemUni2::GetImplementedMethod 來達到相同的目的。