struktur WIA_PROPERTY_INFO (wiamindr_lh.h)
Struktur WIA_PROPERTY_INFO digunakan untuk menyimpan akses default dan informasi nilai yang valid untuk properti item jenis arbitrer.
Sintaks
typedef struct _WIA_PROPERTY_INFO {
ULONG lAccessFlags;
VARTYPE vt;
union {
struct {
LONG Min;
LONG Nom;
LONG Max;
LONG Inc;
} Range;
struct {
DOUBLE Min;
DOUBLE Nom;
DOUBLE Max;
DOUBLE Inc;
} RangeFloat;
struct {
LONG cNumList;
LONG Nom;
BYTE *pList;
} List;
struct {
LONG cNumList;
DOUBLE Nom;
BYTE *pList;
} ListFloat;
struct {
LONG cNumList;
GUID Nom;
GUID *pList;
} ListGuid;
struct {
LONG cNumList;
BSTR Nom;
BSTR *pList;
} ListBStr;
struct {
LONG Nom;
LONG ValidBits;
} Flag;
struct {
LONG Dummy;
} None;
} ValidVal;
} WIA_PROPERTY_INFO, *PWIA_PROPERTY_INFO;
Anggota
lAccessFlags
Menentukan bendera atribut akses dan properti untuk properti. Untuk informasi selengkapnya, lihat Atribut Properti.
vt
Menentukan jenis data varian untuk properti . Anggota ini, yang dapat menjadi salah satu dari berikut ini, mengontrol anggota struktur ValidValunion mana yang valid:
VT_UI1
VT_UI2
VT_UI4
VT_I2
VT_I4
VT_R4
VT_R8
VT_CLSID
VT_BSTR
Untuk informasi selengkapnya, lihat PROPVARIANT.
ValidVal
ValidVal.Range
Struktur yang diisi saat nilai valid properti ditentukan oleh rentang nilai bilangan bulat.
ValidVal.Range.Min
Nilai minimum properti.
ValidVal.Range.Nom
Nilai nominal properti.
ValidVal.Range.Max
Nilai maksimum properti.
ValidVal.Range.Inc
Nilai kenaikan yang dapat digunakan.
ValidVal.RangeFloat
Struktur yang diisi ketika nilai valid properti ditentukan oleh rentang nilai floating-point dan jenis properti adalah float atau ganda.
ValidVal.RangeFloat.Min
Nilai minimum properti.
ValidVal.RangeFloat.Nom
Nilai nominal properti.
ValidVal.RangeFloat.Max
Nilai maksimum properti.
ValidVal.RangeFloat.Inc
Nilai kenaikan yang dapat digunakan.
ValidVal.List
Struktur yang diisi saat nilai valid properti ditentukan oleh daftar nilai bilangan bulat.
ValidVal.List.cNumList
Jumlah elemen dalam array nilai valid yang titik pList-nya .
ValidVal.List.Nom
Nilai nominal properti.
ValidVal.List.pList
Array nilai yang valid, properti dapat diatur ke.
ValidVal.ListFloat
Struktur yang diisi ketika nilai properti yang valid ditentukan oleh daftar nilai floating-point.
ValidVal.ListFloat.cNumList
Jumlah elemen dalam array nilai valid yang titik pList-nya .
ValidVal.ListFloat.Nom
Nilai nominal properti.
ValidVal.ListFloat.pList
Array nilai yang valid, properti dapat diatur ke.
ValidVal.ListGuid
Struktur yang diisi saat nilai valid properti ditentukan oleh daftar GUID.
ValidVal.ListGuid.cNumList
Jumlah elemen dalam array nilai valid yang titik pList-nya .
ValidVal.ListGuid.Nom
Nilai nominal properti.
ValidVal.ListGuid.pList
Array nilai yang valid, properti dapat diatur ke.
ValidVal.ListBStr
Struktur yang diisi saat nilai valid properti ditentukan oleh daftar string.
ValidVal.ListBStr.cNumList
Jumlah elemen dalam array nilai valid yang titik pList-nya .
ValidVal.ListBStr.Nom
Nilai nominal properti.
ValidVal.ListBStr.pList
Array nilai yang valid, properti dapat diatur ke.
ValidVal.Flag
Struktur yang diisi ketika nilai valid properti ditentukan oleh bitset bendera.
ValidVal.Flag.Nom
Nilai nominal properti.
ValidVal.Flag.ValidBits
Masker yang menunjukkan nilai bit mana yang dapat diatur. Anggota ini harus menjadi bitwise ATAU dari semua kemungkinan nilai bendera yang ditentukan pengguna.
ValidVal.None
Struktur yang diisi saat nilai properti yang valid tidak diberikan dalam daftar, rentang, atau bitset. Struktur ini berisi anggota bernama Dummy, yang menunjukkan properti berjenis NONE.
ValidVal.None.Dummy
Keterangan
WIA_PROPERTY_INFO digunakan oleh minidriver untuk menyimpan informasi tentang properti jenis arbitrer. Struktur ini juga digunakan oleh wiasSetItemPropAttribs untuk mengatur nilai properti yang valid. Anggota lAccessFlags mengontrol apakah akses ke properti bersifat baca-saja atau baca/tulis. Anggota ini juga menyampaikan informasi tentang kumpulan nilai yang valid untuk properti saat ditentukan oleh daftar nilai, rentang nilai, atau bitset bendera. Anggota vt berisi informasi tentang jenis properti . Kedua anggota harus digunakan untuk menentukan anggota ValidValunion mana yang dapat diakses.
Misalnya, untuk properti baca/tulis dari jenis panjang, yang nilai validnya adalah bilangan bulat dalam rentang -128 hingga 127, dan yang nilai nominalnya adalah 0, lAccessFlags akan diatur ke WIA_PROP_RW | WIA_PROP_RANGE, dan vt akan diatur ke VT_I4. Range.Min akan diatur ke -128, Range.Max akan diatur ke 127, dan Range.Inc akan diatur ke 1. Range.Nom akan diatur ke 0.
Untuk properti berbeda yang nilai validnya ditentukan oleh daftar tiga nilai GUID, lAccessFlags akan memiliki set bit WIA_PROP_LIST, dan vt akan diatur ke VT_CLSID. ListGuid.cNumList akan diatur ke 3, dan tiga GUID adalah ListGuid.pList[0], ListGuid.pList[1], dan ListGuid.pList[2].
Properti yang nilai validnya ditentukan oleh bitset nilai 0x01, 0x02, 0x04, dan 0x08 akan memiliki bit WIA_PROP_FLAG yang diatur dalam lAccessFlags, dan vt akan diatur ke VT_UI4. Untuk properti seperti itu, nilai yang disimpan di Flag.ValidBits akan 0x0F, bitwise OR dari empat nilai bendera yang disebutkan sebelumnya.
Contoh berikut menunjukkan cara menggunakan data array dengan WIA_PROPERTY_INFO dan cara memanggil wiasWriteMultiple untuk mengatur nilai properti Anda.
Inisialisasi mungkin terlihat seperti contoh berikut:
// Initialize WIA_IPA_ITEM_TIME (NONE)
g_pszItemDefaults[13] = WIA_IPA_ITEM_TIME_STR;
g_piItemDefaults [13] = WIA_IPA_ITEM_TIME;
g_pvItemDefaults [13].cai.celems = MyNumberOfElements;
g_pvItemDefaults [13].cai.pelems = PointerToMyArray;
g_pvItemDefaults [13].vt = VT_VECTOR|VT_UI2; // MyArray is an array of DWORD values
g_psItemDefaults [13].ulKind = PRSPEC_PROPID;
g_psItemDefaults [13].propid = g_piItemDefaults [13];
g_wpiItemDefaults[13].lAccessFlags = WIA_PROP_READ|WIA_PROP_NONE;
g_wpiItemDefaults[13].vt = g_pvItemDefaults [13].vt;
Pada durasi, mengubah nilai dengan wiasWriteMultiple mungkin terlihat seperti contoh berikut:
PROPVARIANT propVar;
PROPSPEC propSpec;
PropVariantInit(&propVar);
propVar.vt = VT_VECTOR | VT_UI2;
propVar.caui.cElems = sizeof(SYSTEMTIME) / sizeof(WORD);
propVar.caui.pElems = (WORD *) &CurrentTimeStruct;
propSpec.ulKind = PRSPEC_PROPID;
propSpec.propid = WIA_IPA_ITEM_TIME;
hr = wiasWriteMultiple(pWiasContext, 1, &propSpec, &propVar);
WIA menggunakan jenis COM PROPVARIANT , VARIAN, sehingga defaultnya adalah VT_VECTOR, dan tidak VT_ARRAY (yang juga didukung).
Persyaratan
Persyaratan | Nilai |
---|---|
Header | wiamindr_lh.h (termasuk Wiamindr.h) |