Bagikan melalui


Membuat Komponen Device-Specific untuk API Akuisisi Gambar

API akuisisi gambar, seperti TWAIN, biasanya memerlukan komponen khusus perangkat, seperti sumber data TWAIN. Komponen khusus perangkat ini harus menggunakan Antarmuka COM IStillImage dan Antarmuka COM IStiDevice untuk berkomunikasi dengan driver perangkat gambar diam mode pengguna dan pemantau peristiwa.

API akuisisi gambar dapat memanggil IStillImage::GetDeviceValue dan IStillImage::SetDeviceValue untuk membaca dan menulis Entri Registri untuk Perangkat Gambar Diam. Misalnya, nama setiap sumber data TWAIN masing-masing perangkat gambar diam disimpan di registri.

Karena TWAIN API tidak mengizinkan aplikasi untuk menentukan perangkat aktif saat memanggil sumber data, sumber data biasanya akan memanggil IStillImage::GetDeviceList untuk mendapatkan daftar semua perangkat gambar diam, dan kemudian akan mencari daftar untuk menemukan perangkat yang benar, biasanya berdasarkan nama produsen dan model. Nama teks produsen dan model diperoleh dari file informasi penyiapan (INF). Karena TWAIN memiliki batas 32 karakter untuk nama sumber data, dan karena WIA menambahkan "WIA-" ke string untuk membangun nama yang kompatibel, teks dalam file INF tidak boleh lebih dari 28 karakter. Jika tidak, aplikasi yang kompatibel dengan TWAIN yang melakukan perbandingan pada seluruh string, dan bukan hanya 32 karakter pertama, mungkin tidak dapat secara otomatis menemukan perangkat yang menyebabkan aplikasi diluncurkan.

Untuk mengakses perangkat, perangkat lunak akuisisi gambar memanggil IStillImage::CreateDevice untuk membuat instans objek COM yang menentukan antarmuka IStiDevice . Antarmuka IStiDevice menyediakan beberapa metode untuk melakukan operasi I/O perangkat. Saat membuat instans objek, perangkat lunak akuisisi gambar harus menentukan Mode Transfer "data".

Perangkat lunak akuisisi gambar dapat memanggil IStiDevice::Berlangganan untuk meminta pemantau peristiwa untuk mengirimkan pemberitahuan Peristiwa Perangkat Gambar Diam. Setelah pemberitahuan diterima, IStiDevice::GetLastNotificationData dapat dipanggil untuk menentukan jenis peristiwa. IStiDevice::UnSubscribe harus dipanggil ketika pemberitahuan tidak lagi diperlukan.

Ketika perangkat lunak akuisisi gambar telah selesai menggunakan antarmuka IStiDevice , perangkat lunak tersebut harus memanggil IStiDevice::Release.