write optimized version of BStrToString() as BStrToString2(); it re-uses a bufer instead of allocating every time