Вы, к сожалению, не показали, что такое tCode
.
Глядя на документы для вызова API , похоже, что он должен быть заполнен REG_SZ. Я подозреваю это Юникод, т.е.
string property = Encoding.Unicode.GetString(ptrBuf, 0, RequiredSize);
должен преобразовать его.
Однако, если вы ожидаете нескольких значений, мне интересно, будет ли это строка, разделенная '\0'
: попытка вывести ее в элемент управления Win32 действительно остановится на первом '\0'
.
Попробуйте это:
string property = Encoding.Unicode.GetString(ptrBuf, 0, RequiredSize);
.Replace('\0', ' ');
Это должно (если я правильно угадываю) разделить значения пробелом.