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;
}
Опять написал из головы, может чего поправить надо. По кол-ву строчек вас уже догнал, но их качество всё же другое.
Пока на собственное сообщение не было ответов, его можно удалить.