Bagikan melalui


Kelas COleSafeArray

Kelas untuk bekerja dengan array jenis dan dimensi arbitrer.

Sintaks

class COleSafeArray : public tagVARIANT

Anggota

Konstruktor Publik

Nama Deskripsi
COleSafeArray::COleSafeArray Membuat COleSafeArray objek.

Metode Publik

Nama Deskripsi
COleSafeArray::AccessData Mengambil penunjuk ke data array.
COleSafeArray::AllocData Mengalokasikan memori untuk array.
COleSafeArray::AllocDescriptor Mengalokasikan memori untuk deskriptor array aman.
COleSafeArray::Lampirkan Memberikan kontrol array yang ada VARIANT ke COleSafeArray objek.
COleSafeArray::Clear Membebaskan semua data dalam yang mendasar VARIANT.
COleSafeArray::Copy Membuat salinan array yang sudah ada.
COleSafeArray::Create Membuat array yang aman.
COleSafeArray::CreateOneDim Membuat objek satu dimensi COleSafeArray .
COleSafeArray::D estroy Menghancurkan array yang ada.
COleSafeArray::D estroyData Menghancurkan data dalam array yang aman.
COleSafeArray::D estroyDescriptor Menghancurkan deskriptor array yang aman.
COleSafeArray::D etach Melepaskan array VARIAN dari COleSafeArray objek (sehingga data tidak akan dibebaskan).
COleSafeArray::GetByteArray Menyalin konten array aman ke dalam CByteArray.
COleSafeArray::GetDim Mengembalikan jumlah dimensi dalam array.
COleSafeArray::GetElement Mengambil elemen tunggal dari array aman.
COleSafeArray::GetElemSize Mengembalikan ukuran, dalam byte, dari satu elemen dalam array yang aman.
COleSafeArray::GetLBound Mengembalikan batas bawah untuk dimensi array aman apa pun.
COleSafeArray::GetOneDimSize Mengembalikan jumlah elemen dalam objek satu dimensi COleSafeArray .
COleSafeArray::GetUBound Mengembalikan batas atas untuk dimensi array aman apa pun.
COleSafeArray::Lock Menaikkan jumlah kunci array dan menempatkan penunjuk ke data array dalam deskriptor array.
COleSafeArray::P trOfIndex Mengembalikan penunjuk ke elemen terindeks.
COleSafeArray::P utElement Menetapkan satu elemen ke dalam array.
COleSafeArray::Redim Mengubah batas array yang paling tidak signifikan (paling kanan).
COleSafeArray::ResizeOneDim Mengubah jumlah elemen dalam objek satu dimensi COleSafeArray .
COleSafeArray::UnaccessData Mengurangi jumlah kunci array dan membatalkan penunjuk yang diambil oleh AccessData.
COleSafeArray::Buka kunci Mengurangi jumlah kunci array sehingga dapat dibebaskan atau diubah ukurannya.

Operator Publik

Nama Deskripsi
COleSafeArray::operator LPCVARIANT Mengakses struktur objek yang COleSafeArray mendasarVARIANT.
COleSafeArray::operator LPVARIANT Mengakses struktur objek yang COleSafeArray mendasarVARIANT.
COleSafeArray::operator = Menyalin nilai ke dalam COleSafeArray objek (SAFEARRAY, , VARIANT, COleVariantatau COleSafeArray array).
COleSafeArray::operator == Membandingkan dua array varian (SAFEARRAY, , VARIANT, COleVariantatau COleSafeArray array).
COleSafeArray::operator << Menghasilkan konten COleSafeArray objek ke konteks cadangan.

Keterangan

COleSafeArray berasal dari struktur OLE VARIANT . Fungsi anggota OLE SAFEARRAY tersedia melalui COleSafeArray, serta sekumpulan fungsi anggota yang dirancang khusus untuk array byte satu dimensi.

Hierarki Warisan

tagVARIANT

COleSafeArray

Persyaratan

Header: afxdisp.h

COleSafeArray::AccessData

Mengambil penunjuk ke data array.

void AccessData(void** ppvData);

Parameter

ppvData
Penunjuk ke penunjuk ke data array.

Keterangan

Jika terjadi kesalahan, fungsi melempar CMemoryException atau COleException.

Contoh

void CMainFrame::Sort(VARIANT* vArray)
{
   COleSafeArray sa;
   BSTR* pbstr;
   TCHAR buf[1024];
   LONG cElements, lLBound, lUBound;

   //needed for OLE2T macro below, include afxpriv.h
   USES_CONVERSION;

   // Type check VARIANT parameter. It should contain a BSTR array
   // passed by reference. The array must be passed by reference it is
   // an in-out-parameter.
   if (V_VT(vArray) != (VT_ARRAY | VT_BSTR))
   {
      AfxThrowOleDispatchException(1001,
         _T("Type Mismatch in Parameter. Pass a string array by reference"));
   }

   // clears data in sa and copies the variant data into sa
   sa.Attach(*vArray);

   // Check that array is 1 dimensional
   if (sa.GetDim() != 1)
   {
      AfxThrowOleDispatchException(1002,
         _T("Type Mismatch in Parameter. Pass a one-dimensional array"));
   }

   try
   {
      // Get array bounds.
      sa.GetLBound(1, &lLBound);
      sa.GetUBound(1, &lUBound);

      // Get a pointer to the elements of the array
      // and increments the lock count on the array
      sa.AccessData((LPVOID*)& pbstr);

      //get no. of elements in array
      cElements = lUBound - lLBound + 1;
      for (int i = 0; i < cElements; i++)
      {
         //output the elements of the array
         _stprintf_s(buf, 1024, _T("[%s]\n"), OLE2T(pbstr[i]));
         OutputDebugString(buf);
      }

      //decrement lock count
      sa.UnaccessData();
   }
   catch (COleException* pEx)
   {
      AfxThrowOleDispatchException(1003,
         _T("Unexpected Failure in FastSort method"));
      pEx->Delete();
   }
}

COleSafeArray::AllocData

Mengalokasikan memori untuk array yang aman.

void AllocData();

Keterangan

Jika terjadi kesalahan, fungsi melempar CMemoryException atau COleException.

COleSafeArray::AllocDescriptor

Mengalokasikan memori untuk deskriptor array yang aman.

void AllocDescriptor(DWORD dwDims);

Parameter

dwDims
Jumlah dimensi dalam array aman.

Keterangan

Jika terjadi kesalahan, fungsi melempar CMemoryException atau COleException.

COleSafeArray::Lampirkan

Memberikan kontrol data dalam array yang ada VARIANT ke COleSafeArray objek.

void Attach(VARIANT& varSrc);

Parameter

varSrc
Objek VARIANT. Parameter varSrc harus memiliki VT_ARRAY VARTYPE.

Keterangan

Jenis sumber VARIANTdiatur ke VT_EMPTY. Fungsi ini menghapus data array saat ini, jika ada.

Contoh

Lihat contoh untuk COleSafeArray::AccessData.

COleSafeArray::Clear

Menghapus array aman.

void Clear();

Keterangan

Fungsi menghapus array aman dengan mengatur VARTYPE objek ke VT_EMPTY. Konten saat ini dirilis dan array dibebaskan.

COleSafeArray::COleSafeArray

Membuat COleSafeArray objek.

COleSafeArray();

COleSafeArray(
    const SAFEARRAY& saSrc,
    VARTYPE vtSrc);

COleSafeArray(
    LPCSAFEARRAY pSrc,
    VARTYPE vtSrc);

COleSafeArray(const COleSafeArray& saSrc);
COleSafeArray(const VARIANT& varSrc);
COleSafeArray(LPCVARIANT pSrc);
COleSafeArray(const COleVariant& varSrc);

Parameter

saSrc
Objek yang COleSafeArray sudah ada atau SAFEARRAY akan disalin ke dalam objek baru COleSafeArray .

vtSrc
VARTYPE objek baru COleSafeArray .

psaSrc
Penunjuk ke yang SAFEARRAY akan disalin ke dalam objek baru COleSafeArray .

varSrc
Objek atau COleVariant yang sudah ada VARIANT untuk disalin ke dalam objek baruCOleSafeArray.

pSrc
Penunjuk ke objek yang VARIANT akan disalin ke objek baru COleSafeArray .

Keterangan

Semua konstruktor ini membuat objek baru COleSafeArray . Jika tidak ada parameter, objek kosong COleSafeArray dibuat (VT_EMPTY). COleSafeArray Jika disalin dari array lain yang VARTYPE-nya diketahui secara implisit (COleSafeArray, , COleVariantatau VARIANT), VARTYPE dari array sumber dipertahankan dan tidak perlu ditentukan. COleSafeArray Jika disalin dari array lain yang VARTYPE-nya tidak diketahui (SAFEARRAY), VARTYPE harus ditentukan dalam parameter vtSrc.

Jika terjadi kesalahan, fungsi melempar CMemoryException atau COleException.

COleSafeArray::Copy

Membuat salinan array aman yang ada.

void Copy(LPSAFEARRAY* ppsa);

Parameter

ppsa
Penunjuk ke lokasi untuk mengembalikan deskriptor array baru.

Keterangan

Jika terjadi kesalahan, fungsi melempar CMemoryException atau COleException.

COleSafeArray::Create

Mengalokasikan dan menginisialisasi data untuk array.

void Create(
    VARTYPE vtSrc,
    DWORD dwDims,
    DWORD* rgElements);

void Create(
    VARTYPE vtSrc,
    DWORD dwDims,
    SAFEARRAYBOUND* rgsabounds);

Parameter

vtSrc
Jenis dasar array (yaitu, VARTYPE dari setiap elemen array). VARTYPE dibatasi untuk subset jenis varian. Baik bendera VT_ARRAY maupun VT_BYREF tidak dapat diatur. VT_EMPTY dan VT_NULL bukan jenis dasar yang valid untuk array. Semua jenis lainnya legal.

dwDims
Jumlah dimensi dalam array. Ini dapat diubah setelah array dibuat dengan Redim.

rgElements
Penunjuk ke array jumlah elemen untuk setiap dimensi dalam array.

rgsabounds
Penunjuk ke vektor batas (satu untuk setiap dimensi) untuk mengalokasikan array.

Keterangan

Fungsi ini akan menghapus data array saat ini jika perlu. Jika terjadi kesalahan, fungsi melempar CMemoryException.

Contoh

COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };

// creates a 2 dimensional safearray of type VT_I2 
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);

ASSERT(saMatrix.GetDim() == 2);

COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 2} };

// creates a 1 dimensional safearray of type VT_I1 
// with size 5 elements, with the index starting at 2
saVector.Create(VT_I1, 1, rgsabounds);

ASSERT(saVector.GetDim() == 1);

COleSafeArray::CreateOneDim

Membuat objek satu dimensi COleSafeArray baru.

void CreateOneDim(
    VARTYPE vtSrc,
    DWORD dwElements,
    const void* pvSrcData = NULL,
    long nLBound = 0);

Parameter

vtSrc
Jenis dasar array (yaitu, VARTYPE dari setiap elemen array).

dwElements
Jumlah elemen dalam array. Ini dapat diubah setelah array dibuat dengan ResizeOneDim.

pvSrcData
Arahkan ke data untuk disalin ke dalam array.

nLBound
Batas bawah array.

Keterangan

Fungsi mengalokasikan dan menginisialisasi data untuk array, menyalin data yang ditentukan jika penunjuk pvSrcData bukan NULL.

Jika terjadi kesalahan, fungsi melempar CMemoryException.

Contoh

VARIANT varColInfo[3];

//initialize VARIANTs
for (int i = 0; i < 3; i++)
   VariantInit(&varColInfo[i]);

// Column Name
varColInfo[0].vt = VT_BSTR;
varColInfo[0].bstrVal = ::SysAllocString(L"Name");

// Column Type
varColInfo[1].vt = VT_UI4;
varColInfo[1].lVal = 1;

COleSafeArray sa;
//create a 1 dimensional safearray of VARIANTs
//& initialize it with varColInfo VARIANT array
sa.CreateOneDim(VT_VARIANT, 2, varColInfo);

//check that the dimension is 2
ASSERT(sa.GetOneDimSize() == 2);

//increase safearray size by 1
sa.ResizeOneDim(3);

// populate the last element of the safearray, (Column Size)
varColInfo[2].vt = VT_I4;
varColInfo[2].lVal = 30;
long el = 2;
sa.PutElement(&el, &varColInfo[2]);

COleSafeArray::D estroy

Menghancurkan deskriptor array yang ada dan semua data dalam array.

void Destroy();

Keterangan

Jika objek disimpan dalam array, setiap objek akan dirilis. Jika terjadi kesalahan, fungsi melempar CMemoryException atau COleException.

COleSafeArray::D estroyData

Menghancurkan semua data dalam array yang aman.

void DestroyData();

Keterangan

Jika objek disimpan dalam array, setiap objek akan dirilis. Jika terjadi kesalahan, fungsi melempar CMemoryException atau COleException.

COleSafeArray::D estroyDescriptor

Menghancurkan deskriptor array yang aman.

void DestroyDescriptor();

Keterangan

Jika terjadi kesalahan, fungsi melempar CMemoryException atau COleException.

COleSafeArray::D etach

Mencopot VARIANT data dari COleSafeArray objek.

VARIANT Detach();

Tampilkan Nilai

Nilai yang mendasar VARIANT dalam COleSafeArray objek.

Keterangan

Fungsi ini mencopot data dalam array aman dengan mengatur VARTYPE objek ke VT_EMPTY. Ini adalah tanggung jawab pemanggil untuk membebaskan array dengan memanggil fungsi Windows VariantClear.

Jika terjadi kesalahan, fungsi melempar COleException.

Contoh

Lihat contoh untuk COleSafeArray::P utElement.

COleSafeArray::GetByteArray

Menyalin konten array aman ke dalam CByteArray.

void GetByteArray(CByteArray& bytes);

Parameter

Byte
Referensi ke objek CByteArray .

COleSafeArray::GetDim

Mengembalikan jumlah dimensi dalam COleSafeArray objek.

DWORD GetDim();

Tampilkan Nilai

Jumlah dimensi dalam array aman.

Contoh

COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };

// creates a 2 dimensional safearray of type VT_I2 
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);

ASSERT(saMatrix.GetDim() == 2);

COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 2} };

// creates a 1 dimensional safearray of type VT_I1 
// with size 5 elements, with the index starting at 2
saVector.Create(VT_I1, 1, rgsabounds);

ASSERT(saVector.GetDim() == 1);

COleSafeArray::GetElement

Mengambil elemen tunggal dari array aman.

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

Parameter

rgIndices
Penunjuk ke array indeks untuk setiap dimensi array.

pvData
Arahkan ke lokasi untuk menempatkan elemen array.

Keterangan

Fungsi ini secara otomatis memanggil fungsi SafeArrayLock windows dan SafeArrayUnlock sebelum dan sesudah mengambil elemen. Jika elemen data adalah string, objek, atau varian, fungsi menyalin elemen dengan cara yang benar. Parameter pvData harus menunjuk ke buffer yang cukup besar untuk berisi elemen .

Jika terjadi kesalahan, fungsi melempar CMemoryException atau COleException.

Contoh

//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 omitted

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

COleSafeArray::GetElemSize

Mengambil ukuran elemen dalam COleSafeArray objek.

DWORD GetElemSize();

Tampilkan Nilai

Ukurannya, dalam byte, dari elemen array yang aman.

COleSafeArray::GetLBound

Mengembalikan batas bawah untuk dimensi COleSafeArray objek apa pun.

void GetLBound(
    DWORD dwDim,
    long* pLBound);

Parameter

dwDim
Dimensi array untuk mendapatkan batas bawah.

pLBound
Arahkan ke lokasi untuk mengembalikan batas bawah.

Keterangan

Jika terjadi kesalahan, fungsi melempar COleException.

Contoh

COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };

// creates a 2 dimensional safearray of type VT_I2 
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);

long lLBound;

//get lower bound for 1st dimension
saMatrix.GetLBound(1, &lLBound);

ASSERT(lLBound == 0);

//get lower for 2nd dimension
saMatrix.GetLBound(2, &lLBound);

ASSERT(lLBound == 0);

COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 1} };

// creates a 1 dimensional safearray of type VT_I1 
// with size 5 elements, with the index starting at 1
saVector.Create(VT_I1, 1, rgsabounds);

//get lower bound for 1st dimension
saVector.GetLBound(1, &lLBound);

ASSERT(lLBound == 1);

COleSafeArray::GetOneDimSize

Mengembalikan jumlah elemen dalam objek satu dimensi COleSafeArray .

DWORD GetOneDimSize();

Tampilkan Nilai

Jumlah elemen dalam array aman satu dimensi.

Contoh

Lihat contoh untuk COleSafeArray::CreateOneDim.

COleSafeArray::GetUBound

Mengembalikan batas atas untuk dimensi array aman apa pun.

void GetUBound(
    DWORD dwDim,
    long* pUBound);

Parameter

dwDim
Dimensi array untuk mendapatkan batas atas.

pUBound
Arahkan ke lokasi untuk mengembalikan batas atas.

Keterangan

Jika terjadi kesalahan, fungsi melempar COleException.

Contoh

COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };

// creates a 2 dimensional safearray of type VT_I2 
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);

long lUBound;
ASSERT(saMatrix.GetDim() == 2);

//get upper bound for 1st dimension
saMatrix.GetUBound(1, &lUBound);

ASSERT(lUBound == 9);

//get upper bound for 2nd dimension
saMatrix.GetUBound(2, &lUBound);

ASSERT(lUBound == 4);

COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 1} };

// creates a 1 dimensional safearray of type VT_I1 
// with size 5 elements, with the index starting at 1
saVector.Create(VT_I1, 1, rgsabounds);

//get upper bound for 1st dimension
saVector.GetUBound(1, &lUBound);

ASSERT(lUBound == 5);

COleSafeArray::Lock

Menaikkan jumlah kunci array dan menempatkan penunjuk ke data array dalam deskriptor array.

void Lock();

Keterangan

Pada kesalahan, itu melempar COleException.

Penunjuk dalam deskriptor array valid hingga Unlock dipanggil. Panggilan ke Lock dapat ditumpuk; diperlukan jumlah panggilan Unlock yang sama.

Array tidak dapat dihapus saat dikunci.

COleSafeArray::operator LPCVARIANT

Panggil operator transmisi ini untuk mengakses struktur yang mendasar VARIANT untuk objek ini COleSafeArray .

operator LPCVARIANT() const;

COleSafeArray::operator LPVARIANT

Panggil operator transmisi ini untuk mengakses struktur yang mendasar VARIANT untuk objek ini COleSafeArray .

operator LPVARIANT();

Keterangan

Perhatikan bahwa mengubah nilai dalam struktur yang VARIANT diakses oleh penunjuk yang dikembalikan oleh fungsi ini akan mengubah nilai objek ini COleSafeArray .

COleSafeArray::operator =

Operator penugasan yang kelebihan beban ini menyalin nilai sumber ke dalam objek ini COleSafeArray .

COleSafeArray& operator=(const COleSafeArray& saSrc);
COleSafeArray& operator=(const VARIANT& varSrc);
COleSafeArray& operator=(LPCVARIANT pSrc);
COleSafeArray& operator=(const COleVariant& varSrc);

Keterangan

Deskripsi singkat tentang setiap operator berikut:

  • operator =( saSrc ) Menyalin objek yang ada COleSafeArray ke dalam objek ini.

  • operator =( varSrc ) Menyalin yang ada VARIANT atau COleVariant array ke dalam objek ini.

  • operator =( pSrc ) Menyalin objek array yang VARIANT diakses oleh pSrc ke dalam objek ini.

COleSafeArray::operator ==

Operator ini membandingkan dua array (SAFEARRAY, VARIANT, COleVariant, atau COleSafeArray array) dan mengembalikan nonzero jika sama; jika tidak, 0.

BOOL operator==(const SAFEARRAY& saSrc) const;  BOOL operator==(LPCSAFEARRAY pSrc) const;

BOOL operator==(const COleSafeArray& saSrc) const;  BOOL operator==(const VARIANT& varSrc) const;

BOOL operator==(LPCVARIANT pSrc) const;  BOOL operator==(const COleVariant& varSrc) const;

Keterangan

Dua array sama jika memiliki jumlah dimensi yang sama, ukuran yang sama di setiap dimensi, dan nilai elemen yang sama.

COleSafeArray::operator <<

Operator COleSafeArray penyisipan (<<) mendukung pembuangan diagnostik dan penyimpanan COleSafeArray objek ke arsip.

CDumpContext& AFXAPI operator<<(
    CDumpContext& dc,
    COleSafeArray& saSrc);

COleSafeArray::P trOfIndex

Mengembalikan penunjuk ke elemen yang ditentukan oleh nilai indeks.

void PtrOfIndex(
    long* rgIndices,
    void** ppvData);

Parameter

rgIndices
Array nilai indeks yang mengidentifikasi elemen array. Semua indeks untuk elemen harus ditentukan.

ppvData
Saat kembali, arahkan ke elemen yang diidentifikasi oleh nilai dalam rgIndices.

COleSafeArray::P utElement

Menetapkan satu elemen ke dalam array.

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

Parameter

rgIndices
Penunjuk ke array indeks untuk setiap dimensi array.

pvData
Arahkan ke data untuk ditetapkan ke array. jenis varian VT_DISPATCH, VT_UNKNOWN, dan VT_BSTR adalah pointer dan tidak memerlukan tingkat tidak langsung lainnya.

Keterangan

Fungsi ini secara otomatis memanggil fungsi Windows SafeArrayLock dan SafeArrayUnlock sebelum dan sesudah menetapkan elemen . Jika elemen data adalah string, objek, atau varian, fungsi menyalinnya dengan benar, dan jika elemen yang ada adalah string, objek, atau varian, maka akan dihapus dengan benar.

Perhatikan bahwa Anda dapat memiliki beberapa kunci pada array, sehingga Anda dapat memasukkan elemen ke dalam array saat array dikunci oleh operasi lain.

Jika terjadi kesalahan, fungsi melempar CMemoryException atau COleException.

Contoh

VARIANT retVariantArray()
{
   COleSafeArray saRet;
   DWORD numElements[] = { 10, 10 }; // 10x10

   // Create the 2 dimensional safe-array of type VT_R8 with size 10x10
   saRet.Create(VT_R8, 2, numElements);

   // Initialize safearray  with values...
   long index[2];
   for (index[0] = 0; index[0] < 10; index[0]++)
   {
      for (index[1] = 0; index[1] < 10; index[1]++)
      {
         double val = index[0] + index[1] * 10;
         //populate the safearray elements with double values
         saRet.PutElement(index, &val);
      }
   }
   // Return the safe-array encapsulated in a VARIANT...
   return saRet.Detach();
}

COleSafeArray::Redim

Mengubah batas array yang paling tidak signifikan (paling kanan).

void Redim(SAFEARRAYBOUND* psaboundNew);

Parameter

psaboundNew
Penunjuk ke struktur terikat array aman baru yang berisi terikat array baru. Hanya dimensi array yang paling tidak signifikan yang dapat diubah.

Keterangan

Jika terjadi kesalahan, fungsi melempar COleException.

COleSafeArray::ResizeOneDim

Mengubah jumlah elemen dalam objek satu dimensi COleSafeArray .

void ResizeOneDim(DWORD dwElements);

Parameter

dwElements
Jumlah elemen dalam array aman satu dimensi.

Keterangan

Jika terjadi kesalahan, fungsi melempar COleException.

Contoh

Lihat contoh untuk COleSafeArray::CreateOneDim.

COleSafeArray::UnaccessData

Mengurangi jumlah kunci array dan membatalkan penunjuk yang diambil oleh AccessData.

void UnaccessData();

Keterangan

Jika terjadi kesalahan, fungsi melempar COleException.

Contoh

Lihat contoh untuk COleSafeArray::AccessData.

COleSafeArray::Buka kunci

Mengurangi jumlah kunci array sehingga dapat dibebaskan atau diubah ukurannya.

void Unlock();

Keterangan

Fungsi ini dipanggil setelah akses ke data dalam array selesai. Pada kesalahan, itu melempar COleException.

Lihat juga

Bagan Hierarki
Kelas COleVariant
Kelas CRecordset
Kelas CDatabase