qtmobility/src/publishsubscribe/registrylayer_win.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
   488         if (createdHandle)
   488         if (createdHandle)
   489             removeHandle(handle);
   489             removeHandle(handle);
   490         return false;
   490         return false;
   491     } else if (result != ERROR_SUCCESS) {
   491     } else if (result != ERROR_SUCCESS) {
   492         qDebug() << "RegQueryValueEx failed with error" << result;
   492         qDebug() << "RegQueryValueEx failed with error" << result;
       
   493         *data = QVariant();
   493         if (createdHandle)
   494         if (createdHandle)
   494             removeHandle(handle);
   495             removeHandle(handle);
   495         return false;
   496         return false;
   496     }
   497     }
   497 
   498 
   576     do {
   577     do {
   577         TCHAR subKey[MAX_KEY_LENGTH];
   578         TCHAR subKey[MAX_KEY_LENGTH];
   578         DWORD subKeySize = MAX_KEY_LENGTH;
   579         DWORD subKeySize = MAX_KEY_LENGTH;
   579 
   580 
   580         result = RegEnumKeyEx(key, i, subKey, &subKeySize, 0, 0, 0, 0);
   581         result = RegEnumKeyEx(key, i, subKey, &subKeySize, 0, 0, 0, 0);
   581         if (result == ERROR_NO_MORE_ITEMS)
   582         if (result == ERROR_KEY_DELETED) {
       
   583             QMetaObject::invokeMethod(this, "emitHandleChanged", Qt::QueuedConnection,
       
   584                                       Q_ARG(void *, key));
       
   585             break;
       
   586         }
       
   587         if (result != ERROR_SUCCESS)
   582             break;
   588             break;
   583 
   589 
   584         foundChildren << QString::fromWCharArray(subKey, subKeySize);
   590         foundChildren << QString::fromWCharArray(subKey, subKeySize);
   585         ++i;
   591         ++i;
   586     } while (result == ERROR_SUCCESS);
   592     } while (result == ERROR_SUCCESS);
   589     do {
   595     do {
   590         TCHAR valueName[MAX_NAME_LENGTH];
   596         TCHAR valueName[MAX_NAME_LENGTH];
   591         DWORD valueNameSize = MAX_NAME_LENGTH;
   597         DWORD valueNameSize = MAX_NAME_LENGTH;
   592 
   598 
   593         result = RegEnumValue(key, i, valueName, &valueNameSize, 0, 0, 0, 0);
   599         result = RegEnumValue(key, i, valueName, &valueNameSize, 0, 0, 0, 0);
   594         if (result == ERROR_NO_MORE_ITEMS)
   600         if (result == ERROR_KEY_DELETED) {
       
   601             QMetaObject::invokeMethod(this, "emitHandleChanged", Qt::QueuedConnection,
       
   602                                       Q_ARG(void *, key));
       
   603             break;
       
   604         }
       
   605         if (result != ERROR_SUCCESS)
   595             break;
   606             break;
   596 
   607 
   597         foundChildren << QString::fromWCharArray(valueName, valueNameSize);
   608         foundChildren << QString::fromWCharArray(valueName, valueNameSize);
   598         ++i;
   609         ++i;
   599     } while (result == ERROR_SUCCESS);
   610     } while (result == ERROR_SUCCESS);