影像擷取 API,例如 TWAIN,通常需要裝置特定的元件,例如 TWAIN 資料來源。 這些裝置特定元件應該使用 IStillImage COM 介面 和 IStiDevice COM 介面 與用戶模式靜態影像設備驅動程式及事件監視器進行通訊。
影像擷取 API 可以呼叫 IStillImage::GetDeviceValue 和 IStillImage::SetDeviceValue 來讀取和寫入 靜態影像設備的登錄條目。 例如,每個靜態影像裝置的 TWAIN 數據源名稱會儲存在註冊表中。
由於 TWAIN API 不允許應用程式在呼叫數據源時指定使用中的裝置,因此數據源通常會呼叫 IStillImage::GetDeviceList 以取得所有仍存映像裝置的清單,然後搜尋清單以尋找正確的裝置,通常是根據製造商和型號名稱。 製造商和型號文字名稱是從安裝資訊 (INF) 檔案取得。 由於 TWAIN 的數據源名稱有 32 個字元的限制,而且因為 WIA 會將 “WIA-” 附加至字串以建構相容的名稱,因此 INF 檔案中的文字不應超過 28 個字元。 否則,對整個字串執行比較且不只是前32個字元的TWAIN相容應用程式可能無法自動尋找導致應用程式啟動的裝置。
若要存取裝置,映射擷取軟體會呼叫 IStillImage::CreateDevice 來建立定義 IStiDevice 介面之 COM 物件的實例。 IStiDevice 介面提供數種方法來執行裝置 I/O 作業。 建立物件實例時,映像擷取軟體應指定「數據」 傳輸模式。
影像擷取軟體可以呼叫 IStiDevice::Subscribe 來要求事件監視器傳遞 靜止影像裝置事件的通知。 收到通知后,可以呼叫 IStiDevice::GetLastNotificationData 來判斷事件的類型。 當不再需要通知時,應該呼叫 IStiDevice::UnSubscribe。
當映像擷取軟體使用 IStiDevice 介面完成時,它必須呼叫 IStiDevice::Release。