從印表機驅動程式存取外掛程式介面
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
如果已安裝 UI 外掛程式或轉譯外掛程式,印表機驅動程式 (Unidrv 或 Pscript5) 會使用下列呼叫序列來取得外掛程式 IPrintOemUI、IPrintOemUI2、IPrintOemUni、IPrintOemUni2、IPrintOemUni3、IPrintOemPS 或 IPrintOemPS2 COM 介面的存取權:
驅動程式會呼叫 LoadLibrary 以載入外掛程式 DLL,這會導致呼叫外掛程式的
DllMain
函式。驅動程式會呼叫外掛程式的
DllGetClassObject
函式,此函式會傳回外掛程式 IClassFactory 介面的指標。驅動程式會呼叫 IClassFactory 介面的 CreateInstance 方法,並指定 IID_IUnknown 的介面標識碼,這會導致 方法建立外掛程式 IPrintOemUI、IPrintOemUI2、IPrintOemUni、IPrintOemUni2、IPrintOemUni2、IPrintOemPS 或 IPrintOemPS2 介面的實例,並傳回實例 IUnknown 介面的指標。
驅動程式會呼叫 IUnknown 介面的 QueryInterface 方法,以判斷外掛程式支援 IPrintOemUI、IPrintOemUI2、IPrintOemUni2、IPrintOemUni3、IPrintOemPS 或 IPrintOemPS2 介面的版本,以及接收支援介面的指標。
驅動程式會呼叫外掛程式介面的
PublishDriverInterface
方法來讓驅動程式的 IPrintOemDriverUI、IPrintCoreUI2、IPrintOemDriverUni、IPrintOemDriverPS 或 IPrintCorePS2 介面可供外掛程式使用。如果外掛程式已實作 IPrintOemUni 介面,驅動程式會呼叫 IPrintOemUni::GetImplementedMethod 來判斷已實作的介面方法。 同樣地,如果外掛程式已實 作 IPrintOemUni2 介面,驅動程式會呼叫 IPrintOemUni2::GetImplementedMethod 來達到相同的目的。