Freigeben über


COleSafeArray::GetElement

Ruft ein einzelnes Element des sicheren Arrays ab.

void GetElement( 
   long* rgIndices, 
   void* pvData  
);

Parameter

  • rgIndices
    Zeiger auf ein Array Indizes für jede Dimension des Arrays.

  • pvData
    Zeiger auf den Speicherort, an der das Element des Arrays zu platzieren.

Hinweise

Diese Funktion wird automatisch die Fensterfunktionen SafeArrayLock und SafeArrayUnlock vor und nach dem Abrufen des Elements auf. Wenn das DataItem-Steuerelement eine Zeichenfolge, ein Objekt oder eine Variante ist, kopiert die Funktion das Element auf die richtige Art. Der Parameter pvData sollte in einen hohen Puffer zeigen, um das Element enthält.

Bei einem Fehler wird die Funktion CMemoryException oder COleException aus.

Beispiel

//sa is of type COleSafeArray with 2 dimensions 

//Determine upper bounds for both dimensions 
long lNumRows;
long lNumCols;
sa.GetUBound(1, &lNumRows);
sa.GetUBound(2, &lNumCols);

//Display the elements in the SAFEARRAY. 
long index[2];
VARIANT val;

//Determine lower bounds for both dimensions 
long lowRow, lowCol;
sa.GetLBound(1, &lowRow);
sa.GetLBound(2, &lowCol);

for(long r = lowRow; r <= lNumRows; r++ )
{
   for(long c = lowCol; c <= lNumCols; c++ )
   {
      index[0] = r;
      index[1] = c;

      //retrieve each element of the safearray
      sa.GetElement(index, &val);

      switch(val.vt)
      {
      case VT_R8:
         TRACE(_T("%1.2f\n"), val.dblVal);
         break;

      case VT_BSTR:
         TRACE(_T("%s\n"),(CString)val.bstrVal);
         break;

      // other cases ommitted 

      case VT_EMPTY:
         TRACE(_T("<empty>\n"));
         break;
      }
   }
}

Anforderungen

Header: afxdisp.h

Siehe auch

Referenz

COleSafeArray-Klasse

Hierarchiediagramm

COleSafeArray::PutElement