CComSafeArray: действительно ли индексы меняются местами для MultiDimSetAt и MultiDimGetAt? - PullRequest
2 голосов
/ 25 февраля 2010

В документации MSDN для CComSafeArray :: MultiDimSetAt alIndex документируется следующим образом:

Указатель на вектор индексов для каждого измерения в массиве. Самым правым (наименее значимым) измерением является alIndex [0].

В документации для CComSafeArray :: MultiDimGetAt alIndex документируется иначе:

Указатель на вектор индексов для каждого измерения в массиве. Самым левым (самым значимым) измерением является alIndex [0].

Это заставило меня подумать, что, чтобы добраться до того же элемента, нужно было бы изменить порядок индексов в многомерном массиве. Однако я не обнаружил, что это имеет место на практике.

Неправильно ли я использую этот интерфейс и получаю везение, неправильно понимаю документацию или это, возможно, ошибка в документации?

1 Ответ

1 голос
/ 25 февраля 2010

Кажется, это ошибка документации. Я бы посоветовал вам обратиться к документации SafeArrayGetElement / SafeArrayPutElement, так как она кажется более точной.

Чтобы установить и получить один и тот же элемент, вы должны использовать один и тот же массив индексов (без реверса).

Кстати, хороший улов!

...