Freigeben über


WIA_PROPERTY_INFO Struktur (wiamindr_lh.h)

Die WIA_PROPERTY_INFO-Struktur wird verwendet, um Standardzugriffs- und gültige Wertinformationen für eine Elementeigenschaft eines beliebigen Typs zu speichern.

Syntax

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;

Angehörige

lAccessFlags

Gibt die Zugriffs- und Eigenschaftsattributkennzeichnungen für eine Eigenschaft an. Weitere Informationen finden Sie unter Eigenschaftsattribute.

vt

Gibt den Variant-Datentyp für die Eigenschaft an. Dieses Element, das einer der folgenden Sein kann, steuert, welches Strukturelement des ValidValunion gültig ist:

  • VT_UI1

  • VT_UI2

  • VT_UI4

  • VT_I2

  • VT_I4

  • VT_R4

  • VT_R8

  • VT_CLSID

  • VT_BSTR

Weitere Informationen finden Sie unter PROPVARIANT.

ValidVal

ValidVal.Range

Eine Struktur, die gefüllt wird, wenn die gültigen Werte der Eigenschaft durch einen Bereich ganzzahliger Werte angegeben werden.

ValidVal.Range.Min

Der Mindestwert der Eigenschaft.

ValidVal.Range.Nom

Der Nominalwert der Eigenschaft.

ValidVal.Range.Max

Der Maximalwert der Eigenschaft.

ValidVal.Range.Inc

Der inkrementeller Wert, der verwendet werden kann.

ValidVal.RangeFloat

Eine Struktur, die gefüllt wird, wenn die gültigen Werte der Eigenschaft durch einen Bereich von Gleitkommawerten angegeben werden, und der Eigenschaftstyp ist ein float- oder double.

ValidVal.RangeFloat.Min

Der Mindestwert der Eigenschaft.

ValidVal.RangeFloat.Nom

Der Nominalwert der Eigenschaft.

ValidVal.RangeFloat.Max

Der Maximalwert der Eigenschaft.

ValidVal.RangeFloat.Inc

Der inkrementeller Wert, der verwendet werden kann.

ValidVal.List

Eine Struktur, die gefüllt wird, wenn die gültigen Werte der Eigenschaft durch eine Liste mit ganzzahligen Werten angegeben werden.

ValidVal.List.cNumList

Die Anzahl der Elemente im Array gültiger Werte, auf die pList Punkte verweist.

ValidVal.List.Nom

Der Nominalwert der Eigenschaft.

ValidVal.List.pList

Ein Array gültiger Werte, auf das die Eigenschaft festgelegt werden kann.

ValidVal.ListFloat

Eine Struktur, die gefüllt wird, wenn die gültigen Werte der Eigenschaft durch eine Liste von Gleitkommawerten angegeben werden.

ValidVal.ListFloat.cNumList

Die Anzahl der Elemente im Array gültiger Werte, auf die pList Punkte verweist.

ValidVal.ListFloat.Nom

Der Nominalwert der Eigenschaft.

ValidVal.ListFloat.pList

Ein Array gültiger Werte, auf das die Eigenschaft festgelegt werden kann.

ValidVal.ListGuid

Eine Struktur, die gefüllt wird, wenn die gültigen Werte der Eigenschaft durch eine Liste von GUIDs angegeben werden.

ValidVal.ListGuid.cNumList

Die Anzahl der Elemente im Array gültiger Werte, auf die pList Punkte verweist.

ValidVal.ListGuid.Nom

Der Nominalwert der Eigenschaft.

ValidVal.ListGuid.pList

Ein Array gültiger Werte, auf das die Eigenschaft festgelegt werden kann.

ValidVal.ListBStr

Eine Struktur, die gefüllt wird, wenn die gültigen Werte der Eigenschaft durch eine Liste von Zeichenfolgen angegeben werden.

ValidVal.ListBStr.cNumList

Die Anzahl der Elemente im Array gültiger Werte, auf die pList Punkte verweist.

ValidVal.ListBStr.Nom

Der Nominalwert der Eigenschaft.

ValidVal.ListBStr.pList

Ein Array gültiger Werte, auf das die Eigenschaft festgelegt werden kann.

ValidVal.Flag

Eine Struktur, die gefüllt wird, wenn die gültigen Werte der Eigenschaft durch eine Bitmenge von Flags angegeben werden.

ValidVal.Flag.Nom

Der Nominalwert der Eigenschaft.

ValidVal.Flag.ValidBits

Eine Maske, die angibt, welche Bitwerte festgelegt werden können. Dieses Element sollte ein bitweiser OR aller möglichen benutzerdefinierten Flagwerte sein.

ValidVal.None

Eine Struktur, die gefüllt wird, wenn die gültigen Werte der Eigenschaft nicht in einer Liste, einem Bereich oder einer Bitmenge angegeben werden. Diese Struktur enthält ein Element mit dem Namen Dummy, das angibt, dass die Eigenschaft vom Typ NONE ist.

ValidVal.None.Dummy

Bemerkungen

Die WIA_PROPERTY_INFO wird vom Minidriver verwendet, um Informationen über eine Eigenschaft beliebiger Art zu speichern. Diese Struktur wird auch von der wiasSetItemPropAttribs verwendet, um die gültigen Werte einer Eigenschaft festzulegen. Die lAccessFlags Member steuert, ob der Zugriff auf eine Eigenschaft schreibgeschützt oder schreibgeschützt ist. Dieses Element vermittelt auch Informationen über den Satz gültiger Werte für eine Eigenschaft, wenn sie durch eine Liste von Werten, einen Wertebereich oder eine Bitmenge von Flags definiert werden. Das vt--Element enthält Informationen zum Typ der Eigenschaft. Beide Member sollten verwendet werden, um zu bestimmen, auf welches Mitglied der ValidValunion zugegriffen werden kann.

For example, for a read/write property of type long, whose valid values are integers in the range -128 to 127, and whose nominal value is 0, lAccessFlags would be set to WIA_PROP_RW | WIA_PROP_RANGE und vt auf VT_I4 festgelegt werden. Range.Min auf -128 festgelegt wäre, Range.Max- auf 127 festgelegt und Range.Inc auf 1 festgelegt werden. Range.Nom- auf 0 festgelegt werden.

Für eine andere Eigenschaft, deren gültige Werte durch eine Liste mit drei GUID-Werten definiert werden, lAccessFlags hätte seinen WIA_PROP_LIST Bitsatz, und vt auf VT_CLSID festgelegt werden würde. ListGuid.cNumList auf 3 festgelegt werden, und die drei GUIDs sind ListGuid.pList[0], ListGuid.pList[1], und ListGuid.pList[2].

Eine Eigenschaft, deren gültige Werte durch eine Bitmenge der Werte 0x01, 0x02, 0x04 und 0x08 definiert werden, wäre das WIA_PROP_FLAG Bit in lAccessFlagsfestgelegt, und vt würde auf VT_UI4 festgelegt. Bei einer solchen Eigenschaft wäre der in Flag.ValidBits gespeicherte Wert 0x0F, der bitweise ODER der zuvor erwähnten vier Flagwerte.

Die folgenden Beispiele zeigen, wie Sie Arraydaten mit WIA_PROPERTY_INFO verwenden und wie Sie wiasWriteMultiple- aufrufen, um Die Eigenschaftswerte festzulegen.

Die Initialisierung kann wie im folgenden Beispiel aussehen:

// 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;

Zur Laufzeit kann das Ändern des Werts mit wiasWriteMultiple wie im folgenden Beispiel aussehen:

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 verwendet den COM-PROPVARIANT Typ, VARIANT, sodass der Standardwert VT_VECTOR ist und nicht VT_ARRAY (auch unterstützt).

Anforderungen

Anforderung Wert
Header- wiamindr_lh.h (include Wiamindr.h)

Siehe auch

wiasSetItemPropAttribs