SafeArrayDestroy Function

Destroys an existing array descriptor and all of the data in the array. If objects are stored in the array, Release is called on each object in the array.

HRESULT SafeArrayDestroy(  
  SAFEARRAY   *psa  
);

psa

Pointer to an array descriptor created by SafeArrayCreate.

The return value obtained from the returned HRESULT is one of the following.

Return value

Meaning

S_OK

Success.

DISP_E_ARRAYISLOCKED

The array is currently locked.

E_INVALIDARG

The item pointed to by psa is not a safe array descriptor.

Safe arrays of variant will have VariantClear Function called on each member and safe arrays of BSTR will have SysFreeString Function called on each element. IRecordInfo::RecordClear Function will be called to release object references and other values of a record without deallocating the record.

STDMETHODIMP_(ULONG) CEnumPoint::Release()
{
   if(--m_refs == 0){
      if(m_psa != NULL)
      SafeArrayDestroy(m_psa);
      delete this;
      return 0;
   }
   return m_refs;
}
Show:
© 2014 Microsoft