Создание массива строк в com

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

_bstr_t          bstrMember1Name,bstrMember2Name;
IEachData        portsDataNode;
while(portsDataNode = CollectionOfData->NextData())
{
    if (!GetStringAttribute(portsDataNode, _T("Member1"), bstrMember1Name))
    {
            hr = E_FAIL;
    }
    if (!GetStringAttribute(portsDataNode, _T("Member2"), bstrMember2Name))
    {
            hr = E_FAIL;
    }
 }

Это тело функции, так как я получаю Member1 и Member2 в качестве возвращаемого типа из вызова One com companant, но мне нужна коллекция каждого и значения. Итак, что такое параметр функции? Как я собираю Member1 и Member2 в одну переменную??


person Community    schedule 02.10.2013    source источник


Ответы (1)


Извиняюсь. Я не так понял ваш вопрос. Если вы хотите вернуть набор (скажем, массив) данных, вам нужен SAFEARRAY. Так что используйте SafeArrayCreate. Если это не только COM, и вам нужна автоматизация, вы должны использовать VARIANT Safe Array. SAFEARRAY может передаваться через границы COM. Возможны SAFEARRAY BSTR. Также многомерные массивы

person xMRi    schedule 02.10.2013