For reasons I could not fathom the causes of strange crashes using WideCharToMultiByte when it was called more than once and it would return 0 and crash

This seems to be working but I just wondered if it was "OK"

Code:
UChar[] ucData
WString wsData
String sData
...
Move (UCharArrayToWString(ucData)) to wsData
Move wsData to sData
ucData is a byte array of data read from a file that is two bytes per character unicode and I need it in string form so I can manipulate it