HRESULT SafeArrayAllocData(
SAFEARRAY FAR* psa
);
Allocates memory for a safe array, based on a descriptor created with 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 FAR* FAR*ppsa;
unsigned int ndim = 2;
HRESULT hresult = SafeArrayAllocDescriptor(ndim, ppsa);
if( FAILED(hresult))
return ERR_OutOfMemory;
(*ppsa)->rgsabound[ 0 ].lLbound = 0;
(*ppsa)->rgsabound[ 0 ].cElements = 5;
(*ppsa)->rgsabound[ 1 ].lLbound = 1;
(*ppsa)->rgsabound[ 1 ].cElements = 4;
hresult = SafeArrayAllocData(*ppsa);
if( FAILED(hresult)) {
SafeArrayDestroyDescriptor(*ppsa)
return ERR_OutOfMemory;
}
Windows NT: Use version 3.1 and later.
Windows: Use Windows 95 and later.
Header: Declared in oleauto.h.
Import Library: Link with oleaut32.lib.
SafeArrayDestroyData, SafeArrayDestroyDescriptor