VariantChangeType

Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]

Konvertiert eine Variante von einem Typ in einen anderen.

HRESULT VariantChangeType(  
  VARIANTARG   *pvargDest,  
  VARIANTARG   *pvarSrc,  
  unsigned short  wFlags,  
  VARTYPE  vt              
);

Parameter

  • pvargDest
    Ein Zeiger auf das umgewandelte Argument. Wenn dies der PvarSrc identisch ist, wird die Variante Stelle konvertiert.

  • pvarSrc
    Ein Zeiger auf das Argument umgewandelt werden.

  • wFlags
    Flags, die die Umwandlung gesteuert. Zulässige Werte sind:

    • VARIANT_NOVALUEPROP. Verhindert die Funktion auf ein Objekt in einer grundlegenden Typ erzwingen, indem Werteigenschaft abrufen. Anwendungen sollte dieses Flag nur bei Bedarf festgelegt, da deren Verhalten inkonsistent mit anderen Anwendungen vereinfacht.

    • VARIANT_ALPHABOOL. Konvertiert einen Wert VT_BOOL in eine Zeichenfolge mit "True"oder "False".

    • VARIANT_NOUSEROVERRIDE. Für Konvertierungen in oder aus VT_BSTR übergibt LOCALE_NOUSEROVERRIDE an die zentrale Umwandlung Routinen.

    • VARIANT_LOCALBOOL. Für Konvertierungen von VT_BOOL VT_BSTR zu Back verwendet die Sprache, durch das Gebietsschema auf dem lokalen Computer angegeben.

  • vt
    Der Typ, zu erzwingen. Wenn der Rückgabecode S_OK Feld vt der ist der *PvargDest ist immer mit dem dieser Wert identisch.

Rückgabewert

Der Rückgabewert vom zurückgegebenen HRESULT ist eine der folgenden.

Wert

Bedeutung

S_OK

Erfolg.

DISP_E_BADVARTYPE

Der Varianttyp vt ist kein gültiger Typ Variant.

DISP_E_OVERFLOW

Die Daten auf PvarSrc verweist passt nicht in den Zieltyp.

DISP_E_TYPEMISMATCH

Das Argument konnte nicht in den angegebenen Typ umgewandelt werden.

E_INVALIDARG

Eines der Argumente ist ungültig.

E_OUTOFMEMORY

Für die Konvertierung konnte kein Arbeitsspeicher zugewiesen werden.

Kommentare

-Funktion VariantChangeType behandelt Umwandlungen zwischen den grundlegenden Typen (einschließlich Umwandlungen von numerischen Zeichenfolgen und Zeichenfolge-zu-numerische). Arguments PvarSrc wird während des Konvertierungsvorgangs geändert. Z. B. Quelle Variante vom Typ VT_BOOL und das Ziel des Typs VT_UINT ist, wird Arguments PvarSrc wird zuerst in VT_I2 konvertiert, und dann die Konvertierung wird fortgesetzt. Eine Variante, die VT_BYREF festgelegt hat wird durch Abrufen den referenzierten Wert auf einen Wert umgewandelt. Ein Objekt wird auf einen Wert umgewandelt, durch Aufrufen der Objekt-**"**s Werteigenschaft (DISPID_VALUE).

Normalerweise bestimmt der Implementierung von IDispatch:: Invoke , welchen Member zugegriffen wird und ruft dann VariantChangeType den Wert ein oder mehrere Argumente abrufen. Beispielsweise würde Aufruf IDispatch Mitglied SetTitle angibt, die ein String-Argument akzeptiert, der Implementierung VariantChangeType versucht, das Argument VT_BSTR erzwingen aufrufen. Wenn VariantChangeType kein Fehler zurückgegeben, konnte das Argument dann direkt vom Feld BstrVal aus der VARIANTARG abgerufen werden. VariantChangeType DISP_E_TYPEMISMATCH zurückgibt, der Implementierung setzen *PuArgErr auf 0 (das Argument im Fehler angibt) und Zurückgeben von DISP_E_TYPEMISMATCH von IDispatch:: Invoke.

Arrays von einem Typ können nicht für Arrays eines anderen Typs mit dieser Funktion konvertiert werden.

Hinweis

Der Typ der eines VARIANTARG sollte nicht im Rgvarg Array an Stelle geändert werden.

Siehe auch

Referenz

VariantChangeTypeEx

Konzepte

Variant zum Bearbeiten von Funktionen