Справочник по технологии COM
Страница 90. Функции API, работающие с массивами


Функции API, работающие с массивами

Массивы, передаваемые IDispatch::Invoke внутри VARIANTARG, называются безопасными массивами (safe arrays). Внутри безопасного массива содержится информация о числе его измерений и границах каждого измерения. Если массив представляет собой аргумент или возвращаемое значение функции, поле раrrау структуры VARIANTARG указывает на его дескриптор. К этому дескриптору не следует обращаться напрямую, если только Вы не создаете массивы типов данных, отличных от вариантных типов. Вместо этого для доступа к данным используйте функции SafeArrayAccessData и SafeArrayUnaccessData, базовый тип массива указывает VT_tag | VT_ARRAY. Данные, на которые ссылается дескриптор массива, хранятся в колонках, что соответствует схеме, используемой Visual Basic и FORTRAN, но отличается от схемы размещения в языках С и Pascal. При расположении по колонкам самый левый индекс (в соответствии с синтаксисом языка программирования) изменяется первым.

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

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