Поделиться через


Функция SafeArrayAllocDescriptor (oleauto.h)

Выделяет память для дескриптора безопасного массива.

Синтаксис

HRESULT SafeArrayAllocDescriptor(
  [in]  UINT      cDims,
  [out] SAFEARRAY **ppsaOut
);

Параметры

[in] cDims

Число измерений в массиве.

[out] ppsaOut

Дескриптор безопасного массива.

Возвращаемое значение

Эта функция может возвращать одно из этих значений.

Код возврата Описание
S_OK
Успешно.
E_INVALIDARG
Недопустимый аргумент psa .
E_UNEXPECTED
Не удалось заблокировать массив.

Комментарии

Эта функция позволяет создавать безопасные массивы, содержащие элементы с типами данных, отличными от тех, которые предоставляются SafeArrayCreate. После создания дескриптора массива с помощью SafeArrayAllocDescriptor задайте размер элемента в дескрипторе массива, вызовите SafeArrayAllocData для выделения памяти для элементов массива.

Примеры

В следующем примере создается безопасный массив с помощью функций SafeArrayAllocDescriptor и SafeArrayAllocData .

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;
}

Требования

Требование Значение
Целевая платформа Windows
Header oleauto.h
Библиотека OleAut32.lib
DLL OleAut32.dll

См. также раздел

SafeArrayAllocData

SafeArrayDedata

SafeArrayDescriptorDescriptor