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;

Member

lAccessFlags

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

vt

Gibt den Variant-Datentyp für die Eigenschaft an. Dieser Member, der einer der folgenden Elemente sein kann, steuert, welcher Strukturmember der 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 maximal zulässige Wert der Eigenschaft.

ValidVal.Range.Inc

Der Inkrementwert, 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 ein float oder double ist.

ValidVal.RangeFloat.Min

Der Mindestwert der Eigenschaft.

ValidVal.RangeFloat.Nom

Der Nominalwert der Eigenschaft.

ValidVal.RangeFloat.Max

Der maximal zulässige Wert der Eigenschaft.

ValidVal.RangeFloat.Inc

Der Inkrementwert, der verwendet werden kann.

ValidVal.List

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

ValidVal.List.cNumList

Die Anzahl der Elemente im Array gültiger Werte, auf die pList 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 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 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 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. Dieser Member sollte ein bitweises 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 einem Bitset angegeben sind. Diese Struktur enthält einen Member namens Dummy, der angibt, dass die Eigenschaft vom Typ NONE ist.

ValidVal.None.Dummy

Hinweise

Der WIA_PROPERTY_INFO wird vom Minitreiber verwendet, um Informationen zu einer Eigenschaft eines beliebigen Typs zu speichern. Diese Struktur wird auch von wiasSetItemPropAttribs verwendet, um die gültigen Werte einer Eigenschaft festzulegen. Das lAccessFlags-Element steuert, ob der Zugriff auf eine Eigenschaft schreibgeschützt oder lese-/schreibgeschützt ist. Dieses Element vermittelt auch Informationen zum 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.

Für eine Lese-/Schreibeigenschaft vom Typ long, deren gültige Werte ganze Zahlen im Bereich -128 bis 127 sind und deren Nominalwert 0 ist, würde lAccessFlags beispielsweise auf WIA_PROP_RW | WIA_PROP_RANGE, und vt wird auf VT_I4 festgelegt. Range.Min wird auf -128, Range.Max auf 127 und Range.Inc auf 1 festgelegt. Range.Nom wird auf 0 festgelegt.

Für eine andere Eigenschaft, deren gültige Werte durch eine Liste von drei GUID-Werten definiert werden, hat lAccessFlags den WIA_PROP_LIST Bit festgelegt, und vt wird auf VT_CLSID festgelegt. ListGuid.cNumList wird auf 3 festgelegt, und die drei GUIDs sind ListGuid.pList[0], ListGuid.pList[1] und ListGuid.pList[2].

Für eine Eigenschaft, deren gültige Werte durch eine Bitmenge der Werte 0x01, 0x02, 0x04 und 0x08 definiert werden, wird das WIA_PROP_FLAG Bit in lAccessFlags festgelegt, und vt wäre auf VT_UI4 festgelegt. Für eine solche Eigenschaft wäre der in Flag.ValidBits gespeicherte Wert 0x0F, das bitweise OR der vier zuvor genannten Flagwerte.

Die folgenden Beispiele zeigen, wie Sie Arraydaten mit WIA_PROPERTY_INFO verwenden und wie Sie wiasWriteMultiple aufrufen, um Ihre 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-TypVARIANT, daher ist der Standardwert VT_VECTOR und nicht VT_ARRAY (was auch unterstützt wird).

Anforderungen

Anforderung Wert
Header wiamindr_lh.h (wiamindr.h einschließen)

Weitere Informationen

wiasSetItemPropAttribs