Re[3]: Проблема с маршалингом массива BSTR в VB
От: Аноним  
Дата: 27.07.06 22:08
Оценка:
А ещё лучше, чтобы быть совсем не индусом (они возвращаемые значения не проверяют, а SafeArrayCreate[Vector] реально может и NULL вернуть) — так:

Result->parray = SafeArrayCreateVector(VT_BSTR, 0, 2);
if(Result->parray)
{
BSTR* pBSTR = reinterpret_cast<BSTR>(Result->parray->pvData);
pBSTR[0]=SysAllocString(L"Hello!");
pBSTR[1]=SysAllocString(L"World!");
Result->vt = VT_ARRAY|VT_BSTR;
return S_OK;
}
else
{
ATLASSERT(FALSE);
Result->vt = VT_EMPTY;
return E_OUTOFMEMORY;
}

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