internal unsafe String[] GetStringArray(uint iOffset)
{
// If its empty return null
if (iOffset == 0)
return new String[0];
// The offset value is in char, and is related to the begining of string pool.
ushort* pCount = m_pDataPool + iOffset;
int count = (int)pCount[0]; // The number of strings in the array
String[] values = new String[count];
// Get past count and cast to uint
uint* pStringArray = (uint*)(pCount + 1);
// Get our strings
for (int i = 0; i < count; i++)
values[i] = GetStringPoolString(pStringArray[i]);
return (values);
}