parray 转换成 lpwstr

LONG lUBound;
LONG lLBound;
SafeArrayGetLBound(  parray, 1, &lLBound );
SafeArrayGetUBound(  parray, 1, &lUBound );

VARIANT* pvarTemp;
SafeArrayAccessData( parray, (void**) &pvarTemp );

std::wstring description;

for (LONG lCount = lLBound; lCount <= lUBound; ++lCount, ++pvarTemp)
{
    std::wstring val = std::wstring(pvarTemp->bstrVal) + L" ";
    description = val + description ;
}

SafeArrayUnaccessData( parray );

LPWSTR descriptions = (LPWSTR)(description.c_str());