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.