//static
	QString QextSerialEnumerator::getRegKeyValue(HKEY key, LPCTSTR property)
	{
		DWORD size = 0;
		RegQueryValueEx(key, property, NULL, NULL, NULL, & size);
		BYTE * buff = new BYTE[size];
		if (RegQueryValueEx(key, property, NULL, NULL, buff, & size) == ERROR_SUCCESS) {
			return TCHARToQStringN(buff, size);
			delete [] buff;
		} else {
			qWarning("QextSerialEnumerator::getRegKeyValue: can not obtain value from registry");
			delete [] buff;
			return QString();
		}
	}
 //static
 QString QextSerialEnumerator::getRegKeyValue(HKEY key, LPCTSTR property)
 {
     DWORD size = 0;
     DWORD type;
     RegQueryValueEx(key, property, NULL, NULL, NULL, & size);
     BYTE* buff = new BYTE[size];
     QString result;
     if( RegQueryValueEx(key, property, NULL, &type, buff, & size) == ERROR_SUCCESS ) {
         // might not be terminated...let QString terminate in this case
       if( type == REG_SZ || type == REG_MULTI_SZ || type == REG_EXPAND_SZ )
         result = TCHARToQString(buff);
       else
         result = TCHARToQStringN(buff, size);
     }
     RegCloseKey(key);
     delete [] buff;
     return result;
 }