Конференция "Corba" » возврат массива строк из COM объекта
 
  • dima_q © (20.09.07 12:57) [0]
    Подскажите пожалуйста, каким образом можно вернуть массив строк из COM(OLE). Какого типа должна быть возвращаемая переменная и как в нее вписывать массив. Если можно небольшой примерчик. Заранее благодарен.
  • Сергей М. © (20.09.07 15:08) [1]

    > Какого типа должна быть возвращаемая переменная


    OleVariant


    > как в нее вписывать массив


    Средствами семейства VarArrayXXXXX-функций.

    Например,

    Result := VarArrayFromStrings(SomeStringList);
  • dima_q © (20.09.07 15:58) [2]
    <Сергей М. ©> Огромное спасибо!
  • dima_q © (20.09.07 16:05) [3]
    Еще вопросик. Все пишут про SafeArray при возврате массива, что это такое и зачем нужно?
  • Сергей М. © (20.09.07 16:06) [4]
    Дык ыть станд.справка есть по теме "Safearrays" ..
  • dima_q © (20.09.07 16:23) [5]
    Нет просто у меня задача вернуть массив строк так , чтобы он был доступен большинству клиентов. На данном этапе это Delphi, C#, C++. А когда речь идет о поддержке многими клиентами говорят нужно возвращать SafeArray, вот я и спрашиваю вас <Сергей М. ©> почему OleVariant а не SafeArray, в чем разница для клиентов?
  • Сергей М. © (20.09.07 17:11) [6]

    > почему OleVariant а не SafeArray


    Можно пользовать и непосредственно SafeArray. ручной работы при этом будет - мама не горюй.

    Зачем отказываться от OleVariant-массивов, которые неявно преобразуются к SafeArray средствами самого Делфи-компилятора, когда OLE/COM-проект контролируется средствами встроенного в Делфи соответствующего визарда ?
  • Однокамушкин (21.09.07 10:43) [7]
    OleVariant может хранить ссылку на SafeArray, и именно её он и хранит, когда создаются вариантные массивы... Соответственно, вашему клиенту, который не поддерживает вариантные массивы на уровне языка, надо будет сделать всего одну лишнюю операцию: вытащить из переданного VARIANT-а ссылку на SafeArray, а дальше всё то же самое, как если бы он сразу SafeArray получил
  • umbra © (21.09.07 10:49) [8]

    > VarArrayVarArrayFromStrings

    Функции VarArrayXXX - это обертка над SafeArray
 
Конференция "Corba" » возврат массива строк из COM объекта
Есть новые Нет новых   [120349   +19][b:0][p:0]