Bagikan melalui


Gambaran Umum Transfer Data Lapisan Kompatibilitas WIA

Tanpa lapisan kompatibilitas transfer, driver Wia Windows Vista harus menerapkan gaya transfer data berbasis TYMED dan stream untuk dapat melakukan transfer data dari aplikasi warisan dan Windows Vista. Demikian pula, aplikasi Windows Vista WIA harus menerapkan kedua gaya transfer (dengan implementasi panggilan balik yang berbeda) untuk dapat melakukan transfer data dari driver warisan dan Windows Vista. Dengan lapisan kompatibilitas WIA, jenis driver transparan ke aplikasi WIA dan driver Wia Windows Vista tidak harus berurusan dengan kode transfer warisan apa pun.

Ada dua kasus transfer di mana lapisan kompatibilitas diperlukan, yang masing-masing dapat dipecah lebih lanjut menjadi dua sub-kategori:

  1. Aplikasi warisan yang mentransfer data dari driver Windows Vista:

    1. Transfer file: Aplikasi memanggil IWiaDataTransfer::idtGetBandedData.
    2. Transfer panggilan balik: Aplikasi memanggil IWiaDataTransfer::idtGetData.
  2. Aplikasi Windows Vista yang mentransfer data dari driver warisan:

    1. Transfer File: Lapisan kompatibilitas memulai transfer file dengan driver warisan.
    2. Transfer panggilan balik: Lapisan kompatibilitas memulai transfer panggilan balik dengan driver warisan.

Langkah pertama dalam menentukan apakah akan menggunakan lapisan kompatibilitas adalah menentukan apakah driver WIA adalah driver Windows Vista atau driver warisan. Layanan WIA akan menentukan ini dengan melihat nomor versi yang dikembalikan driver dari IStiUSD::GetCapabilities. Driver warisan mengembalikan STI_VERSION untuk nomor versi, sedangkan driver Windows Vista harus mengembalikan STI_VERSION_3. Nomor versi ini akan diekspos ke proksi WIA COM (dan aplikasi WIA) di properti Windows Vista, WIA_DIP_STI_DRIVER_VERSION.

Langkah selanjutnya dalam menentukan apakah akan menggunakan lapisan kompatibilitas adalah menentukan apakah aplikasi adalah aplikasi Windows Vista WIA atau aplikasi WIA warisan sederhana: jika aplikasi memanggil IWiaDataTransfer::idtGetBandedData atau IWiaDataTransfer::idtGetData itu adalah aplikasi WIA warisan, jika aplikasi memanggil IWiaTransfer::D ownload itu adalah aplikasi Windows Vista WIA.

Dengan model transfer data berbasis aliran baru, layanan WIA tidak akan lagi membedakan antara TYMED_CALLBACK dan TYMED_FILE (atau TYMED_MULTIPAGE_CALLBACK dan TYMED_MULTIPAGE_FILE). Sebaliknya hanya akan ada TYMED_FILE dan TYMED_MULTIPAGE_FILE. TYMED_MULTIPAGE_FILE diperlukan untuk memungkinkan driver mendukung pemindaian TIFF (atau PDF) multi-halaman. Untuk informasi selengkapnya tentang konstanta TYMED, lihat Memahami TYMED.

WIA tidak akan mendukung format bitmap memori WiaImgFmt_MEMORYBMP di driver Windows Vista.

Pengandar Windows Vista dapat mengirim pesan pembaruan untuk mentransfer data dalam pita daripada meminta seluruh citra singgahan driver selama transfer. Bentuk transfer ini berguna untuk mentransfer data selama pemindaian di mana tidak segera dimungkinkan untuk menentukan ukuran gambar yang ditransfer, misalnya, pemindaian dengan pemindai umpan gulir. Untuk mentransfer data gambar dalam pita, driver harus memanggil IStream::Seek pada aliran yang diteruskan ke dalamnya di IWiaTransferCallback::GetNextStream.

Untuk informasi tambahan tentang TYMED dan transfer berbasis aliran, lihat Transfer Data.

Antarmuka IWiaDataTransfer, IWiaTransfer, dan IStream dibahas dalam dokumentasi Microsoft Windows SDK.