Выделяет память для безопасного массива, используя дескриптор, созданный с помощью SafeArrayAllocDescriptor.
HRESULT SafeArrayAllocData ( SAFEARRAY FAR*psa );
Параметр:
psa
Указатель на дескриптор безопасного массива, созданный с помощью SafeArrayAllocDescriptor.
Коды возврата:
Из возвращенного HRESULT получают один из следующих кодов возврата:
Код возврата | Значение |
---|---|
S_OK | Успех. |
E_INVALIDARG | Параметр psa не является правильным дескриптором безопасного массива. |
E_UNEXPECTED | Массив нельзя заблокировать. |
Пример:
Из приведенного ниже примера видно, как создается безопасный массив с помощью SafeArrayAllocDescriptor и SafeArrayAllocData.
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; }