IWiaUIExtension COM 介面

如果您實作 IWiaUIExtension 介面,您可以實作無、部分或所有 IWiaUIExtension 方法。

如果特定方法傳回E_NOTIMPL,則系統提供的替代方法可供使用,則會改用它。

IWiaUIExtension 介面提供下列方法:P

方法 說明
IWiaUIExtension::D eviceDialog 提供取代預設系統使用者介面的自定義使用者介面。
IWiaUIExtension::GetDeviceBitmapLogo 取得裝置的自定義點陣圖標誌。
IWiaUIExtension::GetDeviceIcon 取得自定義裝置圖示。

IWiaUIExtension::D eviceDialog 接受 DEVICEDIALOGDATA 結構的指標(在 wiadevd.h中宣告),其中包含實作裝置對話框所需的所有數據。

裝置對話框必須實作為強制回應 Win32 對話框,受限於下列四個條件約束:

  1. pDeviceDialogData中傳回的項目陣列 -->ppWiaItems 必須使用 CoTaskMemAlloc來配置,而且應用程式會使用 CoTaskMemFree 來釋出 (請參閱這兩個函式Microsoft Windows SDK 檔)。

  2. 您不得終結或釋放儲存在 pDeviceDialogData 中的根專案 -->pIWiaItemRoot。 您也不得讓根專案變成無效。 例如,您不得呼叫 WIA_CMD_SYNCHRONIZE 裝置命令。

  3. 傳回S_OK,表示使用者要求數據傳輸,S_FALSE表示使用者取消傳輸。

  4. 請小心確保此元件中不會導入記憶體或資源流失,因為它會在應用程式中執行進程。

IWiaUIExtension::GetDeviceIcon 可讓應用程式使用驅動程式指定的圖示。 為了避免資源流失,此圖示應該使用 LoadImage載入,並使用 LR_SHARED 旗標 (請參閱 Windows SDK 檔)。

IWiaUIExtension::GetDeviceBitmapLogo 可讓應用程式視需要呈現裝置和廠商標誌。 目前沒有任何系統元件使用這個方法。 位圖應該是使用 CreateDIBSection的 DIB 配置位陣圖,或是使用 LoadImage 搭配 LR_CREATEDIBSECTION 旗標載入的位圖(如需詳細資訊,請參閱 Windows SDK 檔)。 這可讓應用程式擷取任何調色盤資訊,並適應目前或變更的顯示色彩深度。

若要在 WIA 掃描儀驅動程式中實作自訂掃描對話框,請使用 IWiaUIExtension::D eviceDialog 方法來建立 Win32 強制回應對話方塊,並將 DEVICEDIALOGDATA 結構傳遞至 dialogBoxParam 函式的 dwInitParam 參數作為 LPARAM。

請務必記住,裝置對話方塊本身不會管理資料傳輸。 對話框只會傳回 IWiaItem 陣列的指標, 介面指標從驅動程式到應用程式。 然後,應用程式可以交涉傳輸機制和格式。