Шаг 95 - 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; 
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 16.03.2003