SafeArrayAllocData Function

Allocates memory for a safe array, based on a descriptor created with SafeArrayAllocDescriptor.

HRESULT SafeArrayAllocData(  
  SAFEARRAY  *psa  
);

psa

Pointer to an array descriptor created by SafeArrayAllocDescriptor.

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

Return value

Meaning

S_OK

Success.

E_INVALIDARG

The argument psa was not a valid safe array descriptor.

E_UNEXPECTED

The array could not be locked.

The following example creates a safe array using the SafeArrayAllocDescriptor and SafeArrayAllocData functions.

SAFEARRAY *psa;
unsigned int ndim =  2;
HRESULT hresult = SafeArrayAllocDescriptor(ndim, &psa);
if( FAILED(hresult))
   return ERR_OutOfMemory;
(psa)->rgsabound[ 0 ].lLbound = 0;
(psa)->rgsabound[ 0 ].cElements = 5;
(psa)->rgsabound[ 1 ].lLbound = 1;
(psa)->rgsabound[ 1 ].cElements = 4;
hresult = SafeArrayAllocData(psa);
if( FAILED(hresult)) {
   SafeArrayDestroyDescriptor(psa);
   return ERR_OutOfMemory;
}
Show:
© 2014 Microsoft