Как передать массив строк в VB?
От: dead_ricky  
Дата: 12.07.04 11:53
Оценка:
Как передать массив строк в VB?

Есть такой код сервера (С++):

STDMETHODIMP CSomeManObj::EnumSome(VARIANT* psaSome)
{
    VARIANT         theArray;
    SAFEARRAY*      pSA;
    SAFEARRAYBOUND  bound[1];
    CComBSTR        bstrSomes[2] = {L"Element number 1", L"Element number 2"};    

    bound[0].lLbound    = 0;
    bound[0].cElements  = 2;
    pSA = SafeArrayCreate(VT_BSTR, 1, bound);
    for (int i = 0; i < 2; i++)
        SafeArrayPutElement(pSA, (LONG*)&i, bstrSome[i]);
    VariantInit(&theArray);
    theArray.vt        = VT_DISPATCH | VT_BYREF;
    theArray.parray    = pSA;
    VariantCopy(psaSome, &theArray);

    return S_OK;
}


и такой код клиента (VB):

Sub GetSomes()
    Dim Somes(0 To 1) As String
    Dim o As New SomeManObj
    o.EnumSome (Somes)
    MsgBox Somes(1)
End Sub


Подскажите плз что тут не так , и как надо правильно.
Заранне благодарен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.