Справочник по технологии COM
Страница 93. SafeArrayAllocData


SafeArrayAllocData

Выделяет память для безопасного массива, используя дескриптор, созданный с помощью 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;
}

 
Следующая статья »