共用方式為


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

重要

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

如需詳細資訊,請參閱 列印支援應用程式 v1 和 v2 設計指南

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

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

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

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

  4. 驅動程式會呼叫 IUnknown 介面的 QueryInterface 方法,以判斷外掛程式支援的版本為哪一種,並接收指向支援介面的指標。其中外掛程式可能支援的介面有:IPrintOemUI、IPrintOemUI2、IPrintOemUni、IPrintOemUni2、IPrintOemUni3、IPrintOemPS 或 IPrintOemPS2。

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

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