Страница 97 из 111
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. |