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


SafeArrayCreateVector

Создает одномерный массив, нижняя граница индексов которого всегда равна 0. Безопасный массив, созданный с помощью этой функции, имеет фиксированный размер, так что флаг FADF_FIXEDSIZE всегда установлен.

SAFEARRAY *SafeArrayCreateVector
(
VARTYPE vt,
long lLbound,
unsigned int cElements
);

Параметры:
vt
Базовый тип массива (VARTYPE всех элементов массива). VARTYPE ограничен набором вариантных типов. Нельзя устанавливать флаги VT_ARRAY и VT_BYREF. VT_EMPTY и VT_NULL не являются допустимыми базовыми типами массива; все остальные типы допускаются.
ILbound
Нижняя граница массива. Может быть отрицательной.
cElements
Число элементов в массиве.

Возвращаемое значение:
Указатель на дескриптор массива или NULL, если нельзя создать массив.

Комментарии:
SafeArrayCreateVector выделяет один блок памяти, содержащий структуру SAFEARRAY для одномерного массива (24 байта), за которой сразу же следует область данных. Все существующие в настоящий момент функции для безопасных массивов правильно работают с массивами, созданными с помощью SafeArrayCreateVector.
SafeArrayCreateVector размещает массив в одном блоке памяти. Дескриптор массива и данные выделяются за одно обращение к системе распределения памяти, что ускоряет процесс создания массива. Тем не менее дескриптор и область данных можно разместить и по отдельности с помощью SafeArrayAllocDescriptor и SafeArrayAIIocData.

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