SafeArrayPutElement-Funktion (oleauto.h)

Speichert das Datenelement an der angegebenen Position im Array.

Syntax

HRESULT SafeArrayPutElement(
  [in] SAFEARRAY *psa,
  [in] LONG      *rgIndices,
  [in] void      *pv
);

Parameter

[in] psa

Ein arraydeskriptor, der von SafeArrayCreate erstellt wurde.

[in] rgIndices

Ein Vektor von Indizes für jede Dimension des Arrays. Die richtige (am wenigsten signifikante) Dimension ist rgIndices[0]. Die linksste Dimension wird unter rgIndices[psa->cDims – 1]gespeichert.

[in] pv

Die Daten, die dem Array zugewiesen werden sollen. Die Variantentypen VT_DISPATCH, VT_UNKNOWN und VT_BSTR sind Zeiger und erfordern keine weitere Dereferenzierungsebene.

Rückgabewert

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
DISP_E_BADINDEX
Der angegebene Index ist ungültig.
E_INVALIDARG
Eines der Argumente ist ungültig.
E_OUTOFMEMORY
Arbeitsspeicher konnte für das Element nicht zugewiesen werden.

Hinweise

Diese Funktion ruft automatisch SafeArrayLock und SafeArrayUnlock vor und nach dem Zuweisen des Elements auf. Wenn es sich bei dem Datenelement um eine Zeichenfolge, ein Objekt oder eine Variante handelt, kopiert die Funktion es ordnungsgemäß, wenn das sichere Array zerstört wird. Wenn das vorhandene Element eine Zeichenfolge, ein Objekt oder eine Variante ist, wird es ordnungsgemäß gelöscht. Wenn das Datenelement ein VT_DISPATCH oder VT_UNKNOWN ist, wird AddRef aufgerufen, um die Verweisanzahl des Objekts zu erhöhen.

Hinweis Für ein Array können mehrere Sperren vorhanden sein. Elemente können in ein Array eingefügt werden, während das Array durch andere Vorgänge gesperrt ist.
 
Ein Beispiel, das das Aufrufen von SafeArrayPutElement veranschaulicht, finden Sie im Com Fundamentals Lines-Beispiel (CLines::Add in Lines.cpp).

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile oleauto.h
Bibliothek OleAut32.lib
DLL OleAut32.dll